Komodo MCP Server について
Komodo MCP Server は、AI アシスタントから Komodo を通じて Docker や Podman のデプロイを管理する MCP サーバーです。自然言語や自動化ワークフローでコンテナやサーバーを操作したい運用担当者向けです。Komodo の複数のリソース種別に対応したツール群を提供します。
主な機能
- 01コンテナ、スタック、デプロイ、サーバーなど 88 のツール
- 02リモートターミナルによるコマンド実行と出力のストリーミング
- 03パターン指定によるコンテナログ検索
- 04破壊的操作での人による承認
- 05Streamable HTTP と stdio のトランスポート
- 06ヘルスチェックと自動再接続
活用シーン
- 01チャットからの本番コンテナの起動と停止
- 02アプリケーションのデプロイ実行と進捗確認
- 03デプロイ失敗時の更新履歴とログの確認
MCP 対応
本プロジェクトは Komodo のコンテナ、サーバー、デプロイ操作をツールとして MCP クライアントに公開する MCP サーバーです。クライアントはカテゴリや権限スコープでツールを絞り込めます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y komodo-mcp-serverKOMODO_URLKomodo Core API URLKOMODO_API_KEYシークレットAPI key for key-based authentication (recommended)KOMODO_API_SECRETシークレットAPI secret for key-based authentication (recommended)KOMODO_USERNAMEシークレットUsername for login authentication (alternative to API key)KOMODO_PASSWORDシークレットPassword for login authentication (alternative to API key)ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
88掲載時のツール一覧 · 2 週間前に更新
このツールにパラメーターはありません。
詳細
🦎 Komodo MCP Server
Komodo 用の Model Context Protocol サーバー
AI アシスタントや自動化ツールを使って、Komodo 経由で Docker または Podman のデプロイを管理できます。
Komodo MCP Server は、AI アシスタント(Claude、GitHub Copilot など)と Komodo(コンテナー管理プラットフォーム)とのシームレスな連携を実現し、効率的なコンテナー管理、サーバーのオーケストレーション、デプロイ操作を可能にします。MCP サーバーを使用すると、自然言語や自動化されたワークフローで、Komodo が管理するインフラストラクチャを制御できます。
機能
🛠️ インフラストラクチャを完全に制御
- 88 個のツール、20 のカテゴリ — コンテナー、スタック、デプロイ、サーバー、ビルド、リポジトリ、プロシージャ、アクション、アラート、Docker Swarm(Komodo v2)、変数、リソース同期、更新履歴、Docker イメージ/ネットワーク/ボリュームの詳細確認、ビルダー、タグ、TOML エクスポートをライフサイクル全体にわたって管理できます。一覧表示や詳細確認から、デプロイ、ビルド、スケーリング、削除まで対応します。
- リモートターミナルアクセス — サーバー、コンテナー、デプロイ、スタックサービスでコマンドを実行し、リアルタイムの出力ストリーミング、終了コード、進行状況のレポートを確認できます。
- ログ検索と分析 — 設定可能な末尾の行数と一致件数のカウントにより、コンテナー全体のログをパターン検索できます。
🔌 どこにでもデプロイ
- マルチトランスポート対応 — ストリーミング可能な HTTP(ステートフル)、TLS 対応 HTTPS、レガシー SSE、stdio に対応します。同じサーバーをあらゆるクライアントで利用できます。
- マルチプラットフォーム Docker 対応 —
amd64、arm64、arm/v7、arm/v6(Raspberry Pi)向けの本番環境対応イメージを提供します。非 root、マルチステージビルドで、tini を init として使用します。 - あらゆる MCP クライアントで動作 — Claude Desktop、VS Code / GitHub Copilot、または MCP 対応ツールで利用できます。Docker、npx、ネイティブ Node.js 経由で実行できます。
🔐 セキュリティと認証
- 3 種類の認証方式 — API キー/シークレット(推奨)、ユーザー名/パスワード、または JWT トークン。すべての方式で、
*_FILE形式による Docker シークレットに対応しています。 - 認証はデフォルトで有効 — 明示的に無効にしない限り、HTTP モードではユーザーごとのローカルログインが有効になります。グローバルな
[komodo]接続は、起動時(または環境変数経由)に一度設定し、stdio または認証無効のデプロイでのみ使用します。 - 破壊的な操作には確認が必要 — 削除、破棄、プルーニング、シェル実行の前に、人間のオペレーターに明示的な承認を求めます(確認チェックボックスを使用した MCP エリシテーション)。プロンプトを表示できないクライアントではフェイルクローズします。
MCP_CONFIRM_DESTRUCTIVE/MCP_CONFIRM_FALLBACKで調整できます。 - デフォルトで強化されたセキュリティ — 入力検証(Zod)、レート制限、DNS リバインディング保護、Helmet によるセキュリティヘッダー、そして一元化されたフェイルクローズ型のシークレットマスキングを備えています。すべてのツール結果(exec の出力や取得したログを含む)は、クライアントのトランスクリプトに渡される前に、フレームワークのスクラブ境界を通過します。詳しくはシークレットのマスキングをご覧ください。
⚡ 信頼性と運用
- ライブ進捗表示とキャンセル — デプロイ、起動、停止などの長時間処理で、リアルタイムの進捗を報告します。AbortSignal を使って、進行中の処理をいつでもキャンセルできます。
- 自動再接続 — 接続を監視し、自動復旧と指数バックオフを行います。認証エラーが発生した場合は、ただちに再試行を停止します。
- ヘルスチェックとレディネス — Kubernetes 対応の
/healthおよび/readyエンドポイントを備えています。komodo_health_checkは、サーバーのバージョン、接続状態、認証状態を報告します。
mcp-server-framework を基盤として構築されています。構造化ログ、OpenTelemetry、セッション管理を備えた、本番環境対応の TypeScript MCP サーバーフレームワークです。
利用可能なツール(69)
| Category | Tools |
|---|---|
| Configuration | komodo_health_check |
| Containers | komodo_container_list, komodo_container_inspect, komodo_container_logs, komodo_container_search_logs, komodo_container_action (start/stop/restart/pause/unpause) |
| Servers | komodo_server_list, komodo_server_info, komodo_server_stats, komodo_server_apply (create/update), komodo_server_delete, komodo_server_action (start_all/restart_all/pause_all/unpause_all/stop_all_containers, prune_*, delete_network/image/volume) |
| Stacks | komodo_stack_list, komodo_stack_info, komodo_stack_apply (create/update), komodo_stack_delete, komodo_stack_action (deploy/pull/start/restart/pause/unpause/stop/destroy) |
| Deployments | komodo_deployment_list, komodo_deployment_info, komodo_deployment_apply (create/update), komodo_deployment_delete, komodo_deployment_action (deploy/pull/start/restart/pause/unpause/stop/destroy) |
| Builds | komodo_build_list, komodo_build_info, komodo_build_action (run/cancel), komodo_build_logs, komodo_build_apply (create/update), komodo_build_delete |
| Repos | komodo_repo_list, komodo_repo_info, komodo_repo_action (clone/pull/build/cancel_build), komodo_repo_apply (create/update), komodo_repo_delete |
| Procedures | komodo_procedure_list, komodo_procedure_info, komodo_procedure_action (run), komodo_procedure_apply (create/update), komodo_procedure_delete |
| Actions | komodo_action_list, komodo_action_info, komodo_action_action (run/cancel), komodo_action_apply (create/update), komodo_action_delete |
| Alerters | komodo_alerter_list, komodo_alerter_info, komodo_alerter_apply (create/update), komodo_alerter_delete |
| Swarms | komodo_swarm_list, komodo_swarm_info, komodo_swarm_apply (create/update), komodo_swarm_delete, komodo_swarm_nodes_list, komodo_swarm_services_list, komodo_swarm_action (update_node/remove_nodes/remove_services/remove_stacks) |
| Resource Syncs | komodo_resource_sync_list, komodo_resource_sync_info, komodo_resource_sync_action (run/refresh), komodo_resource_sync_apply (create/update), komodo_resource_sync_delete |
| Variables | komodo_variable_list, komodo_variable_info, komodo_variable_apply (create/update — value/description/is_secret), komodo_variable_delete |
| Updates | komodo_update_list (filterable, paginated), komodo_update_info |
| Terminal | komodo_exec (target: server / container / deployment / stack_service) |
| API Keys | komodo_user_list_api_keys, komodo_user_create_api_key, komodo_user_delete_api_key |
| Docker | komodo_docker_image_list, komodo_docker_image_inspect, komodo_docker_image_history, komodo_docker_network_list, komodo_docker_network_inspect, komodo_docker_volume_list, komodo_docker_volume_inspect |
| Builders | komodo_builder_list, komodo_builder_info, komodo_builder_apply (create/update), komodo_builder_copy, komodo_builder_rename, komodo_builder_delete |
| Tags | komodo_tag_list, komodo_tag_info, komodo_tag_apply (create/update), komodo_tag_delete |
| TOML Export | komodo_toml_export_all, komodo_toml_export_resources |
ヒント: すべてのツールには、
config、container、server、stack、deployment、build、repo、procedure、action、alerter、swarm、resource_sync、variable、update、terminal、user、docker、builder、tag、tomlのいずれかを指定する_meta.categoryと、komodo:read/komodo:operate/komodo:adminを格納するrequiredScopes配列があります。これにより、MCP クライアントやゲートウェイは、カテゴリーと3段階の RBAC に基づいてツールをフィルタリングしたり、利用を制限したりできます。ツールの範囲をサーバー側で制限する。 クライアントに表示されるツール一覧とトークンコストを抑えるため、3つの省略可能な環境変数を使って、サーバーが登録するツールを絞り込めます。
MCP_TOOLS_ALLOWED_CATEGORIES(カテゴリーの許可リスト。未設定の場合はすべて)、MCP_TOOLS_EXCLUDED_CATEGORIES(カテゴリー全体を除外)、MCP_TOOLS_EXCLUDED_TOOLS(komodo_execなど、名前でツールを除外)を指定します。上記のカテゴリー文字列をそのまま使用してください。除外されたツールはtools/listに表示されず、呼び出すこともできません。これは機能を削減するだけの設定です。公開される機能が増えることはなく、認証や、オープン時に読み取り専用となる動作を回避することもありません。一覧/情報/ログのツールは、
{ cursor, page_size }(1~100、デフォルトは25)によるカーソルページネーションに対応しており、さらに項目がある場合は_meta.page.next_cursorを返します。inspect、info、logs、search_logsの各レスポンスには、セッション単位のephemeral://...リソースリンクも含まれます。これを使うと、大きなペイロードをresources/read経由で別途取得できます。インラインでの全内容表示を強制するには、inline_full: trueを指定してください。
クイックスタート
Docker Compose(HTTP での利用におすすめ)
永続的な HTTP サーバーとしてデプロイし、任意の MCP クライアントから接続します。
mkdir komodo-mcp && cd komodo-mcp
curl -O https://raw.githubusercontent.com/MP-Tool/komodo-mcp-server/main/docker/compose.yaml
curl -O https://raw.githubusercontent.com/MP-Tool/komodo-mcp-server/main/docker/docker.env
cp docker.env .env # Edit with your credentials
docker compose up -d
Claude Desktop
claude_desktop_config.jsonに追加します(「Settings」→「Developer」→「Edit Config」)。
"komodo-mcp-server": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "KOMODO_URL=https://komodo.example.com:9120",
"-e", "KOMODO_API_KEY=api-key",
"-e", "KOMODO_API_SECRET=api-secret",
"ghcr.io/mp-tool/komodo-mcp-server:latest"
]
}
VS Code / GitHub Copilot
ワークスペースの.vscode/mcp.jsonに追加します。
{
"servers": {
"Komodo MCP Server": {
"type": "stdio",
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "KOMODO_URL=https://komodo.example.com:9120",
"-e", "KOMODO_API_KEY=api-key",
"-e", "KOMODO_API_SECRET=api-secret",
"ghcr.io/mp-tool/komodo-mcp-server:latest"
]
}
}
}
-> VS Code の完全ガイド · Node.js / npx(Docker 不要) · すべての連携
使い方
接続したら、Claude、Copilot、または MCP 対応のアシスタントに自然な言葉で依頼してください。使用するツールは自動で選ばれます。各プロンプトで実行されるツールは右側に示されています。
| プロンプト | 呼び出されるツール |
|---|---|
| 「Komodo サーバーをすべて一覧表示して」 | komodo_server_list |
| 「production-server 上のコンテナーを表示して」 | komodo_container_list |
| 「nginx コンテナーを起動して」 | komodo_container_action (start) |
| 「my-app を staging にデプロイして」 | komodo_deployment_action (deploy) |
| 「dev-server の統計情報を取得して」 | komodo_server_stats |
| 「前回のデプロイに失敗した理由は?」 | komodo_update_list -> komodo_update_info |
| 「api コンテナーのログを追跡して」 | komodo_container_logs |
MCP Inspector でのテスト
npx @modelcontextprotocol/inspector --url http://localhost:8000/mcp
Streamable HTTP には/mcpを使用し、レガシー SSE トランスポート(有効な場合)には/sseを使用してください。ホストとポートは、ご利用の環境に合わせて調整してください。
認証
混同しないよう、2つの異なる層があります。
1. Komodo への接続 - サーバー自体が Komodo Core と通信する方法です。次のいずれかを選択してください。
| 方法 | 環境変数 | 最適な用途 |
|---|---|---|
| API Key(推奨) | KOMODO_API_KEY + KOMODO_API_SECRET | サービスアカウント、自動化 |
| Username / Password | KOMODO_USERNAME + KOMODO_PASSWORD | 対話的に利用するユーザー |
| JWT Token | KOMODO_JWT_TOKEN | ブラウザー経由の SSO(OIDC、GitHub、Google OAuth) |
KOMODO_URL は常に必須です。すべての認証情報は *_FILE 形式の環境変数を使った Docker シークレットにも対応しています
(例:KOMODO_API_KEY_FILE)。この共通の接続は、stdio と、認証が無効なオープン HTTP モードで使用されます。
2. MCP サーバーにサインインするユーザー(HTTP/HTTPS) - 1.5.0 以降、デフォルトで有効です。各ユーザーは自分の Komodo ユーザー名とパスワードでログインし、それぞれの権限に応じた個別のセッションを利用します。MCP_AUTH_ENABLED=false で無効にできます(その場合、ネットワークに公開されたサーバーは読み取り専用になります)。stdio はローカルで動作し、認証は行われません。
環境変数、設定ファイル、Docker シークレットなどの完全な設定リファレンスについては、**設定ガイド**をご覧ください。
トラブルシューティング
接続が拒否される/サーバーから Komodo に接続できない。 KOMODO_URL を確認してください。スキーム、ホスト、Komodo Core のポートが必要です(例:https://komodo.example.com:9120)。Docker 内からは、localhost はホストではなくコンテナーを指します。ホストの IP アドレスまたは Docker ネットワークのエイリアスを使用してください。ファイアウォールやリバースプロキシなどがポートをブロックしていないことを確認してください。
クライアントの接続時に HTTP 401 Unauthorized が発生する。 1.5.0 以降、HTTP/HTTPS ではデフォルトで認証が有効なため、クライアントはサインインする必要があります(Komodo のユーザー名とパスワードを使ってブラウザーからログインします)。ログインを完了するか、MCP_AUTH_ENABLED=false を設定して認証なしで実行してください。ログイン後に 401 が発生する場合は、Komodo の認証情報が間違っているか、アカウントが無効になっている可能性があります。(stdio はローカルで動作し、この認証は必要ありません。)
ツール一覧に表示されないツールがある。 どちらも仕様によるものです。
- 読み取り専用モード。 HTTP/HTTPS トランスポートで認証を無効(
MCP_AUTH_ENABLED=false)にすると、匿名の呼び出し元に対してサーバーは読み取り専用になります。すべての書き込み/実行/削除ツール(komodo_execを含む)は非表示になり、呼び出しも拒否されます。ツールを再び使えるようにするには、ユーザーごとのログインを行う[auth]を有効にしてください。このモードが有効な場合、起動ログにREAD-ONLYの通知が表示されます。 - ツールの公開範囲フィルター。
MCP_TOOLS_ALLOWED_CATEGORIES、MCP_TOOLS_EXCLUDED_CATEGORIES、またはMCP_TOOLS_EXCLUDED_TOOLSにより、登録済みツールが絞り込まれます。すべてのツールを公開するには、これら3つの設定を解除してください。無効なカテゴリ名は無視され、起動時に有効なカテゴリの一覧を含む警告が表示されます。
免責事項
開発ワークフローの一環として、AI ツール(GitHub Copilot、Claude)をコード生成、アーキテクチャの検討、ドキュメントの草案作成に使用しています。品質、正確性、確立されたエンジニアリング標準への準拠を確保するため、コードとドキュメントのすべての行を手作業でレビューしています。
このソフトウェアは GPL-3.0 License の下で提供されています。バグを見つけた場合やアイデアがある場合は、イシューやコントリビューションをいつでも歓迎します。
コントリビューション
コントリビューションを歓迎します。詳細はコントリビューションガイドをご覧ください。
開発
# Clone and install
git clone https://github.com/MP-Tool/komodo-mcp-server.git
cd komodo-mcp-server
npm install
# Build and run
npm run build
npm start
ドキュメント
| ガイド | 説明 |
|---|---|
| 設定 | すべての環境変数、設定ファイル形式、優先順位、Docker シークレット |
| Docker デプロイ | Docker Compose のセットアップ、ヘルスチェック、本番環境へのデプロイ |
| クライアント連携 | Claude Desktop、VS Code、Node.js/npx のセットアップガイド |
| コントリビューション | 開発環境のセットアップ、コーディング規約、PR ガイドライン |
| セキュリティ | 脆弱性の報告、セキュリティのベストプラクティス |
| 変更履歴 | バージョン履歴とリリースノート |
ライセンス
GPL-3.0 ライセンスです。詳細は LICENSE をご覧ください。
要件
- Komodo v2(Komodo Core 2.x。バージョン依存のツール(
komodo_execなど)は、古いコアではサーバーによって拒否されます) - Docker(コンテナー化されたデプロイの場合)または Node.js 22+(ネイティブインストールの場合)
- 有効な Komodo 認証情報(API Key/Secret、Username/Password、または JWT Token)
セキュリティ
セキュリティ脆弱性は、GitHub の非公開脆弱性報告を通じて報告してください(SECURITY.md を参照)。
破壊的操作の確認: デフォルトでは、破壊的なツール(すべての *_delete ツール、komodo_exec、スタック/デプロイの destroy、サーバーの stop_all/prune_*/delete_*、スウォームの remove_*、およびプロシージャ/アクション/リソース同期の run)は、実行前に人間のオペレーターが MCP の確認プロンプト(「accept」を選択し、確認チェックボックスにチェックを入れる)を承認する必要があります。プロンプトを表示できないクライアント(確認機能に未対応、またはステートレス HTTP モード)は、デフォルトで拒否されます。MCP_CONFIRM_FALLBACK=allow(そのようなクライアントでは警告を表示して実行)または MCP_CONFIRM_DESTRUCTIVE=false(この機能を無効化)で調整できます。これは、クライアントが確認機能に対応していない stdio セットアップに関係します。
シークレットのマスキング: ツールの結果は MCP クライアントのトランスクリプトに保存され、モデルプロバイダーに転送されるため、プロセスから外部に送信される前に、すべてのツール結果がフレームワークの一元的なフェイルクローズ型のスクラブ境界を通過します。対象には、構造化されたリソース設定(env ブロック、webhook_secret、passkey)、アラート送信先の Webhook URL、exec の出力、コンテナー/ビルド/更新ログが含まれ、インラインペイロードとオフロードされたリソースリンクの両方が対象です。さらに、is_secret 変数の値は常にマスクされ、スタックでは補間後の deployed_config/deployed_contents が削除されます。多層防御としてベストエフォートで対応します。ヒューリスティックで検出できるのは、定型的なシークレット形式であり、任意の内容ではありません。例外として、komodo_user_create_api_key は一度限りのシークレットをマスキングせずに返します。シークレットのマスキングを参照してください。
ベストプラクティス:
- 認証情報をコミットしないでください
- 環境変数を使用してください
- 依存関係を最新の状態に保ってください
- root 以外のユーザーで実行してください(Docker のデフォルト)
リンク
- Komodo — コンテナー管理プラットフォーム
- Komodo ドキュメント — 公式ドキュメント
- MCP 仕様 — Model Context Protocol
- MCP レジストリ — MCP サーバーレジストリ
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。