gopls-mcp について
gopls-mcp は、gopls による Go のセマンティック解析を AI エージェントに提供する MCP サーバーです。ナビゲーション、定義、参照の機能を備え、型チェッカーに近い精度を必要とする Go 開発者を対象としています。gopls のコミュニティ版フォークであり、Go 公式製品ではありません。
主な機能
- 01gopls ベースの型認識コード解析
- 02インターフェースを実装する全具象型の検索
- 03コード全体の呼び出し階層の追跡
- 04パッケージ間の依存関係の把握
- 05Claude Code と Codex 向けのプラグインインストール
活用シーン
- 01大規模な Go プロジェクトでのインターフェース実装の検索
- 02コーディングエージェントによる関数呼び出し連鎖の追跡
- 03パッケージ横断の依存関係の把握
MCP 対応
gopls-mcp は MCP サーバーとして動作し、gopls の解析結果をナビゲーション、定義の参照、リファレンス検索のためのツールとして MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
gopls-mcp
AI エージェントに、テキスト検索ではなくコンパイラーの頭脳を与えましょう。
ドキュメント:https://gopls-mcp.org
gopls-mcp は、型チェッカーレベルのセマンティック解析を LLM に直接提供します。 テキスト検索とは異なり、Go の型システムを解決し、インターフェースの実装、パッケージをまたぐ型の同一性、シャドーイングされたスコープをコンパイラーと同じ精度で扱います。
特に効果を発揮するのは、セマンティックなタスクです。インターフェースを実装するすべての具象型の検索、呼び出し階層の追跡、パッケージ依存関係のマッピングなどが該当します。11 個のタスクを対象としたベンチマークでは、gopls-mcp はこれらのタスクで grep ベースのナビゲーションよりもツール呼び出し数を 2~4 倍削減し、より速く完了しました。単純な同一ファイル内の検索では、通常の bash/grep でも同等の効果が得られ、オーバーヘッドも少なく済みます。
インストール
Claude Code(プラグイン — 推奨)
/plugin marketplace add https://github.com/xieyuschen/gopls-mcp.git
/plugin install gopls-mcp
プラグインがバイナリを自動でインストールし、ルーティングスキルを追加するため、手動でのセットアップは不要です。
Codex(プラグイン — 推奨)
codex plugin marketplace add https://github.com/xieyuschen/gopls-mcp.git
codex plugin add gopls-mcp
手動インストール(すべてのクライアント)
Linux / macOS:
curl -sSL https://gopls-mcp.org/install.sh | bash
Windows(PowerShell):
irm https://gopls-mcp.org/install.ps1 | iex
その後、https://gopls-mcp.org/quick-start で各クライアントのセットアップ手順に従ってください。
コントリビュート
このプロジェクトは活発に開発されています。改善できる点を見つけた場合は、PR や issue を気軽にお寄せください。 AI が生成したコードも受け付けますが、レビュアーがすばやく確認できるよう、変更内容を特定の機能に絞ってください。
免責事項:gopls-mcp は gopls のフォークであり、コミュニティ主導のプロジェクトです。Go チームの公式製品ではなく、Google LLC との提携関係や同社による推奨もありません。このプロジェクトは、上流のソースと同じ BSD ライセンスで提供されています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。