返回 MCP 目录
public公开dns本地运行

Go Documentation

godoc-mcp是一个高效的Go文档访问工具,通过MCP协议为LLM提供结构化、低token消耗的Go项目文档访问服务,支持本地和远程包文档查询。

article

README

🚀 godoc-mcp

godoc-mcp 是一款模型上下文协议(MCP)服务器,能够高效提供 Go 文档的访问服务。它能助力大语言模型(LLM)理解 Go 项目,无需读取完整源文件,就能直接获取包文档,大幅减少理解单个包所需的令牌数量,显著提升使用 LLM 进行 Go 开发的性能。

🚀 快速开始

使用以下命令安装 godoc-mcp

go install github.com/mrjoshuak/godoc-mcp@latest

✨ 主要特性

核心功能

  • 自动模块上下文处理:服务器会自动创建临时项目来解析外部包,无需手动配置 GOPATHGOMODCACHE
  • 灵活的文档获取方式
    • 可获取完整包文档。
    • 能查看特定符号(如函数、类型等)的详细信息。
    • 支持可选显示未导出符号。
    • 支持可选显示源代码。

高级功能

  • 支持多工作目录:可通过配置不同的 GOPATHGOMODCACHE 来处理多个项目。
  • 高效的分词策略:通过优化的命令行参数减少不必要的文档加载。

📦 安装指南

使用以下命令进行安装:

go install github.com/mrjoshuak/godoc-mcp@latest

💻 使用示例

基础用法

在 Claude 桌面应用中添加如下配置:

{
  "mcpServers": {
    # 其他 MCP 服务器 ...
    "godoc": {
      "command": "/path/to/godoc-mcp",
      "args": [],
      "env": {
        "GOPATH": "/path/to/go",
        "GOMODCACHE": "/path/to/go/pkg/mod"
      }
    }
  }
}

高级用法

当连接到支持 MCP 的 LLM(如 Claude)时,godoc-mcp 提供 get_doc 工具,支持以下参数:

  • 路径:指向 Go 包或文件的路径(导入路径或文件路径)
  • 目标(可选):指定要获取文档的具体符号(函数、类型等)
  • 命令行参数(可选):额外的 go doc 命令参数
  • 工作目录(可选):用于模块感知文档获取的特定工作目录(如果未提供,默认创建临时项目)

常用的 命令行参数 包括:

  • -all:显示所有文档,不包含未导出符号
  • -u:显示未导出符号
  • -src:显示源代码而不是文档

🔧 技术细节

godoc-mcp 以更高效的分词方式提供 Go 文档访问。通过直接获取包文档,LLM 可以快速理解代码结构、精准定位 API 使用方法、敏锐洞察设计模式。服务器会自动创建临时项目来解析外部包,无需手动配置 GOPATHGOMODCACHE。同时,它支持多工作目录,可通过配置不同的 GOPATHGOMODCACHE 来处理多个项目,还能通过优化的命令行参数减少不必要的文档加载。

📚 详细文档

为什么选择 godoc-mcp?

一句话概括:godoc-mcp 以更高效的分词方式提供 Go 文档访问。

通过直接获取包文档,LLM 可以:

  • 快速理解代码结构
  • 精准定位 API 使用方法
  • 敏锐洞察设计模式

故障排除

  • 对于本地路径,请确保其包含 Go 源文件或指向包含 Go 包的目录。
  • 如果出现模块相关错误,请在 MCP 服务器配置中正确设置 GOPATHGOMODCACHE 环境变量。
  • 服务器会自动处理外部包的模块上下文,但如果您有特殊需求,仍可提供特定的 工作目录

📄 许可证

该项目采用 MIT 许可证,详细信息请参阅 LICENSE 文件。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端