---
title: "MCP Language Server: Go to Definition and References for AI"
url: "https://mcpshelf.co/servers/mcp-language-server"
description: "Runs a language server such as gopls, rust-analyzer or pyright and gives an assistant definitions, references, diagnostics and rename. Install and config."
updated: "2026-10-27"
site: "MCP Shelf"
---

# MCP Language Server

> Puts a real language server behind your assistant: definitions, references, diagnostics and rename.

Source: https://mcpshelf.co/servers/mcp-language-server  
Markdown: https://mcpshelf.co/servers/mcp-language-server.md  
Generated: 2026-10-27T13:26:08.126Z

## Facts

- **Name:** MCP Language Server
- **Tagline:** Puts a real language server behind your assistant: definitions, references, diagnostics and rename.
- **Description:** MCP Language Server is a Go program by Phil Isaac that runs a language server such as gopls, rust-analyzer or pyright and gives an assistant definitions, references, diagnostics, hover and rename.
- **Repository:** https://github.com/isaacphi/mcp-language-server
- **Install:** `claude mcp add mcp-language-server -- mcp-language-server --workspace /path/to/your/project --lsp gopls`
- **Transport:** stdio (local)
- **Auth:** Needs `--workspace`, `--lsp`
- **Tools exposed:** 6: `edit_file`, `definition`, `references`, `diagnostics`, `hover`, `rename_symbol`
- **Category:** Developer tools (https://mcpshelf.co/categories/developer-tools)
- **Stats:** 1.6K GitHub stars, 67 downloads a week, last commit 1 Mar 2026, 0 upvotes on MCP Shelf
- **Install check:** Needs your setup first
- **Listed:** 2026-10-27
- **Page updated:** 2026-10-27

## Full description

### What is MCP Language Server?

**MCP Language Server is a Go program by Phil Isaac that runs a language server such as gopls, rust-analyzer or pyright and gives an assistant definitions, references, diagnostics, hover and rename.**

Phil Isaac's server starts a language server of your choice, such as gopls, rust-analyzer, pyright or clangd, against one project and passes its answers to the model. Instead of grepping for a name, the assistant can read the exact definition of a symbol, list every reference to it, see the compiler's warnings and errors for a file, read hover documentation and rename a symbol everywhere at once.

It works with any language server that talks over stdio, and anything after -- in the config is passed straight to it. The author calls it beta software, and the repository has seen little activity since March 2026.

|  |  |
| --- | --- |
| Made by | Phil Isaac (isaacphi) and contributors |
| GitHub | https://github.com/isaacphi/mcp-language-server |
| Licence | BSD-3-Clause |
| GitHub stars | 1.6K |
| Downloads | 67 a week |
| Last commit | 1 Mar 2026 |
| Tools | 6 |
| Runs on | Your computer |
| Install check | Needs your setup first |
| Category | [Developer tools](https://mcpshelf.co/categories/developer-tools) |
| Setup checked | 27 Oct 2026 |
| Page updated | 27 Oct 2026 |

**Our check:** It needs something our Linux test machine does not have (an account, a desktop app, a Mac or a running service), so on 27 Oct 2026 we read its tools from the source code instead of running this config. The shared database gave "npx mcp-language-server", an npm package this project does not publish. It is a Go program installed with go install.

#### MCP Shelf take

> MCP Language Server needs something our Linux test machine does not have (an account, an app or a service), so on 27 Oct 2026 we read its source and counted 6 tools. None of them is read-only, so keep "ask before each tool call" on. Other directories point at a package with the same name that belongs to someone else; the config on this page installs the real one. It sits 17th of 21 in its category on our shelf by GitHub stars (1.6K, with 67 downloads a week).

— MCP Shelf tests (numbers from our own runs), tested on 27 Oct 2026

### What tools does MCP Language Server have?

We listed 6 tools on 27 Oct 2026. 0 only read; the rest can change things or run commands.

| Tool | Kind | What it is for |
| --- | --- | --- |
| `edit_file` | changes | Applies several line-based edits to a file in one call. |
| `definition` | changes | Returns the full source of the definition of a function, type or constant, by name. |
| `references` | changes | Lists every place in the project where a symbol is used. |
| `diagnostics` | changes | Returns the language server's errors and warnings for a file. |
| `hover` | changes | Shows the type information and docs for the symbol at a line and column. |
| `rename_symbol` | changes | Renames the symbol at a position and updates every reference to it. |

### How do I install MCP Language Server?

#### What you need first

- Go, to install it
- A language server for your language, such as gopls or pyright

1. Run "go install github.com/isaacphi/mcp-language-server@latest".
2. Install a language server, for example "go install golang.org/x/tools/gopls@latest" or "npm install -g pyright".
3. Add the config below with your project path. For pyright use "--lsp", "pyright-langserver", "--", "--stdio".

#### Claude Code

Where: Your terminal, in the project folder

```bash
claude mcp add mcp-language-server -- mcp-language-server --workspace /path/to/your/project --lsp gopls
```

Run this in the project folder after go install has put mcp-language-server on your PATH. For Rust, swap gopls for rust-analyzer; for Python, use pyright-langserver followed by -- --stdio.

#### Cursor

Where: ~/.cursor/mcp.json, or .cursor/mcp.json in a project

```json
{
  "mcpServers": {
    "mcp-language-server": {
      "command": "mcp-language-server",
      "args": [
        "--workspace",
        "/path/to/your/project",
        "--lsp",
        "gopls"
      ]
    }
  }
}
```

#### Claude Desktop

Where: claude_desktop_config.json (Settings → Developer → Edit Config)

```json
{
  "mcpServers": {
    "mcp-language-server": {
      "command": "mcp-language-server",
      "args": [
        "--workspace",
        "/path/to/your/project",
        "--lsp",
        "gopls"
      ]
    }
  }
}
```

Claude Desktop does not read your shell PATH, so give the full path to mcp-language-server (usually ~/go/bin) and add an env block with PATH, GOPATH and GOCACHE if gopls cannot be found.

#### VS Code

Where: .vscode/mcp.json in your project

```json
{
  "servers": {
    "mcp-language-server": {
      "type": "stdio",
      "command": "mcp-language-server",
      "args": [
        "--workspace",
        "/path/to/your/project",
        "--lsp",
        "gopls"
      ]
    }
  }
}
```

#### Windsurf

Where: ~/.codeium/windsurf/mcp_config.json

```json
{
  "mcpServers": {
    "mcp-language-server": {
      "command": "mcp-language-server",
      "args": [
        "--workspace",
        "/path/to/your/project",
        "--lsp",
        "gopls"
      ]
    }
  }
}
```

#### ChatGPT

Where: Not supported

ChatGPT only connects to remote servers by URL. This one runs on your computer, so use Claude, Cursor or VS Code.

Desktop clients may not see your shell PATH. If the language server is not found, add PATH (and for Go, GOPATH and GOCACHE) to env, or give full paths.

Checked against the project's own install docs on 27 Oct 2026: https://github.com/isaacphi/mcp-language-server#readme

### How do I configure MCP Language Server?

| Setting | Kind | Required | What it does |
| --- | --- | --- | --- |
| `--workspace` | flag | yes | The project folder the language server works on. Example: `--workspace /Users/you/dev/yourproject/` |
| `--lsp` | flag | yes | The language server to start: gopls, rust-analyzer, pyright-langserver, typescript-language-server, clangd or another stdio server. Example: `--lsp gopls` |
| `-- <args>` | flag | no | Everything after -- is passed to the language server, such as --stdio for pyright. Example: `-- --stdio` |
| `LOG_LEVEL` | env | no | Set to DEBUG to log everything, including the messages to and from the language server. Example: `DEBUG` |

### What can MCP Language Server read and change?

**It can read**

- The source files in the workspace, through the language server

**It can change**

- Files in the workspace, through rename_symbol and edit_file

**Safer setup:** Point --workspace at a clean git checkout so any edit or rename can be reviewed and reverted.

### Good for

- Navigating a large codebase by symbol rather than by text search
- Checking diagnostics after the model edits a file
- Renaming a function or type safely across a project

### MCP Language Server not working? Common fixes

**The language server is not found**
Desktop clients do not inherit your shell PATH. Add a PATH entry to env with the folders of go and gopls (or your server), or use full paths.

**Go projects report module errors**
Set GOPATH, GOCACHE and GOMODCACHE in env to the values on your machine.

**pyright or the TypeScript server exits straight away**
They need --stdio. Add "--", "--stdio" after the --lsp value.

**clangd finds no symbols**
Generate compile_commands.json for your project and pass --compile-commands-dir to clangd after --.

### What are the alternatives to MCP Language Server?

| Server | What it does | Tools | Runs on | Licence | Stars |
| --- | --- | --- | --- | --- | --- |
| [MCP Language Server](https://mcpshelf.co/servers/mcp-language-server) | Puts a real language server behind your assistant: definitions, references, diagnostics and rename. | 6 | Your computer | BSD-3-Clause | 1.6K |
| [Nx MCP](https://mcpshelf.co/servers/nx) | Your Nx monorepo's projects, tasks, generators and CI results, for your assistant. | 13 | Your computer | MIT | 1.4K |
| [Jupyter MCP Server](https://mcpshelf.co/servers/jupyter) | Lets an assistant edit and run cells in a live Jupyter notebook and read the results. | 18 | Your computer | BSD | 1.3K |
| [Burp Suite MCP](https://mcpshelf.co/servers/burp-suite) | Lets an assistant send requests, read proxy history and use Repeater in Burp Suite. | 27 | Your computer | GPL-3.0 | 1.3K |
| [Ref MCP](https://mcpshelf.co/servers/ref) | Docs search for coding agents that returns only the part of the page that matters. | 2 | Your computer or hosted | MIT | 1.2K |
| [Desktop Commander](https://mcpshelf.co/servers/desktop-commander) | A terminal, file search and surgical file edits for your assistant. | 25 | Your computer | MIT | 10.1K |

### MCP Language Server FAQ

#### How do I install MCP Language Server?

Install Go, run go install github.com/isaacphi/mcp-language-server@latest, then install a language server for your code, such as gopls, rust-analyzer, pyright or clangd. The config passes your project folder with --workspace and the language server with --lsp.

#### How do I add MCP Language Server to Claude Code?

From your project folder run claude mcp add mcp-language-server -- mcp-language-server --workspace followed by the project path and --lsp gopls, or the language server you use instead.

#### Which languages does MCP Language Server support?

The author tested Go with gopls, Rust with rust-analyzer, Python with pyright, TypeScript with typescript-language-server and C or C++ with clangd. Any language server that talks over stdio should work.

#### Can I use several languages at once?

Each instance runs one language server against one workspace. For a mixed project, add one entry per language, each with its own name and --lsp value.

#### Why does pyright or the TypeScript server exit straight away?

Both need the --stdio flag. Anything after a double dash in the args goes straight to the language server, so end the args with -- and --stdio.

#### Can MCP Language Server change my code?

Yes. rename_symbol renames a symbol across the project and edit_file applies line edits. Point it at a git checkout so you can review and undo any change.

#### Does it work with ChatGPT?

No. It runs on your computer next to your code, and ChatGPT only connects to remote servers by URL. Use Claude Code, Claude Desktop, Cursor, VS Code or Windsurf.

#### Is MCP Language Server free and maintained?

It is free under the BSD-3-Clause licence. The author describes it as beta, and the repository has had little activity since March 2026.

Full docs on GitHub: https://github.com/isaacphi/mcp-language-server

## Notes for agents

Fetch these instead of parsing the HTML page:

- llms.txt: https://mcpshelf.co/llms.txt
- llms-full.txt: https://mcpshelf.co/llms-full.txt
- ai.txt: https://mcpshelf.co/ai.txt
- Full catalog (.md): https://mcpshelf.co/catalog.md
- API spec: https://mcpshelf.co/openapi.json
- MCP server: https://mcpshelf.co/mcp
- MCP manifest: https://mcpshelf.co/.well-known/mcp.json
- Developer docs: https://mcpshelf.co/developers

MCP endpoint (Streamable HTTP, no key): https://mcpshelf.co/mcp. REST API: https://mcpshelf.co/api/v1.

