← 返回公开榜单
go

mrjoshuak/godoc-mcp

go doc mcp server

本周新增
4 星
近 3 周倍数
1.3x
距上次推送
246 天
距上次发布
246 天
许可证
MIT

星标增长

每根柱子是这个周期记录下来的 star 增长:优先取逐个 stargazer 到达时间分桶的到达数,还没被 stargazer 扫描覆盖的仓库改用该周期的 star 净增;两个写者都没记录的周期画成虚线空档,而不是当成 0。柱高按各自窗口的峰值归一,两张图不共用坐标轴。指向任意一根柱子, tooltip 里是该周期的九项指标:当前值与周期内的净增。

指向或点击一根柱子,看当天的九项指标。

12/1712/301/111/242/62/193/33/16

2025 年 12 月 17 日 新增 0 个星标; 2025 年 12 月 18 日 新增 0 个星标; 2025 年 12 月 19 日 新增 1 个星标; 2025 年 12 月 21 日 新增 0 个星标; 2025 年 12 月 22 日 新增 0 个星标; 2025 年 12 月 23 日 新增 1 个星标; 2025 年 12 月 24 日 新增 0 个星标; 2025 年 12 月 25 日 新增 1 个星标; 2025 年 12 月 26 日 新增 0 个星标; 2025 年 12 月 27 日 新增 0 个星标; 2026 年 1 月 2 日 新增 0 个星标; 2026 年 1 月 3 日 新增 0 个星标; 2026 年 1 月 4 日 新增 0 个星标; 2026 年 1 月 5 日 新增 0 个星标; 2026 年 1 月 6 日 新增 0 个星标; 2026 年 1 月 8 日 新增 0 个星标; 2026 年 1 月 9 日 新增 0 个星标; 2026 年 1 月 10 日 新增 1 个星标; 2026 年 1 月 11 日 新增 0 个星标; 2026 年 1 月 12 日 新增 0 个星标; 2026 年 1 月 13 日 新增 0 个星标; 2026 年 1 月 14 日 新增 0 个星标; 2026 年 1 月 15 日 新增 0 个星标; 2026 年 1 月 16 日 新增 0 个星标; 2026 年 1 月 18 日 新增 0 个星标; 2026 年 1 月 21 日 新增 0 个星标; 2026 年 1 月 23 日 新增 0 个星标; 2026 年 1 月 25 日 新增 0 个星标; 2026 年 1 月 26 日 新增 0 个星标; 2026 年 1 月 27 日 新增 0 个星标; 2026 年 1 月 28 日 新增 0 个星标; 2026 年 1 月 29 日 新增 0 个星标; 2026 年 2 月 1 日 新增 1 个星标; 2026 年 2 月 2 日 新增 0 个星标; 2026 年 2 月 8 日 新增 1 个星标; 2026 年 2 月 9 日 新增 0 个星标; 2026 年 2 月 10 日 新增 0 个星标; 2026 年 2 月 11 日 新增 0 个星标; 2026 年 2 月 13 日 新增 0 个星标; 2026 年 2 月 14 日 新增 0 个星标; 2026 年 2 月 16 日 新增 0 个星标; 2026 年 2 月 17 日 新增 0 个星标; 2026 年 2 月 21 日 新增 1 个星标; 2026 年 2 月 23 日 新增 1 个星标; 2026 年 2 月 27 日 新增 2 个星标; 2026 年 2 月 28 日 新增 0 个星标; 2026 年 3 月 1 日 新增 0 个星标; 2026 年 3 月 8 日 新增 2 个星标; 2026 年 3 月 16 日 新增 4 个星标

窗口内最高的一天是 2026 年 3 月 16 日,新增 4 个星标。

证据时间轴

  1. 第 2026 年第 10 周发布 1 次

    累计 3 个 release

  2. 第 2026 年第 8 周发布 2 次

    累计 2 个 release

README
该仓库存储的文档,若已生成中文翻译则一并显示

godoc-mcp

Go Report Card Go Reference License

概述

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

快速开始

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

为什么使用 godoc-mcp?

一句话总结:godoc-mcp 为 LLM 提供了一种更 token 高效的方式来理解 Go 项目。

传统的文件读取方法要求 LLM 处理整个源文件,通常需要处理多个文件才能理解单个包。godoc-mcp 提供了以下优势:

  1. token 高效性:仅返回必要的文档,显著减少 token 使用量
  2. 结构化信息:以一致且结构良好的格式提供官方包文档
  3. 项目导航:智能处理项目结构,帮助 LLM 理解多包项目
  4. 集成友好:可与其他 MCP 服务器协同工作,实现高级和详细代码分析
  5. 性能优化:缓存和优化的 token 使用使 godoc-mcp 成为快速高效的 Go 开发工具
  6. 本地化:无需互联网连接即可访问文档

使用 godoc-mcp,LLM 可以精确获取所需信息,而无需读取整个源文件。以下是 LLM 可以获取的不同详细程度:

  • 单个导出符号的文档
  • 单个符号的完整源代码
  • 所有导出符号列表(简洁文档)
  • 所有符号列表(包括未导出符号)
  • 包的完整文档
  • 包的完整源代码

这使得 godoc-mcp 成为使用 LLM 的 Go 开发者的必备工具,使 LLM 能够比以往任何编程语言更深入、更详细地理解上下文。

功能

服务器将:

  1. 对于包含 Go 文件的目录:返回包文档
  2. 对于不包含 Go 文件的目录:列出子目录中的可用 Go 包
  3. 对于导入路径:返回标准库或第三方包文档
  • 高效文档访问:以最少的 token 获取官方 Go 文档
  • 智能包发现:当指向不包含 Go 文件的目录时,列出子目录中的可用 Go 包
  • 灵活路径支持:
    • 本地文件路径(例如,"/full/path/to/mypackage")
    • 导入路径(例如,"io"、"github.com/user/repo")
  • 自动模块上下文:
    • 当需要时创建临时 Go 项目
    • 自动设置外部包的模块上下文
    • 无需为任何包文档手动设置模块
    • 处理临时项目的清理
  • 模块感知:通过工作目录上下文支持第三方包文档(即它将从工作目录运行 go doc)
  • 性能优化:
    • 内置响应缓存
    • 通过聚焦文档检索实现高效的 token 使用
    • 响应大小的元数据
    • 智能处理标准库与外部包

示例

除了在编码任务中提供文档外,godoc-mcp 还可用于探索 Go 项目和包。以下是一些用于一般提示的示例:

项目理解

"我正在查看位于 /path/to/some/project 的 Go 项目。它包含哪些包以及它们的作用?"

包接口理解

"io" 包提供了哪些接口?我特别感兴趣的是与读取相关的内容。

实现指导

"我需要实现 io.Reader 接口。显示其文档以及我应该了解的任何相关类型。"

API 使用

显示 "/path/to/some/project" 中 Resource 类型的文档。我需要了解如何创建和使用它。

库探索

"我位于 /path/to/some/project,它使用 github.com/gorilla/mux。显示 Router 类型的文档。"

方法发现

"http.Request" 类型有哪些可用方法?我正在处理标准库 HTTP 处理程序。

聚焦学习

解释如何在 /path/to/project/server 包中配置 Server 类型。"

包浏览

"我位于新的 Go 项目目录中,看到多个包。你能告诉我每个包的作用吗?"

使用方法

传输选项

godoc-mcp 支持三种传输模式:

  • stdio(默认):标准输入/输出,适用于本地 MCP 客户端如 Claude Desktop
  • sse:HTTP 上的服务器发送事件,适用于基于 Web 的 MCP 客户端
  • http:流式 HTTP,MCP 规范推荐使用的 HTTP 传输
# 默认 stdio 模式
godoc-mcp

# SSE 模式,端口 8080
godoc-mcp --transport sse --addr :8080

# 流式 HTTP 模式
godoc-mcp --transport http --addr :9090

Docker

docker pull ghcr.io/mrjoshuak/godoc-mcp:latest

用于与 Docker MCP Gateway 一起使用,将以下内容添加到您的 MCP 配置中:

{
  "mcpServers": {
    "godoc": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "ghcr.io/mrjoshuak/godoc-mcp:latest"]
    }
  }
}

要访问本地项目文档,挂载您的项目目录,并将 working_dir 参数使用 /workspace:

{
  "mcpServers": {
    "godoc": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "-v", "/path/to/project:/workspace", "ghcr.io/mrjoshuak/godoc-mcp:latest"]
    }
  }
}

要通过 Docker 使用 SSE 传输:

docker run --rm -p 8080:8080 ghcr.io/mrjoshuak/godoc-mcp:latest --transport sse --addr :8080

Claude Code

claude mcp add godoc-mcp -- godoc-mcp

Claude Desktop

要添加到 Claude 桌面应用,编辑您的 MCP 配置:

{
  "mcpServers": {
    "godoc": {
      "command": "godoc-mcp"
    }
  }
}

如果 go doc 无法找到您的 Go 安装位置,请添加环境变量:

{
  "mcpServers": {
    "godoc": {
      "command": "godoc-mcp",
      "env": {
        "GOPATH": "/path/to/go",
        "GOMODCACHE": "/path/to/go/pkg/mod"
      }
    }
  }
}

工具

godoc-mcp 提供两个工具:

get_doc

获取 Go 包、类型、函数或方法的文档。

  • path(必需):包导入路径(例如,io、github.com/user/repo)或本地文件路径
  • target(可选):要文档化的特定符号(函数、类型等)
  • cmd_flags(可选):额外的 go doc 标志(允许:-all、-src、-u、-short、-c)
  • working_dir(可选):模块上下文的工作目录(相对路径需要)
  • page(可选):分页结果的页码(默认:1)
  • page_size(可选):每页行数,100-5000(默认:1000)

list_packages

列出给定 Go 包路径下的所有子包。使用此方法发现子包的正确导入路径,而不是猜测。

  • path(必需):根包导入路径(例如,net、github.com/user/repo)
  • working_dir(可选):模块上下文的工作目录(相对路径需要)

故障排除

  • 对于本地路径,请确保它们包含 Go 源文件或指向包含 Go 包的目录
  • 如果您看到与模块相关的错误,请确保在您的 MCP 服务器配置中正确设置了 GOPATH 和 GOMODCACHE 环境变量
  • 服务器自动处理外部包的模块上下文,但在需要时仍可提供特定的 working_dir 处理特殊情况

许可证

本项目根据 MIT 许可证授权 - 详细内容请参阅 LICENSE 文件。

页面上的每个数字都来自记录下来的 stargazer 到达时间,没有评分公式,也没有 AI 判定。 任何结论都可以用 /api/v1/repos/{id}/stats 里的原始增量自己重算。