MCP Language Server
A bridge from an LSP language server to the agent: definitions, references, diagnostics, hover and symbol rename
- 1,611 ★ on the repository
- Last commit
- BSD-3-Clause
Extended access
Why this level
- Runs a language server and reads project files
- Can edit files and rename symbols across the project
Install
- Works in
Manual install
go install github.com/isaacphi/mcp-language-server@latestThen install a language server, for example go install golang.org/x/tools/gopls@latest.
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- Runs a language server and reads project files
- Can edit files and rename symbols across the project
This is third-party code. Review the repository files before installing.
What it does
The server launches a chosen language server such as gopls, rust-analyzer, pyright or clangd and exposes its features over MCP. The agent gets a symbol's full definition, all its usages, file diagnostics and hover info with types. Rename works project-wide through LSP rather than text search. There is also a line-number based file editing tool.
Who it is for. For developers who want the agent to navigate a large codebase semantically instead of by grep.
Good fit when
- You need every call site of a function in a large project
- You need to rename a type or method safely
- The agent needs compiler diagnostics for a file without a full build
Not a fit when
- The agent already runs inside an IDE with LSP access
- Your language has no stdio language server
Example request
Find every usage of ParseConfig and rename it to LoadConfigMCP
- Transport
- stdio
- Authentication
- not required
Environment variables
LOG_LEVEL- DEBUG enables verbose logs to stderr.
Limitations
Requires Go to install and a separately installed language server. One instance serves one workspace and one LSP. The author calls it beta and tested it only with gopls, rust-analyzer, pyright, typescript-language-server and clangd. Claude Desktop may need PATH and Go variables set explicitly.
How to disable. Remove the language-server block from the MCP config. The binary lives in $GOPATH/bin.
FAQ
Which languages are supported?
Any with a stdio language server. Go, Rust, Python, TypeScript and C/C++ are tested.
How do I pass arguments to the language server?
Everything after -- in args goes to the language server, for example --stdio for pyright.
Discussion
No questions or reviews yet.
Related
MCP serverscclsp connects LSP language servers to Claude Code over MCP: go to definition, find references, rename symbols and diagnostics with no editor needed
MCP bridge to BSL Language Server: navigation, diagnostics and refactoring of 1C and OneScript code for agents
mcpdoc
MCP LLMS-TXT Documentation Server
An MCP server from LangChain that serves docs from the llms.txt files you choose, with auditable tool calls
rust-analyzer MCP: Rust code navigation for agents
r3bl-rust-analyzer-mcp-server
A Rust MCP server on standard threads: the agent gets hover info, go to definition, references, formatting and compiler diagnostics from rust-analyzer
MCP wrapper for BSL Language Server
BSL MCP Server
A small MCP server that runs BSL Language Server as a JAR file and gives an agent BSL code analysis and formatting as JSON
A Dockerized MCP server that keeps BSL Language Server running and gives the agent code navigation, diagnostics and refactoring for 1C instead of grep search
Comparison with similar tools
Entries that share the main search query, and how they differ.
| Entry | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| MCP Language Server (this entry) | no | not required | 1,611 | |
| cclsp | no | not required | 676 | cclsp connects LSP language servers to Claude Code over MCP |
| Claude Code LSPs | no | 522 | a Claude Code plugin marketplace that connects LSP language servers |
README in short
The README covers installation with go install and gives ready Claude Desktop configs for gopls, rust-analyzer, pyright, typescript-language-server and clangd. It lists six tools: definition, references, diagnostics, hover, rename_symbol and edit_file. LSP protocol code is partly adapted from gopls, and mcp-go handles MCP. Snapshot tests run against real language servers. BSD-3-Clause licensed.