Exposes VSCode Language Server Protocol features for JavaScript, enabling access to document symbols, reference finding, symbol renaming, definitions, and hover information through VSCode's language server.
Exposes VSCode Language Server Protocol features for TypeScript, enabling access to document symbols, reference finding, symbol renaming, definitions, and type information through VSCode's language server.
VSCode Language Server MCP Extension
Exposes VSCode Language Server Protocol features via MCP (Model Context Protocol) for use with Claude Code.
Overview
This VSCode extension runs an MCP server that provides access to VSCode's Language Server APIs, enabling Claude Code to:
Get document symbol outlines
Find all references to symbols
Rename symbols with full reference tracking
Get symbol definitions
Get hover information (types, docs)
Features
MCP Tools Provided:
vscode_ls_get_symbols- Get complete symbol outline of a filevscode_ls_find_references- Find all references to a symbolvscode_ls_rename- Safely rename symbols with reference trackingvscode_ls_get_definition- Get definition location for a symbolvscode_ls_get_hover- Get type information and documentation
Benefits:
Language-aware symbol renaming (not just find/replace)
Cross-file reference tracking
Type information from TypeScript/JavaScript language server
Scope-aware analysis
Battle-tested VSCode rename functionality
Installation
Step 1: Install Dependencies
Step 2: Compile TypeScript
Step 3: Install Extension in VSCode
Option A: Development Mode
Open this directory in VSCode
Press
F5to launch Extension Development HostThe extension will be active in the new window
Option B: Install Locally
Configuration
The extension can be configured in VSCode settings:
Settings:
enabled- Enable/disable the MCP serverport- Port number for MCP server (default: 3100)logLevel- Logging level: debug, info, warn, error
Usage
Check Extension Status
Use the status bar item (bottom-right) or command palette:
VSCode MCP LS: Show Status- Display current statusVSCode MCP LS: Restart Server- Restart the MCP server
Connecting from Claude Code
Add to your project's MCP configuration in ~/.claude.json:
Or use the CLI (note: manual configuration is currently required as claude mcp add doesn't support custom HTTP servers yet):
Using with Unminification Plugin
The unminification plugin skills will automatically use these tools when available:
MCP Tools Reference
vscode_ls_get_symbols
Get document symbol outline.
Parameters:
Returns:
vscode_ls_find_references
Find all references to a symbol.
Parameters:
Returns:
vscode_ls_rename
Rename symbol with full reference tracking.
Parameters:
Returns:
vscode_ls_get_definition
Get definition location for a symbol.
Parameters:
Returns:
vscode_ls_get_hover
Get type information and documentation.
Parameters:
Returns:
Development
Build
Watch Mode
Debug
Open in VSCode
Press
F5to launch Extension Development HostSet breakpoints in source files
Extension runs with debugger attached
Testing
Test the MCP server manually:
Architecture
Troubleshooting
Extension Not Starting
Check VSCode Output panel:
View → Output
Select "VSCode MCP Language Server" from dropdown
Check for error messages
MCP Server Not Responding
Check extension is enabled:
vscodeMcpLs.enabledCheck port is not in use:
lsof -i :3100Restart server: Command Palette → "VSCode MCP LS: Restart Server"
Symbol Operations Not Working
Ensure language server is active (TypeScript/JavaScript files)
Check file is saved and indexed
Verify file URI format:
file:///absolute/path
Future Enhancements
Support for more language servers (Python, Go, etc.)
Workspace-wide symbol search
Code actions and quick fixes
Signature help
Completion provider access
Authentication for MCP connections
Contributing
Issues and pull requests welcome!
License
MIT
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
Exposes VSCode's Language Server Protocol features through MCP, enabling AI assistants to perform language-aware operations like symbol navigation, reference tracking, safe renaming, type information retrieval, and hover documentation across codebases.