Skip to main content
Glama

Argo CD MCP サーバー

Argo CD 用の Model Context Protocol (MCP) サーバーの実装です。AI アシスタントが自然言語を通じて Argo CD アプリケーションと対話できるようになります。このサーバーにより、stdio および HTTP ストリーム転送プロトコルを介して、Visual Studio Code やその他の MCP クライアントとシームレスに統合できます。


argocd-mcp-demo

特徴

  • 転送プロトコル: stdio と HTTP ストリームの両方の転送モードをサポートし、さまざまなクライアントとの柔軟な統合が可能

  • 完全な Argo CD API 統合: Argo CD リソースと操作への包括的なアクセスを提供

  • AI アシスタント対応: AI アシスタントが自然言語で Argo CD と対話するための事前設定済みツール

利用可能なツール

このサーバーは、以下の ArgoCD 管理ツールを提供します:

クラスター管理

  • list_clusters: ArgoCD に登録されているすべてのクラスターを一覧表示

アプリケーション管理

  • list_applications: すべてのアプリケーションを一覧表示およびフィルタリング

  • get_application: 特定のアプリケーションの詳細情報を取得

  • create_application: 新しいアプリケーションを作成

  • update_application: 既存のアプリケーションを更新

  • delete_application: アプリケーションを削除

  • sync_application: アプリケーションの同期操作をトリガー

リソース管理

  • get_application_resource_tree: 特定のアプリケーションのリソースツリーを取得

  • get_application_managed_resources: 特定のアプリケーションの管理対象リソースを取得

  • get_application_workload_logs: アプリケーションワークロード(Pod、Deployment など)のログを取得

  • get_resource_events: アプリケーションによって管理されるリソースのイベントを取得

  • get_resource_actions: リソースに対して利用可能なアクションを取得

  • run_resource_action: リソースに対してアクションを実行

インストール

前提条件

Cursor での使用方法

  1. MCP サポートに関する Cursor ドキュメント に従い、プロジェクト内に .cursor/mcp.json ファイルを作成します:

{
  "mcpServers": {
    "argocd-mcp": {
      "command": "npx",
      "args": [
        "argocd-mcp@latest",
        "stdio"
      ],
      "env": {
        "ARGOCD_BASE_URL": "<argocd_url>",
        "ARGOCD_API_TOKEN": "<argocd_token>"
      }
    }
  }
}
  1. エージェントモードで会話を開始し、MCP を使用します。

VSCode での使用方法

  1. VS Code での MCP サーバーの使用に関するドキュメント に従い、プロジェクト内に .vscode/mcp.json ファイルを作成します:

{
  "servers": {
    "argocd-mcp-stdio": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "argocd-mcp@latest",
        "stdio"
      ],
      "env": {
        "ARGOCD_BASE_URL": "<argocd_url>",
        "ARGOCD_API_TOKEN": "<argocd_token>"
      }
    }
  }
}
  1. VS Code で MCP をサポートする AI アシスタントとの会話を開始します。

Claude Desktop での使用方法

  1. Claude Desktop の MCP ドキュメント に従い、claude_desktop_config.json 設定ファイルを作成します:

{
  "mcpServers": {
    "argocd-mcp": {
      "command": "npx",
      "args": [
        "argocd-mcp@latest",
        "stdio"
      ],
      "env": {
        "ARGOCD_BASE_URL": "<argocd_url>",
        "ARGOCD_API_TOKEN": "<argocd_token>"
      }
    }
  }
}
  1. 設定でこの設定ファイルを使用するように Claude Desktop を構成します。

自己署名証明書

Argo CD インスタンスが自己署名証明書またはプライベート認証局 (CA) からの証明書を使用している場合、設定に以下の環境変数を追加する必要があるかもしれません:

"NODE_TLS_REJECT_UNAUTHORIZED": "0"

これにより、自己署名証明書やシステムの証明書ストアで信頼されていないプライベート CA からの証明書を使用して Argo CD インスタンスに接続する際、Node.js の TLS 証明書検証が無効になります。

警告: SSL 検証を無効にするとセキュリティが低下します。この設定は、開発環境でのみ、またはセキュリティへの影響を理解している場合にのみ使用してください。

読み取り専用モード

リソースやアプリケーションの変更を避けるために MCP サーバーを読み取り専用モードで実行したい場合は、環境変数を設定する必要があります:

"MCP_READ_ONLY": "true"

これにより、以下のツールが無効になります:

  • create_application

  • update_application

  • delete_application

  • sync_application

  • run_resource_action

デフォルトでは、すべてのツールが利用可能です。

ステートレスモード

デフォルトでは、HTTP 転送は各クライアント接続にセッション ID を割り当て、アクティブなセッションのメモリ内マップを保持します。これは単一インスタンスのデプロイメントではうまく機能しますが、スティッキーセッションなしで複数のレプリカが実行されている場合は 400 エラーを引き起こします。これは、別の Pod にルーティングされたリクエストが、元の Pod で作成されたセッションを見つけられないためです。

セッションアフィニティの要件なしで実行するには、--stateless フラグを付けてサーバーを起動します:

node dist/index.js http --stateless

または Docker を使用する場合:

docker run -e ARGOCD_BASE_URL=<argocd_url> -e ARGOCD_API_TOKEN=<argocd_token> \
  argoprojlabs/mcp-for-argocd http --stateless

ステートレスモードでは:

  • Mcp-Session-Id は返されず、必要もありません。どのレプリカでもリクエストを処理できます

  • ArgoCD 資格情報は、環境変数または x-argocd-base-url / x-argocd-api-token ヘッダーを介して、すべてのリクエストで提供する必要があります

  • GET /mcp および DELETE /mcp405 Method Not Allowed を返します(セッションレベルの SSE および終了はサポートされていません)

このモードは、ネットワークレベルのスティッキーセッションが利用できない、Horizontal Pod Autoscaling (HPA) を使用した Kubernetes デプロイメントに推奨されます。

開発用

  1. リポジトリをクローンします:

git clone https://github.com/argoproj-labs/mcp-for-argocd.git
cd mcp-for-argocd
  1. プロジェクトの依存関係をインストールします:

pnpm install
  1. ホットリロードを有効にして開発サーバーを起動します:

pnpm run dev

サーバーが起動したら、Visual Studio Code やその他の MCP クライアント内で MCP サーバーを利用できます。

ArgoCD 型のアップグレード

最新の Argo CD API 仕様に基づいて TypeScript 型定義を更新するには:

  1. ArgoCD リリースページ から swagger.json ファイルをダウンロードします。例えば、ArgoCD v2.14.11 の swagger.json リンク はこちらです。

  2. ダウンロードした swagger.json ファイルを argocd-mcp プロジェクトのルートディレクトリに配置します。

  3. 以下のコマンドを実行して、Swagger 定義から TypeScript 型を生成します。これにより src/types/argocd.d.ts ファイルが作成または上書きされます:

    pnpm run generate-types
  4. src/types/argocd-types.ts ファイルを更新し、新しく生成された src/types/argocd.d.ts から必要な型をエクスポートします。このステップでは、必要な型のみが公開されていることを確認するために手動での確認が必要になることがよくあります。

クレジット

このプロジェクトは、Akuity@jiachengxu@imwithye@hwwn、および @alexmt によって作成され、寄贈されました。

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
8wRelease cycle
7Releases (12mo)
Issues opened vs closed

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/argoproj-labs/mcp-for-argocd'

If you have feedback or need assistance with the MCP directory API, please join our Discord server