使用说明
项目简介
godoc-mcp 是一个 Model Context Protocol (MCP) 服务器,旨在帮助大型语言模型 (LLM) 更有效地理解 Go 语言项目。它通过提供对 Go 包文档的直接访问,显著减少 LLM 理解和使用 Go 包所需的 token 数量,从而提升 LLM 在 Go 开发中的性能。
主要功能点
- 高效的 Go 文档访问: 无需 LLM 读取大量源代码文件,即可快速获取官方 Go 文档。
- 结构化信息: 提供一致且结构良好的官方包文档格式。
- 智能包发现: 能够处理项目结构,帮助 LLM 理解多包项目。
- 灵活的路径支持: 支持本地文件路径、导入路径,以及标准库和第三方库的文档访问。
- 自动模块上下文: 自动创建临时 Go 项目,处理模块依赖,无需手动配置。
- 性能优化: 内置缓存,高效的 token 使用,并针对标准库和第三方库进行智能处理。
- 本地访问: 无需互联网连接即可访问文档。
安装步骤
-
安装 godoc-mcp: 打开终端并执行以下命令安装 'godoc-mcp':
go install github.com/mrjoshuak/godoc-mcp@latest确保你的 Go 环境已经配置好。
-
查找可执行文件路径: 安装成功后,'godoc-mcp' 可执行文件通常位于 '$GOPATH/bin' 或 '$HOME/go/bin' 目录下。你需要找到 'godoc-mcp' 的完整路径,用于 MCP 客户端配置。
服务器配置
在 MCP 客户端(如 Claude 桌面应用)的配置文件中添加 'godoc-mcp' 服务器信息。以下是一个 JSON 格式的配置示例,你需要根据实际情况修改 'command' 和 'env' 中的路径:
{ "mcpServers": { "godoc": { "command": "/path/to/godoc-mcp", // 替换为 godoc-mcp 可执行文件的完整路径,例如 /Users/yourname/go/bin/godoc-mcp "args": [], // 启动参数,这里为空 "env": { "GOPATH": "/path/to/go", // 替换为你的 GOPATH 路径,例如 /Users/yourname/go "GOMODCACHE": "/path/to/go/pkg/mod" // 替换为你的 GOMODCACHE 路径,例如 /Users/yourname/go/pkg/mod } } } }
配置参数说明:
- '"godoc"': 服务器名称,可以自定义,用于在 MCP 客户端中标识该服务器。
- '"command"': 必须修改。'godoc-mcp' 服务器可执行文件的绝对路径。你需要根据你的实际安装路径进行替换。
- '"args"': 启动参数,本项目 'godoc-mcp' 服务器不需要额外的启动参数,所以为空数组 '[]'。
- '"env"': 环境变量配置,必须修改。
- '"GOPATH"': 必须修改。Go 工作区路径,指向你的 GOPATH 目录。
- '"GOMODCACHE"': 必须修改。Go 模块缓存路径,指向你的 GOMODCACHE 目录。
注意: 请根据你的 Go 环境配置,正确设置 'command' 和 'env' 中的路径。
基本使用方法
配置完成后,在支持 MCP 协议的 LLM 客户端中,你可以使用 'get_doc' 工具来获取 Go 文档。
工具名称: 'get_doc'
工具参数:
- 'path': (必需, 字符串) Go 包或文件的路径。可以是导入路径(如 '"io"', '"github.com/user/repo"')或本地文件路径(如 '"/full/path/to/mypackage"')。
- 'target': (可选, 字符串) 要查询文档的具体符号(函数名、类型名等)。留空获取完整的包文档。
- 'cmd_flags': (可选, 字符串数组) 额外的 'go doc' 命令行标志。例如:
- '"-all"': 显示包的所有文档,包括未导出符号。
- '"-src"': 显示源代码而不是文档。
- '"-u"': 显示未导出符号。
- 'working_dir': (可选, 字符串) 执行 'go doc' 的工作目录。对于相对路径(包括 '"."')是必需的,用于解析正确的模块上下文。对于绝对路径和标准库包是可选的。
使用示例 (在 LLM 提示中):
-
获取标准库 'io' 包的文档:
使用工具 "godoc:get_doc", 参数: {"path": "io"} -
获取第三方库 'github.com/gorilla/mux' 的 'Router' 类型的文档:
使用工具 "godoc:get_doc", 参数: {"path": "github.com/gorilla/mux", "target": "Router"} -
获取本地项目 '/path/to/your/project/mypackage' ��的完整文档:
使用工具 "godoc:get_doc", 参数: {"path": "/path/to/your/project/mypackage"} -
获取当前目录下包的文档 (假设当前目录是 Go 模块根目录):
使用工具 "godoc:get_doc", 参数: {"path": ".", "working_dir": "/path/to/current/directory"}
通过 'godoc-mcp',LLM 可以更高效地获取 Go 语言的官方文档,从而更好地理解和处理 Go 代码相关的任务。
信息
分类
开发者工具