Golang包文档搜索服务

一个用于搜索Golang包及其文档的服务,提供信息给LLM作为MCP服务器使用。

  • by yikakia
  • Go
  • 本地部署
  • 38 星标
  • 更新于
在 GitHub 查看 yikakia/godoc-mcp-server

使用说明

godoc mcp服务器

从pkg.go.dev搜索golang软件包及其文档,将信息作为mcp服务器提供给llm

安装

您可以从以下网址下载编译后的二进制文件 发布页面.

或者你可以从源代码安装它,自己编译:

go install github.com/yikakia/godoc-mcp-server/cmd/godoc-mcp-server@latest

用法

只要用你的客户来请求。it服务器位于stdio上

待办

  • 本地缓存
    • [x] 使用本地缓存以避免每次搜索(来自reddit用户)
  • 搜索包
    • [x] 按多少个包导入
  • getPackageInfo
    • [x] fixme:子包需要新的适配器
    • [x] 获取示例
  • 发布
    • [x] 使用github操作为多个平台发布

开发经验

描述非常重要,在描述参数时,应该告诉客户端如何 使用一个工具的输出并更改格式以匹配另一个工具输入。

例如,输出 searchPackage 包含子包的名称,但不包含 包的名称。所以如果想让llm使用 getPackageInfo 为了获取子包的信息, 我为param写了描述 packageName 关于如何使用它与 searchPackage:

用于搜索的包名称。如果之前使用searchPackages,并且用户希望获取 子包信息。您应该加上它们,例如,当用户查询mcp时,它会返回 packageName:github/mark3labs/mcp-go/mcp和子包客户端,如果用户需要 要获取客户端包信息,您应该将packageName设置为 github/mark3labs/mcp-go/mcp/client而不是客户端

使用此详细描述时,llm会在后面告诉您一些子包的名称 搜索。你可以告诉它你想获取哪个包的信息,或者哪个包和 子包的名称,它将组合它们并调用 getPackageInfo 以获取信息。

所以也许我们应该让用户可以配置描述,让工具更有用 以及效率。

图书馆使用情况

该模块导出的Go API当前应被视为不稳定,并受 打破变化。未来,我们可能会提供稳定;如果有,请提交问题 这将是一个有价值的用例。

许可证

该项目根据麻省理工学院开源许可证条款获得许可。请参考 到 麻省理工学院 完整的条款。