mcp-language-server:提升大型项目开发体验的语言服务器
mcp-language-server:提升大型项目开发体验的语言服务器
mcp-language-server Model Context Protocol (MCP) server that interacts with a Language Server 项目地址: https://gitcode.com/gh_mirrors/mc/mcp-language-server
项目介绍
mcp-language-server 是一款基于 Model Context Protocol (MCP) 的语言服务器,旨在为开发者提供与语言服务器沟通的工具,从而优化代码编写和项目管理体验。该项目模仿了 Claude desktop 中 filesystem 服务器在小项目中的便捷性,并试图将这种体验扩展到大型项目中。
项目技术分析
mcp-language-server 利用语言服务器协议(Language Server Protocol,LSP)的优势,通过精确理解代码中的类型、关系和符号引用,为大型项目提供高效的支持。其内部使用了部分 gopls 的代码以处理 LSP 通信,同时采用 mcp-golang 实现 MCP 通信。
项目目前处于预测试阶段,但已与多种语言服务器进行了兼容性测试,包括 Python 的 pyright、TypeScript 的 tsserver、Go 的 gopls 以及 Rust 的 rust-analyzer。
项目及技术应用场景
mcp-language-server 提供了一系列工具,用于在代码库中检索定义、查找引用、获取诊断信息、代码透镜提示以及执行代码透镜操作等。以下是一些具体的应用场景:
- 代码定义检索:通过
read_definition
工具,开发者可以轻松获取任意符号(如函数、类型、常量等)的完整源代码定义。 - 符号引用定位:使用
find_references
工具,开发者在整个代码库中查找特定符号的所有使用和引用。 - 代码诊断信息:
get_diagnostics
工具为特定文件提供诊断信息,包括警告和错误。 - 代码透镜功能:通过
get_codelens
和execute_codelens
工具,开发者可以获得代码上下文提示并执行相关操作。 - 文本编辑应用:
apply_text_edit
工具支持以编程方式对文件进行多文本编辑。
项目特点
- 兼容性强:mcp-language-server 与多种语言服务器兼容,适用于不同的编程语言。
- 灵活配置:项目支持自定义输出选项,开发者可以根据需求调整配置,如包含行号或附加上下文。
- 易于集成:开发者可以通过简单的配置将其集成到 Claude Desktop 或其他 MCP 支持的客户端中。
- 持续更新:项目维护者持续更新功能列表,包括但不限于悬停信息、代码操作、上下文和取消处理等。
如何使用
使用 mcp-language-server 前,需要安装 Go 语言环境,并使用 go install
命令获取服务器。接着,根据项目类型安装相应的语言服务器。最后,在 Claude Desktop 或类似客户端中配置服务器路径和参数。
开发者反馈
项目维护者鼓励开发者提供详细的反馈,包括设置 DEBUG
环境变量以获取详细的日志信息。当前项目已实现的功能包括定义读取、引用获取、编辑应用、诊断获取和代码透镜等,而悬停信息、代码操作等高级功能仍在计划中。
通过以上分析,mcp-language-server 无疑是一款值得关注的工具,特别是对于那些在大型项目中寻求更高效开发体验的开发者。通过其提供的工具和功能,开发者可以极大提升代码编写和管理效率,从而实现更优质的项目交付。
mcp-language-server Model Context Protocol (MCP) server that interacts with a Language Server 项目地址: https://gitcode.com/gh_mirrors/mc/mcp-language-server