Skip to main content
Glama
Stryk91
by Stryk91

lsp-mcp-rs

MCP server that bridges to any LSP. One binary, multiple language servers.

Build

cargo build --release

Binary: target/release/lsp-mcp-rs.exe

Related MCP server: VSCode LSP MCP Server

Configure

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": []
    }
  }
}

Tools

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.

How it works

  1. MCP request comes in with a file path

  2. File extension maps to configured LSP server

  3. LSP spawns on first use, stays running

  4. Request forwarded to LSP, response returned via MCP

License

MIT

Authors

DC, KALIC, Stryk9190

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Exposes Language Server Protocol (LSP) features as MCP tools, enabling IDE-grade semantic navigation including go-to-definition, find references, hover info, and symbols across multiple programming languages (Python, Rust, C/C++, TypeScript/JavaScript, React, HTML, CSS).
    3
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    An MCP server that exposes LSP-backed code navigation and editing tools to LLM agents using a single global config file to route file extensions to language servers.
    MIT