Go文档查询工具

go-mcp是一个基于MCP协议的Go文档查询服务器,为AI助手提供Go语言文档和包列表功能,帮助AI系统更有效地理解Go代码库。

  • by wricardo
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 wricardo/go-mcp

使用说明

去mcp

该项目是一个模型上下文协议(MCP)服务器,旨在为AI助手提供Go文档工具。它通过MCP公开了Go的文档和包列表功能,允许AI系统访问官方Go文档并更有效地理解Go代码库。

特性

  • 转到文档访问:使用以下命令查询Go包、类型、函数或方法的文档 go doc 命令。
  • 软件包列表:使用以下命令列出Go模块中的可用包 go list 命令。

需求

  • 转到1.16或更高版本
  • 配置了GOPATH的Go工作环境
  • 访问要记录的包

设置

  1. 安装软件包:

    go install github.com/wricardo/go-mcp@latest
    
  2. 通过在MCP设置中添加以下内容来配置MCP兼容助手:

    "go-mcp": {
      "command": "go-mcp",
      "env": {
        "WORKDIR": "/path/to/your/go/project"
      },
      "disabled": false,
      "autoApprove": []
    }
    

工具

  • go_doc:包、类型、函数或方法的Get Go文档。

    • 参数:
      • pkgSymMethodOrField:用于查找文档的包、符号、方法或字段。
      • cmd_flags:(可选)其他命令标志,如 -all, -src,或 -u.
  • go_list:列出Go包或模块。

    • 参数:
      • packages:要列出的包装模式数组(例如。, ["./...", "github.com/user/repo/..."]).
      • cmd_flags:(可选)其他命令标志,如 -json.

例子

使用go_doc

{
  "pkgSymMethodOrField": "net/http",
  "cmd_flags": ["-all"]
}
{
  "pkgSymMethodOrField": "fmt.Println",
  "cmd_flags": ["-src"]
}

使用go_list

{
  "packages": ["./..."]
}
{
  "packages": ["github.com/user/repo/module..."]
}
{
  "packages": ["github.com/user/repo/..."]
}

最佳实践

  1. 始终尝试 go_doc 在直接检查源代码之前
  2. 在查看特定符号之前,先从基本的软件包文档开始
  3. 使用 -all 综合包文档标志
  4. 使用 -u 标记以查看未显示的符号
  5. 使用 -src 当文档不足时,标记以查看源代码