README
🚀 MCP 语言服务器
MCP 语言服务器是一个模型上下文协议 (MCP) 服务器,它能够运行语言服务器并提供与之通信的工具,有助于在处理大型项目时为用户带来更优质的体验。
🚀 快速开始
项目的状态目前处于预 beta 质量阶段。此服务器已在以下语言服务器中进行过测试:
- gopls (Go)
- pyright (Python)
- typescript - language - server (TypeScript)
- rust - analyzer (Rust)
不过,它应该也能与许多其他语言服务器兼容。
✨ 主要特性
工具特性
read_definition:可检索代码库中任何符号(函数、类型、常量等)的完整源代码定义。find_references:能够定位符号在代码库中的所有使用和引用。get_diagnostics:为特定文件提供诊断信息,包括警告和错误。get_codelens:检索代码 lens 提示,以获取额外的上下文和操作。execute_codelens:执行一个代码 lens 操作。apply_text_edit:允许对文件进行多个文本编辑。hover:显示位置的文档、类型提示或其他悬停信息。rename_symbol:在整个项目中重命名符号。
反馈相关特性
在配置中包含
env: {
"LOG_LEVEL": "DEBUG",
}
可获得详细的 LSP 和应用程序日志。将 LOG_LEVEL 设置为 DEBUG 能启用所有组件的详细日志记录。添加 LOG_COMPONENT_LEVELS 与 wire:DEBUG 可显示原始 LSP JSON 消息。提交问题时请尽可能提供详细信息。
待实现功能
以下是一些待实现的功能:
- [x] 读取定义
- [x] 获取引用
- [x] 应用编辑
- [x] 获取诊断
- [x] 代码 lens
- [x] 悬停信息
- [x] 重命名符号
- [ ] 代码操作
- [ ] 更好地处理上下文和取消
- [ ] 添加 LSP 服务器配置选项和常见语言的预设
- [ ] 在更高层次的抽象中创建工具,结合诊断、代码 lens、悬停和代码操作来读取定义或引用。
📚 详细文档
动机
Claude 桌面配合 文件系统 服务器在处理小型项目时效果出色,如同魔法一般。但当添加几个文件和导入项后,这种出色的体验就开始消失。本项目旨在在处理大型项目时也能带来类似的优质体验。
语言服务器在执行 LLM 经常容易出错的任务(如精确理解类型、理解关系、提供准确的符号引用)方面表现出色。该项目的目标是将这些工具带给 LLM。而且 LSP 似乎也是 MCP 的一个明显灵感来源,因此将它们结合起来是一个不错的选择。
状态说明
⚠️ 重要提示 目前项目处于预 beta 质量阶段。
反馈说明
💡 使用建议 若想获得详细的 LSP 和应用程序日志,可在配置中包含
env: {
"LOG_LEVEL": "DEBUG",
}
将 LOG_LEVEL 设置为 DEBUG 可启用所有组件的详细日志记录。添加 LOG_COMPONENT_LEVELS 与 wire:DEBUG 可显示原始 LSP JSON 消息。提交问题时请尽可能提供详细信息,以便更好地反馈问题。
扫码联系在线客服