从 pkg.go.dev 搜索 Golang 包及其文档,并作为 MCP 服务器提供信息给 LLM。
你可以从 发布页面 下载编译好的二进制文件。
或者你可以从源码安装并自行编译:
go install github.com/yikakia/godoc-mcp-server/cmd/godoc-mcp-server@latest
只需使用你的客户端进行请求。它通过标准 I/O 提供服务。
描述非常重要,当描述参数时应告诉客户端如何使用一个工具的输出,并将其格式转换以匹配另一个工具的输入。
例如,searchPackage 的输出包含子包的名称,但不包含包的名称。因此,如果希望 LLM 使用 getPackageInfo 来获取子包的信息,我为参数 packageName 写了如下描述:
用于搜索的包名。如果之前使用过 searchPackages,并且用户想要获取子包的信息。你应该将它们组合起来。例如,当用户查询 mcp 并返回 packageName: github.com/mark3labs/mcp-go/mcp 和子包 client,那么如果用户想要获取 client 包的信息,你应该将 packageName 设置为 github.com/mark3labs/mcp-go/mcp/client 而不是 client。
在使用这个详细的描述时,LLM 将会在搜索后告诉你一些子包的名称。你可以直接告诉它你想要获取哪个包的信息,或哪个包和子包的名称,它会将它们组合起来并调用 getPackageInfo 来获取信息。
所以,也许我们应该让用户配置这些描述,使工具更加有用和高效。
此模块导出的 Go API 目前应被视为不稳定,并可能有重大更改。未来,我们可能会提供稳定性;如果有使用场景需要这种稳定性,请提交一个问题。
本项目根据 MIT 开源许可证的条款授权。请参阅 MIT 获取完整条款。