About GoDevMCP
GoDevMCP is an MCP server for development work, centered on Go with additional Rust and Python support. It combines language documentation lookup with local project navigation and GitHub inspection tools.
Key features
- 01Go、Rust 和 Python 文档查询
- 02Go 包结构与调用图概览
- 03Go 代码验证
- 04本地目录与文件搜索
- 05GitHub 代码、文件和仓库浏览
Use cases
- 01查找语言包文档并按行阅读
- 02检查 Go 包依赖与导出声明
- 03浏览本地项目结构和 Markdown 标题
- 04搜索 GitHub 代码或读取仓库文件
MCP support
作为 MCP 服务,它向 MCP 客户端提供文档查询、代码检查、项目导航和 GitHub 操作工具。部分 GitHub 工具需要 GitHub 身份验证。
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEGoDevMCP
Introduction
GoDevMCP is a Model Context Protocol (MCP) server that provides development tools with a focus on Go, and additional support for Rust and Python. It offers documentation lookup, code search, project navigation, and more.
Installation
Prerequisites
- GitHub authentication is required only for the GitHub tools (code search, content, diffs, issues, pull requests, workflow runs). The other tools (Go/Rust/Python docs, directory tree, local search, outline, markdown, validation) work without it.
- The server resolves a GitHub token in this order:
- The
GITHUB_TOKENorGH_TOKENenvironment variable, if set. - Otherwise, the locally-installed and authenticated
ghCLI (gh auth login).
- The
Using go install
You can install GoDevMCP directly using Go's install command:
go install github.com/fpt/go-dev-mcp/godevmcp@latest
This will download, compile, and install the binary to your $GOPATH/bin directory (typically ~/go/bin). Make sure this directory is in your system's PATH.
Building from Source
- Clone the repository
- Run
make buildto build the application andmake installto install.
MCP setup
Claude code
Run this command to add to user scope
claude mcp add godevmcp -s user godevmcp serve
VSCode
Add this section in your user's settings.json
"mcp": {
"servers": {
"go-dev-mcp": {
"type": "stdio",
"command": "godevmcp",
"args": [
"serve"
],
}
}
}
Tools
Go Documentation
| Tool | Description |
|---|---|
search_godoc | Search for Go packages on pkg.go.dev |
read_godoc | Read Go package documentation with line-based paging |
search_within_godoc | Search for keywords within a specific Go package's documentation |
outline_go_package | Get a comprehensive outline of a Go package: dependencies, exported declarations, and call graph |
validate_go_code | Validate Go code using go vet, build checks, formatting, and module tidiness |
Rust Documentation
| Tool | Description |
|---|---|
search_rustdoc | Search for Rust crates on docs.rs |
read_rustdoc | Read Rust crate documentation with line-based paging |
search_within_rustdoc | Search for keywords within a specific Rust crate's documentation |
Python Documentation
| Tool | Description |
|---|---|
search_pydoc | Search Python standard library modules on docs.python.org |
read_pydoc | Read Python standard library module documentation with line-based paging |
search_within_pydoc | Search for keywords within a specific Python module's documentation |
Project Navigation
| Tool | Description |
|---|---|
tree_dir | Display local directory tree structure with depth limiting |
search_local_files | Search file contents in local directories with match limiting |
scan_markdown | Scan markdown files to extract headings with line numbers |
GitHub Integration
| Tool | Description |
|---|---|
search_github_code | Search code in GitHub repositories with compact formatting |
get_github_content | Get file content from GitHub with line-based paging |
tree_github_repo | Display GitHub repository tree structure with depth limiting |
Instructions
-
Build the application
make build -
Run the application
make run
Available Make Commands
make run- Run the applicationmake build- Build the application and install to ~/binmake test- Run unit testsmake fmt- Format code using gofumptmake lint- Run golangci-lintmake inspect- Run in MCP inspectormake help- Display help information
Development
Project Structure
.
├── 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
Package Dependencies
The following Mermaid graph shows the internal package dependencies within the project:
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
This graph illustrates:
- Entry Point:
mainpackage coordinates subcommands - Core Layer:
subcmd(CLI) andmcptool(MCP server) provide user interfaces - Application Layer:
appcontains business logic, supported by infrastructure packages - Infrastructure Layer: Shared utilities and external integrations
- External Dependencies: Key third-party packages (shown with dashed lines)
Common Development Workflow
- Make changes to the code
- Run
make fmtto format code - Run
make lintto check for issues - Run
make testto ensure tests pass - Build with
make build
For AI Development
- Follow instructions in CONTRIBUTING.md
- Use
run_makeandtree_dirtools rather than using shell commands. - Use
search_godocandread_godoctools to understand how to use Go packages. - Use
search_rustdocandread_rustdoctools for Rust crate documentation. - Use
search_pydocandread_pydoctools for Python standard library documentation. - Use
tree_github_repo,search_github_code,get_github_contentto inspect github repository. - Remember to update README.md when making significant changes
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.