godoc mcp
  
概述
godoc-mcp 是一个模型上下文协议(MCP)服务器,提供对Go文档的高效访问。它通过提供对包文档的直接访问来帮助LLM理解Go项目,而无需读取整个源文件。 godoc-mcp 通过大幅减少理解和使用Go包所需的令牌数量,可以大大提高使用LLM在Go中开发的性能。
入门指南
go install github.com/mrjoshuak/godoc-mcp@latest为什么使用godoc mcp?
在一句话中: godoc-mcp 为LLM理解Go项目提供了一种更具令牌效率的方法。
传统的文件读取方法要求LLM处理整个源文件——通常是许多文件——以理解单个包。 godoc-mcp 提供了几个优点:
- 代币效率:仅返回基本文档,大大减少令牌使用
- 结构化信息:以一致、结构良好的格式提供官方文件包
- 项目导航:巧妙处理项目结构有助于LLM理解多包项目
- 集成就绪:与其他MCP服务器协同工作,实现高级和详细的代码分析
- 演出:缓存和优化的令牌使用使
godoc-mcp一个快速高效的Go开发工具 - 本地:不需要互联网连接即可访问文档
随着 godoc-mcp,LLM可以精确地获得所需的信息,而无需读取整个源文件。以下是LLM可以获得的不同层次的细节。
- 一个导出符号的文档
- 一个符号的完整来源
- 所有导出符号的列表(简明文档)
- 所有符号的列表,包括未导出的符号
- 软件包的完整文档
- 包的整个来源
这使得 godoc-mcp 对于使用LLM的Go开发人员来说,这是一个必不可少的工具,使LLM能够比以前任何编程语言都更深入、更详细地了解上下文。
特性
服务器将:
- 对于包含Go文件的目录:返回包文档
- 对于没有Go文件的目录:在子目录中列出可用的Go包
- 对于导入路径:返回标准库或第三方包文档
- 高效的文档访问:以最少的令牌使用检索官方Go文档
- 智能包裹发现:当指向没有Go文件的目录时,会在子目录中列出可用的Go包
- 灵活的路径支持:
- 本地文件路径(例如,“/full/path/to/mypackage”) - 导入路径(例如,“io”、“github.com/user/repo”)
- 自动模块上下文:
- 在需要时创建临时Go项目 - 自动为外部包设置模块上下文 - 任何软件包文档都不需要手动设置模块 - 处理临时项目的清理
- 模块感知:支持通过工作目录上下文为第三方软件包编写文档(即它将运行
go doc从工作目录) - 性能优化:
- 内置响应缓存 - 通过集中文档检索实现高效的令牌使用 - 关于响应大小的元数据 - 智能处理标准库与外部包
例子
除了在编码任务中提供文档外。 godoc-mcp 也可用于探索Go项目和包。以下是一些一般提示的示例:
项目理解
“我正在查看/path/to/some/project中的Go项目。它包含哪些包,它们做什么?”
包接口理解
“io包提供了哪些接口?我对任何与阅读相关的东西都特别感兴趣。”
实施指南
“我需要实现io.Reader接口。给我看看它的文档和我应该知道的任何相关类型。”
API使用
“向我展示/path/to/some/项目中资源类型的文档。我需要了解如何创建和使用它。”
图书馆探索
“我在/path/to/some/项目中,该项目使用github.com/gorilla/mux。请向我展示路由器类型的文档。”
方法发现
“http.Request类型有哪些可用方法?我正在使用标准库http处理程序。”
专注学习
“解释如何在/path/to/project/Server包中配置服务器类型。”
包浏览
“我在一个新的Go项目目录中,看到了多个包。你能告诉我每个包的功能吗?”
用法
要添加到Claude桌面应用程序:
{
"mcpServers": {
# other MCP servers ...
"godoc": {
"command": "/path/to/godoc-mcp",
"args": [],
"env": {
"GOPATH": "/path/to/go",
"GOMODCACHE": "/path/to/go/pkg/mod"
}
}
}
}当连接到支持MCP的LLM(如克劳德)时,godoc-MCP提供 get_doc 工具具有以下参数:
path:Go包或文件的路径(导入路径或文件路径)target(可选):文档的特定符号(功能、类型等)cmd_flags(可选):其他go-doc命令标志working_dir(可选):模块感知文档的工作目录(如果没有提供,将自动创建一个临时项目)
高级 cmd_flags LLM可以利用的值:
-all:显示包的所有文档,不包括未导出的符号-u:显示未导出的符号-src:显示源代码而不是文档
故障排除
- 对于本地路径,确保它们包含Go源文件或指向包含Go包的目录
- 如果您看到与模块相关的错误,请确保在MCP服务器配置中正确设置了GOPATH和GOMODCACHE环境变量
- 服务器会自动处理外部包的模块上下文,但如果需要特殊情况,您仍然可以提供特定的working_dir
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
