Isaacphi_mcp Language Server

Isaacphi_mcp Language Server

🚀 MCP 语言服务器

MCP 语言服务器是一个运行语言服务器并提供与之通信工具的 Model Context Protocol (MCP) 服务器,它旨在为大型项目带来如小型项目般的高效开发体验,同时将语言服务器处理复杂任务的能力赋予大语言模型。

🚀 快速开始

先决条件

go install github.com/isaacphi/mcp-language-server@latest
  • 为你的代码库安装一个语言服务器:
    • Python(pyright):npm install -g pyright
    • TypeScript(tsserver):npm install -g typescript typescript-language-server
    • Go(gopls):go install golang.org/x/tools/gopls@latest
    • Rust(rust-analyzer):rustup component add rust-analyzer
    • 或使用任何语言服务器

设置

将类似以下配置添加到你的 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"
}
}
}
}

替换说明:

  • /Users/you/dev/yourpythoncodebase 为你项目的绝对路径。
  • /opt/homebrew/bin/pyright 为你的语言服务器的路径(使用 which 命令查找,例如 which pyright)。
  • 任何 -- 符号后的参数都会作为语言服务器的参数传递。
  • --stdio 替换为其他后端需要的参数。

在开发环境中,请参考 配置 进行设置。

✨ 主要特性

带来大型项目高效体验

Claude 桌面搭配 文件系统 服务器在小型项目上使用体验出色,但在大型项目上有所不足。此项目旨在为大型项目带来类似小型项目的高效体验。

结合语言服务器优势

语言服务器在处理 LLM 经常遇到困难的任务方面表现出色,例如精确理解类型、理解关系以及提供准确的符号引用。该项目将这些工具带给 LLM,且 LSP 是 MCP 的明显灵感来源,实现了两者的结合。

丰富的工具支持

  • read_definition:检索任何符号(函数、类型、常量等)的完整源代码定义。
  • find_references:定位符号在代码库中的所有使用和引用。
  • get_diagnostics:为特定文件提供诊断信息,包括警告和错误。
  • get_codelens:检索代码摘要提示以获取更多上下文和代码操作。
  • execute_codelens:运行代码摘要操作。
  • apply_text_edit:允许对文件进行多项文本编辑。

在幕后,此 MCP 服务器可以处理语言服务器的 workspace/applyEdit 请求,因此它可以执行诸如请求重构、添加导入、格式化代码等操作。每个工具都支持各种选项以自定义输出,例如包含行号或附加上下文。行号对于 apply_text_edit 能够进行准确编辑是必要的。

📦 安装指南

安装 Go

请按照 https://golang.org/doc/install 的说明进行操作。

获取或更新服务器

go install github.com/isaacphi/mcp-language-server@latest

安装语言服务器

  • Python(pyright):npm install -g pyright
  • TypeScript(tsserver):npm install -g typescript typescript-language-server
  • Go(gopls):go install golang.org/x/tools/gopls@latest
  • Rust(rust-analyzer):rustup component add rust-analyzer
  • 或使用任何语言服务器

📚 详细文档

状态说明

⚠️ 预 Beta 质量 ⚠️

我已经测试过此服务器与以下语言服务器:

  • pyright(Python)
  • tsserver(TypeScript)
  • gopls(Go)
  • rust-analyzer(Rust)

但它应该兼容许多其他语言服务器。

关于代码库

此代码库使用了 gopls 处理 LSP 通信的修改后的代码。有关详细信息,请参阅 ATTRIBUTION。

mcp-golang 用于 MCP 通信。

调试与日志

包括

env: {
"DEBUG": 1
}

以获取详细的 LSP 和应用程序日志。请在报告问题时提供尽可能多的信息。

待实现功能

以下功能在我的雷达上:

  • [x] 读取定义
  • [x] 获取引用
  • [x] 应用编辑
  • [x] 获取诊断
  • [x] 代码摘要
  • [ ] 悬停信息
  • [ ] 代码操作
  • [ ] 更好的上下文和取消处理
  • [ ] 添加语言服务器配置选项
  • [ ] 创建更一致和可扩展的工具 API(分页等)

注意事项

⚠️ 重要提示

目前项目处于预 Beta 质量阶段,使用时可能存在不稳定情况。

💡 使用建议

在报告问题时,请包含详细的 LSP 和应用程序日志(通过设置 env: { "DEBUG": 1 } 获取),以提供尽可能多的信息。

  • 0 关注
  • 0 收藏,30 浏览
  • system 提出于 2025-10-02 00:57

相似服务问题

相关AI产品