Standalone MCP server that bridges to VS Code's Claude Code extension IDE tools (getDiagnostics and friends) when auto-discovery fails, e.g. from the extension panel.
12 tools with mostly complete schemas and descriptions, but significant gaps in parameter documentation and error guidance. Tool names follow verb_noun convention well (getDiagnostics, getOpenEditors, openFile). Descriptions are present but often lack context on when to use each tool or what happens on failure. Many parameters lack descriptions entirely (e.g., 'filePath' in checkDocumentDirty has no description). No output schemas documented. Error handling exists but doesn't guide recovery. Security considerations (path confinement, audit logging) are well-implemented server-side, but not surfaced in tool descriptions.
Check whether a document has unsaved changes in VS Code.
Close all diff tabs currently open in VS Code. Disabled by default: it mutates editor state.
Close a specific tab in VS Code by name. Disabled by default: it mutates editor state.
Execute Python code in the Jupyter kernel attached to the current notebook file in VS Code. Disabled by default: it executes arbitrary code.
Get the current text selection in the active VS Code editor.
Get language diagnostics (errors/warnings) from VS Code for this workspace, formatted as compact path:line:col rows. Requires VS Code open on this workspace with the Claude Code extension active.
Parameter descriptions missing or incomplete. 'filePath' in checkDocumentDirty, 'tab_name' in close_tab, and many others lack descriptions explaining format, constraints, or examples. LLMs cannot infer parameter meaning from names alone.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields without knowing what each tool returns. E.g., getDiagnostics returns 'compact path:line:col rows' but structure is not formally specified.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
Get the most recent text selection in VS Code, even if that editor is no longer active.
Get info about currently open editors in VS Code.
Get all workspace folders open in VS Code.
Open a git-style diff view in VS Code between an old and new file. Disabled by default: it opens tabs in the user's editor.
Open a file in VS Code, optionally selecting a text range. Disabled by default: it mutates editor state.
Save a document with unsaved changes in VS Code. Disabled by default: it mutates the file on disk.
Naming inconsistency: 'close_tab' uses snake_case while all other tools use camelCase (getDiagnostics, getOpenEditors, etc.). This breaks LLM parsing and looks like a typo.
Error handling does not guide recovery. Tool descriptions mention 'Disabled by default' for mutating tools but do not explain what error the LLM will receive if it tries to call them, or how to enable them. No actionable error messages documented.
Tool descriptions lack context on when to use each tool vs. similar ones. E.g., getCurrentSelection vs. getLatestSelection, when should an LLM pick one over the other? No guidance provided.