MCP Language Server

MCP Language Server

site icon
2025.04.18 170
Go语言服务器代码分析代码编辑开发效率
MCP Language Server 是一个基于 Model Context Protocol (MCP) 的语言服务器,旨在为大型项目提供高效的代码分析和编辑工具。它通过与多种语言服务器(如 pyright、tsserver、gopls、rust-analyzer 等)的集成,为开发者提供精确的代码定义、引用查找、诊断信息等功能。该项目的目标是弥补 LLMs 在代码理解方面的不足,提供更高效的开发体验。
View on GitHub

Overview

基本能力

产品定位

MCP Language Server 是一个为大型代码项目设计的语言服务器,旨在通过集成多种语言服务器的功能,提供高效的代码分析和编辑工具。

核心功能

  • 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:按照 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. 安装 MCP Language Server:
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/yourcodebase",
        "--lsp",
        "/opt/homebrew/bin/pyright-langserver",
        "--",
        "--stdio"
      ],
      "env": {
        "DEBUG": "1"
      }
    }
  }
}

调试方式

  1. 在配置中添加 DEBUG=1 环境变量以获取详细日志。
  2. 确保语言服务器的路径正确,可以通过 which 命令查找路径。
  3. 确保工作空间路径正确。

许可证

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