GoDevMCP について
GoDevMCPは、Goを中心にRustとPythonにも対応する開発向けMCPサーバーです。言語ドキュメントの検索に加え、ローカルプロジェクトの操作やGitHubの閲覧ツールを提供します。
主な機能
- 01Go・Rust・Pythonのドキュメント検索
- 02Goパッケージ構造と呼び出しグラフの概要
- 03Goコードの検証
- 04ローカルのディレクトリとファイル検索
- 05GitHubのコード・ファイル・リポジトリ閲覧
活用シーン
- 01言語パッケージのドキュメントを検索して行単位で読む
- 02Goパッケージの依存関係と公開宣言を確認する
- 03ローカルの構成やMarkdownの見出しを調べる
- 04GitHubのコードを検索し、リポジトリのファイルを読む
MCP 対応
MCPサーバーとして、ドキュメント検索、コード検査、プロジェクト操作、GitHub操作のツールをMCPクライアントに提供します。一部のGitHubツールには認証が必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
GoDevMCP
はじめに
GoDevMCP は、Go に重点を置き、Rust と Python もサポートする開発ツールを提供する Model Context Protocol(MCP)サーバーです。ドキュメントの検索、コード検索、プロジェクトのナビゲーションなどを利用できます。
インストール
前提条件
- GitHub 認証が必要なのは、GitHub ツール(コード検索、コンテンツ、差分、Issue、プルリクエスト、ワークフローの実行)のみです。それ以外のツール(Go/Rust/Python のドキュメント、ディレクトリツリー、ローカル検索、アウトライン、Markdown、検証)は、認証なしで利用できます。
- サーバーは、次の順序で GitHub トークンを解決します。
GITHUB_TOKENまたはGH_TOKEN環境変数が設定されている場合は、その値を使用します。- 設定されていない場合は、ローカルにインストールされ、認証済みの
ghCLI を使用します(gh auth login)。
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 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 クレートを検索します |
read_rustdoc | 行単位のページ分割で Rust クレートのドキュメントを読み取ります |
search_within_rustdoc | 特定の Rust クレートのドキュメント内でキーワードを検索します |
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- アプリケーションをビルドし、~/bin にインストールしますmake test- ユニットテストを実行しますmake fmt- gofumpt を使用してコードをフォーマットしますmake lint- golangci-lint を実行しますmake 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
パッケージの依存関係
以下の 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でビルドします
AI 開発の場合
- CONTRIBUTING.md の指示に従ってください
- シェルコマンドではなく、
run_makeおよびtree_dirツールを使用してください。 - Go パッケージの使用方法を把握するには、
search_godocおよびread_godocツールを使用してください。 - Rust クレートのドキュメントには、
search_rustdocおよびread_rustdocツールを使用してください。 - Python 標準ライブラリのドキュメントには、
search_pydocおよびread_pydocツールを使用してください。 - GitHub リポジトリを調べるには、
tree_github_repo、search_github_code、get_github_contentを使用してください。 - 重要な変更を行う場合は、README.md も忘れずに更新してください
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。