A universal bridge that lets Claude talk to any Language Server Protocol implementation through a single binary. Configure it once with paths to your LSP servers (rust-analyzer, pyright, lua-language-server, etc.), and it routes requests based on file extensions. Exposes six core LSP operations as MCP tools: hover for documentation and types, definition jumping, reference finding, symbol listing, and diagnostics. Servers spawn lazily on first use and stay resident. Reach for this when you want Claude to understand your codebase through the same language intelligence your editor uses, without building separate MCP integrations for each language. Config driven with TOML, works with any LSP that speaks stdio.
MCP server that bridges to any LSP. One binary, multiple language servers.
cargo build --release
Binary: target/release/lsp-mcp-rs.exe
Create config.toml next to the binary:
[servers.lua]
command = "C:/path/to/lua-language-server.exe"
args = ["--stdio"]
extensions = [".lua"]
[servers.rust]
command = "rust-analyzer"
args = []
extensions = [".rs"]
[servers.python]
command = "pyright-langserver"
args = ["--stdio"]
extensions = [".py"]
Add to Claude Desktop config (claude_desktop_config.json):
{
"mcpServers": {
"lsp": {
"command": "X:\\path\\to\\lsp-mcp-rs.exe",
"args": []
}
}
}
| Tool | Description |
|---|---|
lsp_hover | Get docs/type at position |
lsp_definition | Go to definition |
lsp_references | Find all references |
lsp_symbols | List symbols in file |
lsp_diagnostics | Get errors/warnings |
lsp_servers | List configured servers |
All position arguments are 0-indexed.
MIT
DC, KALIC, Stryk9190
ray0907/git-mcp-server
cyanheads/git-mcp-server
io.github.b1ff/atlassian-dc-mcp-bitbucket
io.github.b1ff/atlassian-dc-mcp-jira
com.mcparmory/atlassian-jira
sirlordt/vscode-terminal-mcp