MCP Language Server

MCP Language Server

site icon
2025.03.28 0
Go多语言支持代码导航代码诊断开发效率
MCP Language Server 是一个基于 Model Context Protocol (MCP) 的服务,旨在通过统一的接口管理多个编程语言的 Language Server,为大型语言模型 (LLM) 提供更强大的代码理解和操作能力。它支持多种编程语言的语言服务器,如 Python、TypeScript、Go 和 Rust,并提供了多种工具来帮助开发者进行代码导航、诊断和编辑。
View on GitHub

Overview

基本能力

产品定位

MCP Language Server 是一个多语言服务器管理工具,旨在通过统一的 MCP 接口为 LLM 提供强大的代码理解和操作能力。

核心功能

  • 管理多个语言服务器,支持 Python、TypeScript、Go 和 Rust 等语言。
  • 提供多种工具,包括读取定义、查找引用、获取诊断信息、代码透镜操作等。
  • 支持通过文件扩展名或显式语言参数自动路由请求到适当的语言服务器。

适用场景

  • 大型代码库的导航和理解。
  • 代码重构和编辑。
  • 代码诊断和优化。

工具列表

  • read_definition: 检索符号的完整源代码定义。
  • find_references: 定位符号的所有使用和引用。
  • get_diagnostics: 提供特定文件的诊断信息。
  • get_codelens: 检索特定文件的代码透镜提示。
  • execute_codelens: 运行特定文件的代码透镜操作。
  • apply_text_edit: 允许以编程方式对文件进行多个文本编辑。

常见问题解答

  • 如何启用调试日志?在配置中添加 "DEBUG": 1 环境变量。
  • 支持哪些语言服务器?目前测试过 pyright、tsserver、gopls 和 rust-analyzer,但理论上兼容更多语言服务器。

使用教程

使用依赖

  1. 安装 Go: 参考 Go 安装指南
  2. 安装语言服务器:
  3. Python (pyright): npm install -g pyright
  4. TypeScript (tsserver): npm install -g typescript typescript-language-server
  5. Go (gopls): go install golang.org/x/tools/gopls@latest
  6. Rust (rust-analyzer): rustup component add rust-analyzer

安装教程

  1. 克隆仓库并构建可执行文件: bash git clone https://github.com/isaacphi/mcp-language-server.git cd mcp-language-server go build -o mcp-language-server .
  2. 创建配置文件 config.json,示例: json { "workspaceDir": "/path/to/your/project", "languageServers": [ { "language": "typescript", "command": "typescript-language-server", "args": ["--stdio"], "extensions": [".ts", ".tsx", ".js", ".jsx"] } ] }
  3. 配置 MCP 客户端,示例: json { "mcpServers": { "mcp-language-server": { "command": "/path/to/mcp-language-server", "args": ["--config", "/path/to/config.json"], "env": {"DEBUG": "1"} } } }

调试方式

  • 启用调试日志: 在配置中添加 "DEBUG": 1 环境变量。
  • 查看详细日志以诊断问题。

许可证

该项目遵循 BSD-3-Clause 开源许可条款,请参阅 BSD-3-Clause 了解完整条款。