Go模块代码访问服务器

一个为Claude提供Go模块源代码访问的MCP服务器,当模块在代理上不可用时,会建议本地可能存在的源代码目录。

  • by hugowetterberg
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 hugowetterberg/claude-gomod

使用说明

克劳德·戈莫德

一个MCP服务器,允许Claude访问Go模块源代码 proxy.golang.org当一个模块在代理上不可用时,它会建议源可能存在的本地目录。

工具

工具 说明
gomod_list_versions 列出模块的可用版本
gomod_read_mod 读取模块的go.mod文件
gomod_list_files 列出模块源代码存档中的文件
gomod_read_file 从模块的存档中读取源文件
gomod_search_files 使用正则表达式搜索文件内容

所有工具均接受 "latest" 作为版本,通过代理解析 /@latest 终点。

当代理返回404时, gomod_list_versions 检查 ~/Projects 查找与模块最后一个路径段匹配的本地目录,并建议将其作为回退。

安装

go install github.com/hugowetterberg/claude-gomod@latest

或者从源代码构建:

git clone https://github.com/hugowetterberg/claude-gomod.git
cd claude-gomod
go build .

使用克劳德代码注册

全局添加(适用于所有项目):

claude mcp add --scope user gomod -- /path/to/claude-gomod

或者仅适用于当前项目(默认):

claude mcp add gomod -- /path/to/claude-gomod

在开发过程中,您可以指向源目录:

claude mcp add --scope user gomod -- go run /path/to/claude-gomod

使用自定义本地回退目录:

claude mcp add --scope user gomod -- /path/to/claude-gomod -local-dir /other/path

使用示例

注册后,Claude可以直接使用这些工具:

  • “列出golang.org/x/tools的版本”
  • “给我看看golang.org/x的go.mod/net@latest"
  • “列出github/modelcontextprotocol/go-sdk v1.1.0中的文件”
  • “从github/modelcontextprotocol/go-sdk v1.1.0读取server.go”
  • “在github/modelcontextprotocol/go-sdk v1.1.0中搜索'HandleCall'”

搜索

gomod_search_files 在模块源代码归档中的所有文件中执行正则表达式搜索,返回具有可选上下文的匹配行。二进制文件会自动跳过。

参数 必填 说明
module yes 转到模块路径
version 是 模块版本或 "latest"
pattern yes 要搜索的正则表达式
lines_before no 每次匹配前的上下文行数(默认值0)
lines_after no 每次匹配后的上下文行数(默认为0)
extensions 否 要包含的文件扩展名,例如。 [".go", ".mod"]
glob 没有 Glob模式来过滤文件路径(path.Match 语法)

结果上限为100个文件和1000个匹配项,达到限制时会发出截断通知。

旗帜

标志 默认值 描述
-local-dir ~/Projects 本地模块回退的基本目录

运行测试

go test ./...