MCP Argo Server について
MCP Argo Server は、MCP 経由で Argo Workflows を実行する Go 製コマンドラインツールです。Kubernetes と Argo のリソースを扱い、ワークフローの送信、状態確認、結果取得を行えます。
主な機能
- 01Argo Workflows の送信
- 02ワークフロー状態の確認
- 03完了までの監視
- 04ワークフロー結果の取得
活用シーン
- 01MCP クライアントからワークフローを起動
- 02送信したワークフローを完了まで監視
- 03完了したワークフローの結果を取得
MCP 対応
ワークフローの送信、状態確認、完了監視、結果取得を MCP ツールとして公開します。STDIN/STDOUT 上の JSON-RPC で通信します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Argo Server
Golang で記述された、Argo Workflows を実行する MCP 準拠サーバーです。
概要
MCP Argo Server は、STDIN/STDOUT を介した JSON-RPC を使用して Argo Workflows をラップする軽量な CLI ツールです。RPC 処理には Foxy Contexts、Kubernetes および Argo Workflow リソースとの連携には client-go を活用します。このプロジェクトでは、ワークフローの起動、ワークフローのステータス確認、結果の取得を行うツールを提供します。
インストール
このプロジェクトは開発コンテナー内で実行するように設定されています。リポジトリを開発コンテナー対応エディター(例:VS Code Remote - Containers)で開くだけで、すべての依存関係があらかじめインストールされます。
ローカルで実行する場合は、リポジトリをクローンして次を実行します。
go mod tidy
使用方法
開発コンテナーでプロジェクトを開きます。
make cluster を実行すると、k3d クラスターがインストールされ、Argo がセットアップされます。
kubectl cluster-info と入力して、正常に動作していることを確認できます。
argo submit -n argo --watch ./kube/argo-hello-world.yaml と入力すると、テストワークフローを実行できます。
Argo のインターフェースは https://localhost:2746/workflows/argo/ で確認できます。
make run と入力すると、アプリがビルドされ、MCP が動作していることを確認できます。
Python によるテスト
このプロジェクトには、MCP Argo サーバーとの連携方法を示す Python テストクライアントが含まれています。テストクライアントは python/test_with_autogen.py にあり、以下の方法を紹介しています。
- Argo ワークフローの送信
- ワークフローのステータス確認
- ワークフローの完了待ち
- ワークフロー結果の取得
Python テストを実行するには:
-
Python の依存関係がインストールされていることを確認します。
cd python make install -
テストスクリプトを実行します。
python test_with_autogen.py
または……ステップ実行できるようにデバッグしてください。
スクリプトは以下を行います。
- MCP Argo サーバーに接続する
- ツールを順に確認し、表示する
kube/argo-hello-world.yamlのサンプルワークフローを送信する- 完了するまでワークフローのステータスを監視する
- ワークフローの結果を表示する
貢献
コントリビューションを歓迎します。イシューを作成し、プルリクエストを送信してください。変更を送信する前に、プロジェクトのコーディングガイドラインに従い、すべてのテストに合格することを確認してください。
ライセンス
このプロジェクトは MIT License の下でライセンスされています。詳細については、LICENSE ファイルをご覧ください。
追加リソース
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。