/ ディレクトリ / プレイグラウンド / ArgoCD
● 公式 argoproj-labs 🔑 自分のキーが必要

ArgoCD

作者 argoproj-labs · argoproj-labs/mcp-for-argocd

Claude から ArgoCD アプリケーションの検査・差分確認・同期が可能 — kubectl のコンテキスト切り替えなしで GitOps クラスター状態を把握できます。

ArgoProj Labs の MCP は ArgoCD API をラップし、アプリケーションの一覧表示、同期・ヘルス状態の確認、desired と live の差分比較、同期のトリガー、アプリマニフェストの読み取りが行えます。監視用途にはトークンを読み取り専用にスコープし、同期やオーバーライドが明示的に必要な場合のみ書き込み権限を付与してください。

なぜ使うのか

主な機能

ライブデモ

実際の動作

argocd.replay ▶ 準備完了
0/0

インストール

クライアントを選択

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "argocd": {
      "command": "uvx",
      "args": [
        "mcp-for-argocd"
      ]
    }
  }
}

Claude Desktop → Settings → Developer → Edit Config を開く。保存後、アプリを再起動。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "argocd": {
      "command": "uvx",
      "args": [
        "mcp-for-argocd"
      ]
    }
  }
}

Cursor は Claude Desktop と同じ mcpServers スキーマを使用。プロジェクト設定はグローバルより優先。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "argocd": {
      "command": "uvx",
      "args": [
        "mcp-for-argocd"
      ]
    }
  }
}

Cline サイドバーの MCP Servers アイコンをクリックし、"Edit Configuration" を選択。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "argocd": {
      "command": "uvx",
      "args": [
        "mcp-for-argocd"
      ]
    }
  }
}

Claude Desktop と同じ形式。Windsurf を再起動して反映。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "argocd",
      "command": "uvx",
      "args": [
        "mcp-for-argocd"
      ]
    }
  ]
}

Continue はマップではなくサーバーオブジェクトの配列を使用。

~/.config/zed/settings.json
{
  "context_servers": {
    "argocd": {
      "command": {
        "path": "uvx",
        "args": [
          "mcp-for-argocd"
        ]
      }
    }
  }
}

context_servers に追加。保存時に Zed がホットリロード。

claude mcp add argocd -- uvx mcp-for-argocd

ワンライナー。claude mcp list で確認、claude mcp remove で削除。

ユースケース

実用的な使い方: ArgoCD

同期からドリフトした ArgoCD アプリを検出する

👤 GitOps を運用するプラットフォーム / SRE チーム ⏱ ~20 min intermediate

使うタイミング: 週次確認:どのクラスターのどのアプリが OutOfSync や Degraded になっているか、その原因は何か?

前提条件
  • 読み取りスコープ付きの ArgoCD API トークン — argocd account generate-token --account <read-only-user>
  • ArgoCD サーバー URLARGOCD_SERVER=argocd.my.company.com
フロー
  1. ステータス付きでアプリを一覧表示
    List all ArgoCD apps. For each: name, project, sync status, health status, last sync time.✓ コピーしました
    → 全アプリのインベントリ
  2. ドリフトに絞り込む
    Filter to apps with syncStatus != 'Synced' or health != 'Healthy'. Rank by time since last sync.✓ コピーしました
    → 問題のあるアプリ一覧
  3. 特定アプリの差分を確認
    For app <name>, show the diff between desired (git) and live. What resources are out of sync?✓ コピーしました
    → リソースレベルの差分

結果: どのアプリに対応が必要か、その理由を特定する週次ドリフトレポート。

注意点
  • 正当なランタイム専用リソース(例:HPA のスケール済みレプリカ数)によるドリフト — Application スペックの ignoreDifferences を設定し、ランタイムで変動するフィールドを除外する
組み合わせ: notion

特定アプリケーションの同期をレビューして適用する

👤 変更をプロモートする DevOps エンジニア ⏱ ~15 min intermediate

使うタイミング: PR が main にマージされ、ArgoCD がアプリを OutOfSync として表示し、承認待ちの状態。

前提条件
  • 対象プロジェクトの同期権限を持つトークン — Role with applications, sync, <project>/* allowed
フロー
  1. 保留中の変更を確認する
    For app <name>, show the diff. What resources change, what's the blast radius?✓ コピーしました
    → 具体的な差分
  2. ソースコミットを確認する
    What commit SHA does the desired state point at? Show the GitHub commit message and PR.✓ コピーしました
    → コミット + PR のコンテキスト
  3. まず prune=false で同期する
    Trigger sync for <name> with prune=false, dryRun=false. Wait for completion, show final status.✓ コピーしました
    → Sync Succeeded; health Healthy

結果: 事前レビュー済みのデプロイであり、不意打ちではない。prune による削除は明示的に行う場合のみ実行される。

注意点
  • prune=true での同期は必要なリソースを削除する可能性がある — 常に prune=false から開始し、手動作成されたリソースがネームスペースに存在しないことを確認してから prune を有効化する
組み合わせ: github

以前の git リビジョンへの緊急ロールバック

👤 不具合デプロイのインシデント対応中の SRE ⏱ ~15 min advanced

使うタイミング: デプロイが実行され、エラーが急増し、最後に正常だったバージョンへのロールバックが必要な状況。

フロー
  1. 現在のリビジョンと履歴を取得
    For app <name>, show current revision and the last 5 deployed revisions with timestamps.✓ コピーしました
    → 履歴テーブル
  2. ロールバック先を選択
    What was the revision 2 syncs ago? Confirm its SHA matches the git commit before the incident started.✓ コピーしました
    → 対象 SHA の特定
  3. ロールバック実行
    Sync <name> to revision <SHA> with prune=false. Watch until Healthy. Post in Teams when done.✓ コピーしました
    → アプリがリバート済み + 通知送信完了

結果: 監査証跡を伴うクリーンなロールバック。通常 5 分以内に完了します。

注意点
  • アプリのみロールバックしたが、DB マイグレーションは既に前方適用済み — DB マイグレーションには独自のロールバック計画が必要。変更済みスキーマに対してコードをロールバックするよりも、修正を含む「ロールフォワード」の方が安全な場合がある
組み合わせ: sentry · ms-teams

クロスクラスターのアプリインベントリを構築する

👤 複数クラスターを管理するプラットフォームチーム ⏱ ~20 min intermediate

使うタイミング: ArgoCD をハブ・スポークモデルで運用しており、「どのアプリがどこで動いているか」のフラットな一覧が欲しい場合。

フロー
  1. ArgoCD が管理するクラスターを一覧表示
    List all clusters registered in ArgoCD with their name and server URL.✓ コピーしました
    → クラスターインベントリ
  2. アプリをクラスターにマッピング
    For each app, show its destination cluster and namespace. Group by cluster.✓ コピーしました
    → クラスター別アプリ一覧
  3. 異常な配置をフラグ付け
    Any app deployed in an unexpected cluster (e.g. 'prod-only' app in a dev cluster)? Flag with reason.✓ コピーしました
    → 異常一覧

結果: 監査やキャパシティプランニングに役立つ、最新の「どこで何が動いているか」マップ。

注意点
  • 古いクラスターエントリ — シークレットは削除されたがクラスターは登録されたまま — 各クラスターの到達可能性を定期的に確認し、古いエントリを削除する

組み合わせ

他のMCPと組み合わせて10倍の力を

argocd + github

Argo の同期と、それを引き起こした PR を相互参照する

For app <name>, show the current revision SHA; fetch the GitHub PR that introduced it and summarize the change.✓ コピーしました
argocd + sentry

Argo の同期とデプロイ後のエラー急増を相関分析する

App <name> synced at 14:02; did Sentry errors spike after that? If yes, show the top issue introduced.✓ コピーしました
argocd + ms-teams

同期・ロールバックイベントを Teams チャンネルに投稿する

After any manual sync of app <name>, post a message to Teams #deploys with revision SHA and who triggered it.✓ コピーしました

ツール

このMCPが提供する機能

ツール入力呼び出すタイミングコスト
list_applications project?, selector? アプリのインベントリ取得 free
get_application name 特定アプリの詳細状態を取得 free
get_application_diff name, revision? 同期で変更される内容をプレビュー free
sync_application name, revision?, prune?, dryRun?, resources? 保留中の変更を適用 free(クラスター側の処理をトリガー)
get_application_resource_tree name アプリが所有するライブリソースを検査 free
list_clusters クロスクラスターインベントリの取得 free

コストと制限

運用コスト

APIクォータ
ArgoCD サーバーのキャパシティに依存。実用上の上限は約 10 req/s
呼び出しあたりのトークン
アプリ一覧:500〜3000 トークン。差分:最大 5000。
金額
無料 — ArgoCD はオープンソースであり、費用はホスティングインフラのみです。
ヒント
アプリ一覧をキャッシュし、全件取得ではなくセレクター(project、label)でクエリを絞り込んでください。

セキュリティ

権限、シークレット、影響範囲

最小スコープ: read on applications, clusters for read-only sessions
認証情報の保管: 環境変数に ARGOCD_AUTH_TOKENARGOCD_SERVER を設定
データ送信先: 通信先は ArgoCD サーバーのみ
絶対に付与しない: admin sync on all projects without reason account:update

トラブルシューティング

よくあるエラーと対処法

401 Unauthenticated

ARGOCD_AUTH_TOKEN が期限切れまたは失効しています。argocd account generate-token で再生成してください。

確認: argocd account get-user-info --auth-token $ARGOCD_AUTH_TOKEN
403 Permission denied on sync

ロールに applications, sync, <project>/* 権限がありません。AppProject またはアカウントロールを更新してください。

Sync stuck in Progressing for >10 min(同期が 10 分以上 Progressing のまま停止)

通常はリソースのスタックが原因です。resource-tree で失敗しているフックやスタックしたコントローラーを確認し、必要に応じてクラスター内で手動介入してください。

Diff shows unexpected drift on every sync(同期のたびに予期しないドリフトが差分に表示される)

コントローラーがランタイムでフィールドを変更しています。該当フィールドに対して Application スペックの ignoreDifferences を追加してください。

代替案

ArgoCD 他との比較

代替案代わりに使う場面トレードオフ
Flux MCPGitOps に ArgoCD ではなく Flux を使用している場合異なる GitOps エンジン。CLI ファーストのモデル
Kubernetes MCP (raw kubectl)GitOps の抽象化なしでクラスターに直接アクセスしたい場合命令型アプローチ — マネージドアプリにおける GitOps の利点が失われる

その他

リソース

📖 GitHub の公式 README を読む

🐙 オープンな issue を見る

🔍 400以上のMCPサーバーとSkillsを見る