关于 godoc-mcp-server
godoc-mcp-server 是一个 MCP 服务,可从 pkg.go.dev 搜索 Go 语言包及其文档,并将信息提供给 LLM。它面向使用 Go 的开发者,通过 stdio 运行。
主要功能
- 01搜索 Go 包及其文档
- 02获取包信息与示例
- 03统计包被导入的次数
- 04使用本地缓存减少重复搜索
- 05支持子包信息查询
适用场景
- 01让 LLM 查询 Go 包的用法与文档
- 02查找某个 Go 包的子包并获取其信息
MCP 相关
该项目是一个 MCP 服务器,通过 stdio 向 MCP 客户端提供 searchPackage 和 getPackageInfo 等工具,用于获取 pkg.go.dev 的包信息。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
godoc-mcp-server
从 pkg.go.dev 搜索 Go 包及其文档,并通过 MCP 服务将信息提供给大模型
安装
你可以从发布页面下载编译好的二进制文件。
也可以从源代码安装并自行编译:
go install github.com/yikakia/godoc-mcp-server/cmd/godoc-mcp-server@latest
用法
只需使用你的客户端发送请求。它通过标准输入输出提供服务。
待办事项
- localCache
- 使用本地缓存,避免每次都进行搜索(来自 Reddit 用户)
- searchPackage
- 被多少个包导入
- getPackageInfo
- 待修复:子包需要新的适配器
- 获取示例
- release
- 使用 GitHub Actions 为多个平台发布
开发体验
描述非常重要。描述参数时,应告诉客户端如何使用某个工具的输出,并将其格式调整为另一个工具的输入。
例如,searchPackage 的输出包含子包名称,但不包含包名称。因此,如果希望大模型使用 getPackageInfo 获取子包信息,我会在参数 packageName 的描述中说明如何将其与 searchPackage 配合使用:
用于搜索的包名称。如果之前使用过 searchPackages,且用户想获取子包信息,则应将它们拼接起来。例如,用户查询 mcp,返回的 packageName 为 github.com/mark3labs/mcp-go/mcp,子包为 client,那么如果用户想获取 client 包的信息,应将 packageName 设置为 github.com/mark3labs/mcp-go/mcp/client,而不是 client
使用这种详细描述时,大模型在搜索后会告诉你一些子包名称。你只需告诉它想获取哪个包的信息,或者提供包名和子包名称,它就会将两者组合起来,并调用 getPackageInfo 获取信息。
因此,我们或许应该允许用户配置描述,让工具更实用、更高效。
库的使用
目前应将此模块导出的 Go API 视为不稳定,并且可能发生不兼容变更。未来我们可能会提供稳定性保证;如果你有认为这很有价值的使用场景,请提交 issue。
许可证
本项目采用 MIT 开源许可证。完整条款请参阅 MIT。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。