gocd について
gocd-mcp は GoCD の REST API を MCP クライアントに公開し、パイプラインの確認と操作を可能にします。Go と TypeScript の実装があり、簡潔で絞り込み可能な出力により、モデルのコンテキストに入るダッシュボード情報を抑えます。
主な機能
- 01パイプラインとサーバーの状態確認
- 02実行・ステージ・履歴の確認
- 03エージェント、マテリアル、環境の一覧
- 04実行間の比較とアーティファクト取得
- 05パイプラインの実行・一時停止・再開
- 06大きな応答の圧縮と絞り込み
活用シーン
- 01GoCD ダッシュボード全体のパイプライン状態確認
- 02失敗したステージやジョブの調査
- 03パイプライン実行間のコミット比較
- 04モデルのコンテキストを抑えながらパイプラインを操作
MCP 対応
読み取り操作とパイプライン制御を含む GoCD REST API の機能を MCP ツールとして公開します。GOCD_READONLY=1 を設定すると、3つの書き込みツールが非表示になります。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
19掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| limit | number | いいえ | |
| detail | boolean | いいえ | |
| filter | string | いいえ | |
| status | string | いいえ |
詳細
gocd-mcp
GoCD 用の MCP サーバーです。GoCD の REST API を MCP ツールとして公開するため、どの MCP クライアント(Claude Code、Claude Desktop、Cursor)からでもパイプラインの状態を読み取り、パイプラインを実行できます。このリポジトリには、通信時の動作が同一の 2 つの実装があります。インストール方法に合わせて選んでください。
go/— Go の実装です。単一の静的バイナリまたは Docker イメージとして提供されます。起動が速く、メモリ使用量も少なくなっています。ts/— TypeScript の実装です。依存関係なしで Node 上で動作するため、npxでビルドする必要はありません。
どちらも同じくコンテキストを節約する出力を返します。ダッシュボードはデフォルトで要約され、行は列指向で、レスポンスはコンパクトな JSON です。GoCD の完全なダッシュボードは多数のパイプラインを含み、数 MB に及びますが、これらのツールはモデルに必要な情報だけに絞り込みます。
ツール
読み取りツール(安全):
| ツール | 説明 |
|---|---|
gocd_dashboard | ダッシュボードの健全性。引数なしの場合は要約を返し、filter/status/detail で詳細を確認できます |
gocd_pipeline_status | 1 つのパイプラインの一時停止/ロック/スケジュール可能状態 |
gocd_pipeline_instance | 1 回の実行:ジョブごとの結果を含むステージとトリガー |
gocd_pipeline_history | 1 つのパイプラインの最近の実行履歴。limit は省略可能です |
gocd_stage_instance | 1 回のステージ実行のジョブごとの状態とエージェント |
gocd_stage_history | 1 つのステージの最近の実行履歴 |
gocd_compare | 2 回の実行間での変更点:マテリアルごとのコミット |
gocd_list_artifacts | ジョブのアーティファクトファイルを [path, url] として返します |
gocd_get_artifact | 1 つのアーティファクトファイル。コンテキストを節約するため末尾を cap_kb で制限します |
gocd_list_agents | ビルドエージェントと状態。filter、limit は省略可能です |
gocd_get_agent | UUID を指定して 1 つのエージェントを取得します |
gocd_materials | 設定済みのマテリアル。filter は省略可能です |
gocd_environments | 環境と、パイプライン/変数の数 |
gocd_pipeline_groups | パイプライングループ。フィルターを指定するとグループ内のパイプラインを一覧表示します |
gocd_server_health | サーバーの健全性メッセージをレベルごとに集計します |
gocd_version | GoCD サーバーのバージョン |
書き込みツール(操作):
| ツール | 説明 |
|---|---|
gocd_trigger_pipeline | パイプラインの実行をスケジュールします |
gocd_pause_pipeline | パイプラインを一時停止します |
gocd_unpause_pipeline | パイプラインを再開します |
GOCD_READONLY=1 を設定すると、3 つの書き込みツールが非表示になります。大規模な一覧
(dashboard、pipeline_groups、materials、environments)は要約または
フィルター可能なため、数 MB に及ぶ生の内容がモデルのコンテキストにそのまま渡されることはありません。
設定
環境変数は 2 つあり、どちらも必須です。
GOCD_BASE_URL=https://gocd.example.com
GOCD_ACCESS_TOKEN=<personal access token>
GOCD_BASE_URL は末尾に /go を付けないホストの URL です。ツールが
/go/api/... を付加します。トークンは GoCD のプロフィールにある「Personal
Access Tokens」で作成してください。
インストール
npx(Node >= 18)、推奨
インストール不要で、ビルドも不要です。サーバーを実行する最も簡単な方法です。
claude mcp add gocd -e GOCD_BASE_URL=... -e GOCD_ACCESS_TOKEN=... -- npx -y gocd-mcp
npm では gocd-mcp、MCP Registry では io.github.Sahilll15/gocd として公開されているため、レジストリに対応したクライアントは名前で見つけられます。
Go バイナリ
Releases からビルド済みバイナリをダウンロードするか、自分でビルドしてください。
cd go && go build -o gocd-mcp .
登録します。
claude mcp add gocd -e GOCD_BASE_URL=... -e GOCD_ACCESS_TOKEN=... -- /path/to/gocd-mcp
Docker
claude mcp add gocd -e GOCD_BASE_URL=... -e GOCD_ACCESS_TOKEN=... \
-- docker run -i --rm -e GOCD_BASE_URL -e GOCD_ACCESS_TOKEN ghcr.io/sahilll15/gocd-mcp
開発中に TypeScript のソースを直接実行する場合(Node >= 22.6、型ストリッピングを使用):
cd ts && node --experimental-strip-types src/server.ts
どちらを選ぶか
機能は同一です。ローカルのベンチマークでは、Go ビルドは約 4 倍速く起動し(コールドスタートで約 21ms 対 約 80ms)、メモリ使用量は約 6 分の 1 でした。リクエストごとのレイテンシは、GoCD へのネットワーク往復が支配的なため同等でした。セッションごとに起動するサーバーには Go バイナリまたは Docker イメージを、インストール不要の方法を使いたく、すでに Node がある場合は npx をおすすめします。
構成
gocd-mcp/
├── go/ Go implementation (main.go, internal/gocd)
├── ts/ TypeScript implementation (src/server.ts source; publishes as compiled dist/server.js)
├── Dockerfile builds the Go binary into a distroless image
├── .goreleaser.yaml + .github/workflows/release.yml prebuilt binaries + ghcr image on tag
└── server.json MCP Registry manifest
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。