isaacphi/mcp-language-server

mcp-language-server gives MCP enabled clients access semantic tools like get definition, references, rename, and diagnostics.

1,570 ★139 forksGoUpdated 5mo ago

What you need to know

Go MCP server that runs and exposes a language server (LSP) to LLMs — giving MCP clients semantic code tools: definitions, references, diagnostics, hover, rename, and reliable line-number-based multi-edit file editing.

Install

go install github.com/isaacphi/mcp-language-server@latest
Install a language server: gopls (go install golang.org/x/tools/gopls@latest), rustup component add rust-analyzer, npm install -g pyright, npm install -g typescript typescript-language-server, or clangd

Usage

  • Configure your MCP client with --workspace <path> and --lsp <server> (args after `--` are passed to the language server)
  • Example Claude Desktop config: { "command": "mcp-language-server", "args": ["--workspace", "/path/to/project", "--lsp", "gopls"] }
  • For Claude Desktop on macOS, set PATH/GOPATH/GOCACHE/GOMODCACHE env vars for Go

Key features

  • Tools: definition, references, diagnostics, hover, rename_symbol, and edit_file (reliable multi-edit on line numbers)
  • Language-agnostic — works with any stdio LSP server (tested with gopls, rust-analyzer, pyright, typescript-language-server, clangd)
  • Passes env vars and extra args through to the language server
  • Snapshot test suite that runs real language servers on mock workspaces

Caveats

  • Beta software
  • The language server must communicate over stdio
  • Requires Go and the relevant language server installed on the machine
Platforms: macOS · Linux · WindowsClients: Claude Desktop · Cursor · other MCP clients

Reviewed 2026-08-07

Topics

ailanguage-server-protocolmcpmcp-servermodel-context-protocol
View on GitHub ↗
Stars
1,570★
Forks
139
Language
Go
License
BSD-3-Clause
Created
2024-12-30
Last push
2026-03-01