{"data":{"slug":"isaacphi-mcp-language-server","name":"mcp-language-server","tagline":"Provides MCP enabled clients with semantic tools for code understanding and manipulation","github_url":"https://github.com/isaacphi/mcp-language-server","owner":"isaacphi","repo":"mcp-language-server","owner_avatar_url":"https://avatars.githubusercontent.com/u/3385849?v=4","primary_language":"Go","stars":1570,"forks":138,"topics":["ai","language-server-protocol","mcp","mcp-server","model-context-protocol"],"archived":false,"github_pushed_at":"2026-03-01T23:27:09+00:00","maintenance_label":"Slowing","url":"https://www.graphcanon.com/tools/isaacphi-mcp-language-server","markdown_url":"https://www.graphcanon.com/tools/isaacphi-mcp-language-server.md","api_url":"https://www.graphcanon.com/api/graphcanon/tools/isaacphi-mcp-language-server","graph_url":"https://www.graphcanon.com/api/graphcanon/graph?tool=isaacphi-mcp-language-server","description":"mcp-language-server gives MCP enabled clients access semantic tools like get definition, references, rename, and diagnostics.","homepage_url":null,"license":"BSD-3-Clause","open_issues":64,"watchers":10,"ai_summary":"The mcp-language-server is built in Go and supports functions such as get definition, references, rename, and diagnostics through the Model Context Protocol, adhering to the Language Server Protocol.","readme_excerpt":"# MCP Language Server\n\n\n\n\n\n\nThis is an [MCP](https://modelcontextprotocol.io/introduction) server that runs and exposes a [language server](https://microsoft.github.io/language-server-protocol/) to LLMs. Not a language server for MCP, whatever that would be.\n\n## Demo\n\n`mcp-language-server` helps MCP enabled clients navigate codebases more easily by giving them access semantic tools like get definition, references, rename, and diagnostics.\n\n\n\n## Setup\n\n1. **Install Go**: Follow instructions at <https://golang.org/doc/install>\n2. **Install or update this server**: `go install github.com/isaacphi/mcp-language-server@latest`\n3. **Install a language server**: _follow one of the guides below_\n4. **Configure your MCP client**: _follow one of the guides below_\n\n<details>\n  <summary>Go (gopls)</summary>\n  <div>\n    <p><strong>Install gopls</strong>: <code>go install golang.org/x/tools/gopls@latest</code></p>\n    <p><strong>Configure your MCP client</strong>: This will be different but similar for each client. For Claude Desktop, add the following to <code>~/Library/Application\\ Support/Claude/claude_desktop_config.json</code></p>\n\n<pre>\n{\n  \"mcpServers\": {\n    \"language-server\": {\n      \"command\": \"mcp-language-server\",\n      \"args\": [\"--workspace\", \"/Users/you/dev/yourproject/\", \"--lsp\", \"gopls\"],\n      \"env\": {\n        \"PATH\": \"/opt/homebrew/bin:/Users/you/go/bin\",\n        \"GOPATH\": \"/users/you/go\",\n        \"GOCACHE\": \"/users/you/Library/Caches/go-build\",\n        \"GOMODCACHE\": \"/Users/you/go/pkg/mod\"\n      }\n    }\n  }\n}\n</pre>\n\n<p><strong>Note</strong>: Not all clients will need these environment variables. For Claude Desktop you will need to update the environment variables above based on your machine and username:</p>\n<ul>\n  <li><code>PATH</code> needs to contain the path to <code>go</code> and to <code>gopls</code>. Get this with <code>echo $(which go):$(which gopls)</code></li>\n  <li><code>GOPATH</code>, <code>GOCACHE</code>, and <code>GOMODCACHE</code> may be different on your machine. These are the defaults.</li>\n</ul>\n\n  </div>\n</details>\n<details>\n  <summary>Rust (rust-analyzer)</summary>\n  <div>\n    <p><strong>Install rust-analyzer</strong>: <code>rustup component add rust-analyzer</code></p>\n    <p><strong>Configure your MCP client</strong>: This will be different but similar for each client. For Claude Desktop, add the following to <code>~/Library/Application\\ Support/Claude/claude_desktop_config.json</code></p>\n\n<pre>\n{\n  \"mcpServers\": {\n    \"language-server\": {\n      \"command\": \"mcp-language-server\",\n      \"args\": [\n        \"--workspace\",\n        \"/Users/you/dev/yourproject/\",\n        \"--lsp\",\n        \"rust-analyzer\"\n      ]\n    }\n  }\n}\n</pre>\n  </div>\n</details>\n<details>\n  <summary>Python (pyright)</summary>\n  <div>\n    <p><strong>Install pyright</strong>: <code>npm install -g pyright</code></p>\n    <p><strong>Configure your MCP client</strong>: This will be different but similar for each client. For Claude Desktop, add the following to <code>~/Library/Application\\ Support/Claude/claude_desktop_config.json</code></p>\n\n<pre>\n{\n  \"mcpServers\": {\n    \"language-server\": {\n      \"command\": \"mcp-language-server\",\n      \"args\": [\n        \"--workspace\",\n        \"/Users/you/dev/yourproject/\",\n        \"--lsp\",\n        \"pyright-langserver\",\n        \"--\",\n        \"--stdio\"\n      ]\n    }\n  }\n}\n</pre>\n  </div>\n</details>\n<details>\n  <summary>Typescript (typescript-language-server)</summary>\n  <div>\n    <p><strong>Install typescript-language-server</strong>: <code>npm install -g typescript typescript-language-server</code></p>\n    <p><strong>Configure your MCP client</strong>: This will be different but similar for each client. For Claude Desktop, add the following to <code>~/Library/Application\\ Support/Claude/claude_desktop_config.json</code></p>\n\n<pre>\n{\n  \"mcpServers\": {\n    \"language-server\": {\n      \"command\": \"mcp-language-server\",\n      \"args\": [\n        \"--workspace\",\n        \"/Users/you/dev/yourproject/\",\n        \"--lsp\",","github_created_at":"2024-12-30T20:43:23+00:00","created_at":"2026-07-11T11:51:42.583133+00:00","updated_at":"2026-07-27T00:00:28.890194+00:00","categories":[{"slug":"developer-tools","name":"Developer Tools","url":"https://www.graphcanon.com/categories/developer-tools","markdown_url":"https://www.graphcanon.com/categories/developer-tools.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/developer-tools"}],"tags":[{"slug":"ai","name":"ai"},{"slug":"language-server-protocol","name":"language-server-protocol"},{"slug":"mcp","name":"mcp"},{"slug":"model-context-protocol","name":"model-context-protocol"}],"trust":{"provenance":{"is_fork":false,"github_id":910265773,"owner_type":"User","methodology":"github_public_v1","parent_repo":null,"near_duplicate_slugs":[]},"computed_at":"2026-07-27T00:00:28.208Z","maintenance":{"label":"Slowing","score":36,"methodology":"github_public_v1","releases_90d":0,"days_since_push":147,"last_release_at":"2025-05-16T17:41:09Z"},"security_summary":{"status":"no_manifest","scanner":null,"low_count":0,"high_count":0,"last_scan_at":"2026-07-11T11:51:44.331Z","medium_count":0,"scan_profile":"mcp_manifest","critical_count":0}},"capability_facts":{"scan":{"source":"repo_scan","observed_at":"2026-07-27T00:00:28.623Z"},"languages":{"value":["go"],"source":"github.language","observed_at":"2026-07-27T00:00:28.623Z"},"license_spdx":{"value":"BSD-3-Clause","source":"github.license","observed_at":"2026-07-27T00:00:28.623Z"}},"decision_facts":{"hosting":null,"pricing":null,"requirements":null,"constraints":null,"when_to_use":["Use when working on projects that leverage the Model Context Protocol for enhanced code understanding and manipulation capabilities.","Select if your development environment supports or requires the Language Server Protocol, and you need features specific to MCP."],"when_not_to_use":["Avoid it if your workflow does not support or require the Model Context Protocol.","Do not use when working in environments that mandate using a language server not based on Go, since mcp-language-server is written in Go."],"source":"enrich:decision_facts","observed_at":"2026-07-16T23:06:43.213Z"},"constraint_facets":null,"decision_summary":[{"label":"Adopt for","value":"The mcp-language-server offers MCP enabled clients access to functions such as get definition, references, rename, and diagnostics."}]}}