MCP Language Server

MCP Language Server

site icon
2025.02.17 0
Go语言服务器代码分析代码编辑开发效率
isaacphi_mcp-language-server 是一个基于 Model Context Protocol (MCP) 的语言服务器,旨在为大型项目提供高效的代码分析和编辑功能。它通过集成多种语言服务器(如 pyright、tsserver、gopls、rust-analyzer 等),为开发者提供符号定义、引用查找、诊断信息、代码透镜等功能,帮助 LLMs 更准确地理解和操作代码。
View on GitHub

Overview

基本能力

产品定位

isaacphi_mcp-language-server 是一个为大型代码项目设计的语言服务器,通过 MCP 协议与语言服务器通信,提供高效的代码分析和编辑功能。

核心功能

  • read_definition: 获取代码库中任何符号(函数、类型、常量等)的完整源代码定义。
  • find_references: 查找代码库中符号的所有使用和引用。
  • get_diagnostics: 提供特定文件的诊断信息,包括警告和错误。
  • get_codelens: 获取代码透镜提示,提供额外的上下文和操作。
  • execute_codelens: 执行代码透镜操作。
  • apply_text_edit: 允许以编程方式对文件进行多文本编辑。

适用场景

  • 大型代码项目的代码分析和编辑。
  • 需要与多种语言服务器集成的开发环境。
  • 需要精确符号定义和引用查找的开发任务。

工具列表

  • read_definition: 获取符号的完整源代码定义。
  • find_references: 查找符号的所有引用。
  • get_diagnostics: 获取文件的诊断信息。
  • get_codelens: 获取代码透镜提示。
  • execute_codelens: 执行代码透镜操作。
  • apply_text_edit: 对文件进行多文本编辑。

常见问题解答

  • 如何调试?在配置中添加 "DEBUG": 1 以获取详细的 LSP 和应用日志。
  • 支持哪些语言服务器?目前测试支持 pyright (Python)、tsserver (TypeScript)、gopls (Go)、rust-analyzer (Rust),但理论上兼容更多语言服务器。

使用教程

使用依赖

  1. 安装 Go: 参考 https://golang.org/doc/install
  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. 安装服务:
go install github.com/isaacphi/mcp-language-server@latest
  1. 配置 Claude Desktop 或类似 MCP 客户端,示例配置如下:
{
  "mcpServers": {
    "language-server": {
      "command": "go",
      "args": [
        "run",
        "github.com/isaacphi/mcp-language-server@latest",
        "--workspace",
        "/Users/you/dev/yourpythoncodebase",
        "--lsp",
        "/opt/homebrew/bin/pyright",
        "--",
        "--stdio"
      ],
      "env": {
        "DEBUG": "1"
      }
    }
  }
}

调试方式

  1. 在配置中添加 "DEBUG": 1 以获取详细日志。
  2. 运行服务并检查日志输出。

许可证

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