# isaacphi/mcp-language-server [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/isaacphi/mcp-language-server  
**GitHub Stars:** 1589  
**Views:** 4  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/isaacphi-mcp-language-server

## Description
MCP Language Server helps MCP enabled clients navigate codebases more easily by giving them access to semantic tools like get definition, references, rename, and diagnostics.

## Tools
Capabilities this server exposes over MCP:

- **definition** — Retrieves the complete source code definition of any symbol (function, type, constant, etc.) from your codebase.
- **references** — Locates all usages and references of a symbol throughout the codebase.
- **diagnostics** — Provides diagnostic information for a specific file, including warnings and errors.
- **hover** — Display documentation, type hints, or other hover information for a given location.
- **rename_symbol** — Rename a symbol across a project.
- **edit_file** — Allows making multiple text edits to a file based on line numbers. Provides a more reliable and context-economical way to edit files compared to search and replace based edit tools.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `go` (confidence: high):

```json
"mcpServers": {
  "mcp-language-server": {
    "command": "go",
    "args": ["install","github.com/isaacphi/mcp-language-server@latest"]
  }
}
```

## Documentation

## What isaacphi/mcp-language-server MCP server does

The isaacphi/mcp-language-server MCP server exposes a language server to MCP-enabled clients. It is intended for navigating and modifying source code with semantic information supplied by an underlying Language Server Protocol implementation.

The server works against a configured workspace. Instead of asking an agent to infer relationships from file text alone, it provides operations based on symbols, source locations, references, diagnostics, and language-server responses. It is useful for repositories where an installed language server can understand the project and its dependencies.

## How it works

The MCP process launches a language-server executable and communicates with it over standard input and output. The language-server program must support stdio communication. The `--workspace` option selects the codebase, while `--lsp` identifies the executable or path to launch. Arguments after `--` are forwarded to that language server, and configured environment variables are passed through to it.

The project has documented configurations for Go with `gopls`, Rust with `rust-analyzer`, Python with `pyright-langserver`, TypeScript with `typescript-language-server`, and C or C++ with `clangd`. Other language servers may work when they meet the stdio requirement, but the README states that only the listed servers were tested.

## Setup and configuration

Install Go first, then install the server with:

```bash
go install github.com/isaacphi/mcp-language-server@latest
```

Install the language server for the language used by the target workspace. For example, the documented commands include `go install golang.org/x/tools/gopls@latest`, `rustup component add rust-analyzer`, and global npm installation for Pyright or TypeScript language-server packages.

An MCP client configuration needs the `mcp-language-server` command and arguments resembling `--workspace`, a real workspace path, `--lsp`, and the language-server command. Claude Desktop is the example client shown in the documentation. C or C++ projects may also need clangd's `--compile-commands-dir` option pointing to a directory containing `compile_commands.json`.

## Tools and capabilities

The isaacphi/mcp-language-server MCP server provides these MCP tools:

- `definition` returns the complete source definition for a symbol such as a function, type, or constant.
- `references` finds usages of a symbol across the workspace.
- `diagnostics` reports warnings and errors for a specified file.
- `hover` returns documentation, type information, or other hover data for a location.
- `rename_symbol` renames a symbol across a project.
- `edit_file` applies multiple text edits to a file using line numbers, offering an alternative to search-and-replace editing.

## Limitations and notes

This project is described as beta software. Its results depend on the selected language server and that server's project configuration. The underlying executable must communicate over stdio, and language-specific setup may be required before semantic features work correctly. For clangd, the documentation specifically notes that an appropriate `compile_commands.json` should be generated.

The README identifies edited code from gopls for LSP communication and says the codebase is covered by a permissive BSD-style license. It also documents `LOG_LEVEL=DEBUG` for verbose logging to standard error during development or troubleshooting.

_Full upstream README: https://allmcps.com/mcp/isaacphi-mcp-language-server/readme_

