Language MCP Server
Semantic code navigation tools for LLMs via the Language Server Protocol.
Data last scanned today · Reviewed today
Overview
Language MCP Server bridges the gap between Large Language Models and local codebases by acting as an interface for existing Language Server Protocol (LSP) implementations. It provides LLMs with specific functionality to better understand project structures, including locating definitions, finding symbol references, performing renames, and retrieving diagnostic information. To utilize this server, users install the package via Go and integrate it with an LSP server such as gopls for Go or rust-analyzer for Rust. Configuration involves specifying the target workspace and LSP binary within the MCP client settings, allowing models to query code semantics directly during development workflows.
Our verdict
This server receives a high-risk security score of 39/100. The rating is driven by its status as a community-maintained project that has not undergone editorial review, meaning users should exercise caution regarding its current implementation. The lack of review for OAuth and read-only mode, coupled with the fact that the last commit occurred over 140 days ago, suggests it may not be suitable for sensitive or mission-critical environments where active security oversight is required.
- Provides semantic tools like definition lookups and diagnostic reporting
- Supports common language servers including gopls and rust-analyzer
- Zero direct dependencies reduces the external supply-chain surface area
- Licensed under the permissive BSD-3-Clause
- Community-maintained without official vendor support
- Last commit activity is 146 days old
- Security-sensitive features like OAuth are not reviewed
Tools
| Tool | Description | Risk |
|---|---|---|
| definition | Retrieves the complete source code definition of any symbol (function, type, constant, etc.) from your codebase. | low |
| references | Locates all usages and references of a symbol throughout the codebase. | low |
| diagnostics | Provides diagnostic information for a specific file, including warnings and errors. | low |
| hover | Display documentation, type hints, or other hover information for a given location. | low |
| rename_symbol | Rename a symbol across a project. | medium |
| edit_file | Allows making multiple text edits to a file based on line numbers. | medium |
Compatibility
| Client | Local | Docker | Remote | Read-only |
|---|---|---|---|---|
| Claude Desktop | ||||
| Cursor | ||||
| VS Code | ||||
| Windsurf | ||||
| ChatGPT |
Frequently asked questions
›What prerequisites are needed to use this server?
You must have Go installed on your machine and have the mcp-language-server package installed via 'go install'.
›How do I make the server work with my specific programming language?
You must install the appropriate language server for your project, such as gopls, rust-analyzer, pyright, typescript-language-server, or clangd, and point to it in your configuration.
›Do I need to set environment variables for every language?
Not necessarily, but some setups, such as the Go configuration for Claude Desktop, require specific environment variables like PATH, GOPATH, and GOCACHE to function correctly.
›Can I use this server for multiple projects at once?
The server is configured by defining a workspace directory in the arguments, which points to the specific project path you want the LLM to access.
›Are there special configuration requirements for C/C++?
Yes, you must provide the path to your clangd binary and include the '--compile-commands-dir' argument pointing to the directory containing your project's compile_commands.json file.
Alternatives
Changelog
Badge
Maintain this server? Add the live badge to your README.