GoDevMCP
介绍
GoDevMCP是一个模型上下文协议(MCP)服务器,它提供专注于Go的开发工具,并对Rust和Python提供额外支持。它提供文档查找、代码搜索、项目导航等功能。
安装
先决条件
- GitHub
gh命令是必需的。
使用go install
您可以使用Go的install命令直接安装GoDevMCP:
go install github.com/fpt/go-dev-mcp/godevmcp@latest这将下载、编译二进制文件并将其安装到您的 $GOPATH/bin 目录(通常 ~/go/bin).确保此目录位于系统的PATH中。
从源头构建
- 克隆存储库
- 跑
make build构建应用程序和make install安装。
MCP设置
克劳德代码
运行此命令以添加到用户范围
claude mcp add godevmcp -s user godevmcp serveVSCode
将此部分添加到用户的 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板条箱 |
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 run-运行应用程序make build-构建应用程序并安装到~/binmake test-运行单元测试make fmt-使用gofumpt格式化代码make lint-运行golangci lintmake inspect-MCP检查器运行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包的依赖
以下Mermaid图显示了项目中的内部包依赖关系:
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
人工智能发展
- 遵循CONTRIBUTING.md中的说明
- 使用
run_make和tree_dir工具,而不是使用shell命令。 - 使用
search_godoc和read_godoc了解如何使用Go包的工具。 - 使用
search_rustdoc和read_rustdocRust crate文档的工具。 - 使用
search_pydoc和read_pydocPython标准库文档的工具。 - 使用
tree_github_repo,search_github_code,get_github_content查看github存储库。 - 进行重大更改时,请记住更新README.md
