mcp resource mention parsing and resolution
Parses @-prefixed resource mentions in CodeMirror editor content and resolves them to actual resources via the Model Context Protocol. Implements a mention syntax parser that identifies resource references in text, validates them against available MCP servers, and maintains bidirectional links between editor content and external resources. Uses CodeMirror's decoration and widget system to render resource mentions with visual affordances while preserving underlying text.
Unique: Integrates MCP resource protocol directly into CodeMirror's decoration system, allowing real-time mention resolution without leaving the editor context. Uses CodeMirror's facet system for stateful resource tracking and lazy-loads resource content only when mentions are visible in the viewport.
vs alternatives: Unlike generic mention plugins that require custom backends, codemirror-mcp leverages the standardized MCP protocol, enabling resource mentions to work with any MCP-compatible server without adapter code.
mcp prompt command execution from editor
Enables slash-command syntax (e.g., /refactor, /explain) in the CodeMirror editor that map to MCP prompt resources. Implements a command parser that intercepts text input, identifies prompt commands, validates them against available MCP prompts, and executes them with the current editor selection or document as context. Commands are executed asynchronously and results are injected back into the editor or displayed in a side panel.
Unique: Implements MCP prompt execution as a first-class editor primitive using CodeMirror's command system, allowing prompts to be bound to keyboard shortcuts and integrated into editor keymaps. Maintains execution history and supports prompt composition via command chaining.
vs alternatives: Differs from generic slash-command plugins by directly consuming MCP prompt definitions, eliminating the need for custom command registration — new prompts become available automatically when MCP server is updated.
mcp server connection management in editor context
Manages the lifecycle of MCP server connections within the CodeMirror editor, handling initialization, reconnection, and capability discovery. Implements a connection state machine that tracks server availability, exposes available resources and prompts, and notifies the editor of capability changes. Uses CodeMirror's state management to maintain connection metadata and provides hooks for UI updates when server status changes.
Unique: Integrates MCP server lifecycle management directly into CodeMirror's state facet system, allowing server connections to be persisted across editor reloads and shared across multiple editor instances via a shared connection pool. Implements capability discovery as a reactive stream that updates editor UI in real-time.
vs alternatives: Unlike external MCP client libraries that require separate connection management, codemirror-mcp embeds connection state in the editor, enabling tight integration with editor features like autocomplete and command palettes.
resource content embedding in editor decorations
Renders resolved MCP resource content as inline decorations or widgets within the CodeMirror editor, allowing resource previews and content snippets to appear alongside code. Uses CodeMirror's decoration API to create non-editable widget elements that display resource metadata, previews, or full content without disrupting the underlying editor text. Supports lazy-loading of resource content and caching to minimize network requests.
Unique: Implements resource content rendering as CodeMirror decorations with viewport-aware lazy-loading, ensuring only visible resources are fetched and rendered. Uses a two-tier caching strategy (in-memory + IndexedDB) to minimize network overhead for frequently-accessed resources.
vs alternatives: Compared to separate preview panels, inline resource decorations reduce context switching and keep reference material visible alongside code, improving developer workflow for documentation-heavy projects.
autocomplete integration with mcp resources and prompts
Extends CodeMirror's autocomplete system to suggest MCP resources and prompts as the user types. Implements a custom completion source that queries available MCP resources and prompts, filters them based on current editor context, and provides rich completion items with descriptions and icons. Completion items are ranked by relevance and include metadata for filtering and sorting.
Unique: Integrates MCP resource and prompt discovery directly into CodeMirror's autocomplete pipeline, allowing completions to be context-aware and dynamically updated as MCP server capabilities change. Uses a custom ranking algorithm that prioritizes recently-used and frequently-accessed resources.
vs alternatives: Unlike static autocomplete lists, codemirror-mcp's completions are dynamically generated from MCP servers, ensuring suggestions always reflect current available resources without manual configuration.
editor state serialization with mcp references
Serializes and deserializes CodeMirror editor state while preserving MCP resource mentions and prompt commands. Implements a custom state serialization format that captures mention positions, resolved resource metadata, and command history. Enables saving editor state to persistent storage and restoring it with all MCP references intact, supporting workflows where users switch between documents or sessions.
Unique: Implements state serialization as a CodeMirror extension that hooks into the editor's state change pipeline, capturing MCP-specific metadata without modifying the underlying document text. Uses a position-mapping algorithm to handle text edits that shift mention and command positions.
vs alternatives: Unlike generic editor state serialization, codemirror-mcp preserves MCP references and their resolution state, enabling seamless session restoration without re-resolving resources.
mcp error handling and fallback rendering
Handles failures in MCP server communication, resource resolution, and prompt execution with graceful degradation. Implements error detection and recovery logic that catches network failures, invalid resource references, and prompt execution errors, displaying user-friendly error messages in the editor. Provides fallback rendering for unresolved mentions and failed prompts, allowing editing to continue even when MCP servers are unavailable.
Unique: Implements error handling as a reactive layer in the CodeMirror state machine, allowing errors to be caught and handled without disrupting the editor's core functionality. Uses a custom error decoration system to visually indicate failed mentions and provide inline error messages.
vs alternatives: Unlike editors that fail completely when MCP servers are unavailable, codemirror-mcp degrades gracefully, allowing users to continue editing while providing clear feedback about which resources are unavailable.