mcpField
G
godoc-mcp-server

godoc-mcp-server

本地服务
github.com/yikakia开发工具3832 周前更新

关于 godoc-mcp-server

godoc-mcp-server 是一个 MCP 服务,可从 pkg.go.dev 搜索 Go 语言包及其文档,并将信息提供给 LLM。它面向使用 Go 的开发者,通过 stdio 运行。

主要功能

  1. 01搜索 Go 包及其文档
  2. 02获取包信息与示例
  3. 03统计包被导入的次数
  4. 04使用本地缓存减少重复搜索
  5. 05支持子包信息查询

适用场景

  1. 01让 LLM 查询 Go 包的用法与文档
  2. 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。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。