关于 GoDevMCP
GoDevMCP 是面向开发工作的 MCP 服务,以 Go 为重点,并兼顾 Rust 和 Python。它将语言文档查询与本地项目导航及 GitHub 浏览工具结合起来。
主要功能
- 01Go、Rust 和 Python 文档查询
- 02Go 包结构与调用图概览
- 03Go 代码验证
- 04本地目录与文件搜索
- 05GitHub 代码、文件和仓库浏览
适用场景
- 01查找语言包文档并按行阅读
- 02检查 Go 包依赖与导出声明
- 03浏览本地项目结构和 Markdown 标题
- 04搜索 GitHub 代码或读取仓库文件
MCP 相关
作为 MCP 服务,它向 MCP 客户端提供文档查询、代码检查、项目导航和 GitHub 操作工具。部分 GitHub 工具需要 GitHub 身份验证。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
暂未收录安装方式
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
GoDevMCP
简介
GoDevMCP 是一个模型上下文协议(MCP)服务,提供以 Go 为重点的开发工具,并额外支持 Rust 和 Python。它提供文档查询、代码搜索、项目导航等功能。
安装
前提条件
- 仅 GitHub 工具需要进行 GitHub 身份验证(代码搜索、内容、差异、议题、拉取请求、工作流运行)。其他工具(Go/Rust/Python 文档、目录树、本地搜索、大纲、Markdown、验证)无需身份验证。
- 服务按以下顺序解析 GitHub 令牌:
- 如果已设置,则使用
GITHUB_TOKEN或GH_TOKEN环境变量。 - 否则,使用本地安装且已通过身份验证的
ghCLI(gh auth login)。
- 如果已设置,则使用
使用 go install
你可以直接使用 Go 的安装命令安装 GoDevMCP:
go install github.com/fpt/go-dev-mcp/godevmcp@latest
此命令会下载、编译并将二进制文件安装到 $GOPATH/bin 目录(通常为 ~/go/bin)。请确保此目录位于系统的 PATH 中。
从源代码构建
- 克隆仓库
- 运行
make build构建应用,并运行make install进行安装。
MCP 设置
Claude code
运行此命令以添加到用户范围
claude mcp add godevmcp -s user godevmcp serve
VSCode
在用户的 settings.json 中添加此部分
"mcp": {
"servers": {
"go-dev-mcp": {
"type": "stdio",
"command": "godevmcp",
"args": [
"serve"
],
}
}
}
工具
Go 文档
| 工具 | 描述 |
|---|---|
search_godoc | 在 pkg.go.dev 上搜索 Go 包 |
read_godoc | 分页读取 Go 包文档,每页按行显示 |
search_within_godoc | 在指定 Go 包的文档中搜索关键词 |
outline_go_package | 获取 Go 包的全面大纲:依赖项、导出的声明和调用图 |
validate_go_code | 使用 go vet、构建检查、格式化和模块整洁性检查验证 Go 代码 |
Rust 文档
| 工具 | 描述 |
|---|---|
search_rustdoc | 在 docs.rs 上搜索 Rust crate |
read_rustdoc | 分页读取 Rust crate 文档,每页按行显示 |
search_within_rustdoc | 在指定 Rust crate 的文档中搜索关键词 |
Python 文档
| 工具 | 描述 |
|---|---|
search_pydoc | 在 docs.python.org 上搜索 Python 标准库模块 |
read_pydoc | 分页读取 Python 标准库模块文档,每页按行显示 |
search_within_pydoc | 在指定 Python 模块的文档中搜索关键词 |
项目导航
| 工具 | 描述 |
|---|---|
tree_dir | 显示本地目录树结构,并限制深度 |
search_local_files | 在本地目录中搜索文件内容,并限制匹配数量 |
scan_markdown | 扫描 Markdown 文件,提取标题及其行号 |
GitHub 集成
| 工具 | 描述 |
|---|---|
search_github_code | 以精简格式搜索 GitHub 仓库中的代码 |
get_github_content | 分页获取 GitHub 中的文件内容,每页按行显示 |
tree_github_repo | 显示 GitHub 仓库树结构,并限制深度 |
使用说明
-
构建应用
make build -
运行应用
make run
可用的 Make 命令
make run- 运行应用make build- 构建应用并安装到 ~/binmake test- 运行单元测试make fmt- 使用 gofumpt 格式化代码make lint- 运行 golangci-lintmake inspect- 在 MCP inspector 中运行make help- 显示帮助信息
开发
项目结构
.
├── godevmcp/ # Application entry point
│ └── main.go # Main application entry point
├── doc/ # Documentation files
├── internal/ # Private application and library code
│ ├── app/ # Application core functionality
│ ├── infra/ # Infrastructure code
│ ├── mcptool/ # MCP tooling implementations
│ ├── repository/ # Repository implementations
│ └── subcmd/ # Subcommand implementations
├── output/ # Build artifacts
│ └── godevmcp # Compiled binary
├── pkg/ # Public library code
│ └── dq/ # Document query utility package
├── Makefile # Build automation
├── go.mod # Go module definition
└── go.sum # Go module checksum
软件包依赖关系
下图展示了项目内部的软件包依赖关系:
graph TD
%% Entry point
main[godevmcp/main] --> subcmd[internal/subcmd]
%% Core application layer
subcmd --> app[internal/app]
subcmd --> mcptool[internal/mcptool]
mcptool --> app
%% Application modules
app --> repository[internal/repository]
app --> infra[internal/infra]
app --> contentsearch[internal/contentsearch]
app --> model[internal/model]
app --> dq[pkg/dq]
%% MCP layer
mcptool --> infra
%% Infrastructure dependencies
infra --> repository
contentsearch --> model
%% External dependencies (key ones)
subcmd -.-> subcommands[google/subcommands]
mcptool -.-> mcp[mark3labs/mcp-go]
infra -.-> github[google/go-github]
app -.-> errors[pkg/errors]
app -.-> goldmark[yuin/goldmark]
app -.-> cache[patrickmn/go-cache]
%% Styling
classDef entryPoint fill:#e1f5fe
classDef coreLayer fill:#f3e5f5
classDef appLayer fill:#e8f5e8
classDef infraLayer fill:#fff3e0
classDef external fill:#fce4ec,stroke-dasharray: 5 5
class main entryPoint
class subcmd,mcptool coreLayer
class app,repository,infra,contentsearch,model appLayer
class dq infraLayer
class subcommands,mcp,github,errors,goldmark,cache external
该图说明了:
- 入口点:
main软件包协调各个子命令 - 核心层:
subcmd(CLI)和mcptool(MCP 服务)提供用户界面 - 应用层:
app包含业务逻辑,并由基础设施软件包提供支持 - 基础设施层:共享工具和外部集成
- 外部依赖:关键第三方软件包(以虚线表示)
常见开发工作流
- 修改代码
- 运行
make fmt格式化代码 - 运行
make lint检查问题 - 运行
make test确保测试通过 - 使用
make build构建
AI 开发指南
- 遵循 CONTRIBUTING.md 中的说明
- 使用
run_make和tree_dir工具,而不是使用 Shell 命令。 - 使用
search_godoc和read_godoc工具了解如何使用 Go 软件包。 - 使用
search_rustdoc和read_rustdoc工具查阅 Rust crate 文档。 - 使用
search_pydoc和read_pydoc工具查阅 Python 标准库文档。 - 使用
tree_github_repo、search_github_code、get_github_content检查 GitHub 仓库。 - 进行重大更改时,记得更新 README.md
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。