isaacphi/mcp-language-server

View on GitHub ↗

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

1,579 ★143 forksGoUpdated 6mo 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
Stars
1,579★
Forks
143
Language
Go
License
BSD-3-Clause
Created
2024-12-30
Last push
2026-03-01