mcpField
K
Komodo MCP Server

Komodo MCP Server

ローカル
github.comクラウド・インフラ5211 週間前に更新

Komodo MCP Server について

Komodo MCP Server は、AI アシスタントから Komodo を通じて Docker や Podman のデプロイを管理する MCP サーバーです。自然言語や自動化ワークフローでコンテナやサーバーを操作したい運用担当者向けです。Komodo の複数のリソース種別に対応したツール群を提供します。

主な機能

  1. 01コンテナ、スタック、デプロイ、サーバーなど 88 のツール
  2. 02リモートターミナルによるコマンド実行と出力のストリーミング
  3. 03パターン指定によるコンテナログ検索
  4. 04破壊的操作での人による承認
  5. 05Streamable HTTP と stdio のトランスポート
  6. 06ヘルスチェックと自動再接続

活用シーン

  1. 01チャットからの本番コンテナの起動と停止
  2. 02アプリケーションのデプロイ実行と進捗確認
  3. 03デプロイ失敗時の更新履歴とログの確認

MCP 対応

本プロジェクトは Komodo のコンテナ、サーバー、デプロイ操作をツールとして MCP クライアントに公開する MCP サーバーです。クライアントはカテゴリや権限スコープでツールを絞り込めます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"komodo": {
"command": "npx",
"args": [
"-y",
"komodo-mcp-server"
],
"env": {
"KOMODO_URL": "<KOMODO_URL>",
"KOMODO_API_KEY": "<KOMODO_API_KEY>",
"KOMODO_API_SECRET": "<KOMODO_API_SECRET>",
"KOMODO_USERNAME": "<KOMODO_USERNAME>",
"KOMODO_PASSWORD": "<KOMODO_PASSWORD>"
}
}
}
}
起動コマンドnpx -y komodo-mcp-server
設定が必要な環境変数
KOMODO_URLKomodo Core API URL
KOMODO_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 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmkomodo-mcp-server1.5.0
ocighcr.io/mp-tool/komodo-mcp-server:1.5.0

ツール

88

掲載時のツール一覧 · 2 週間前に更新

このツールにパラメーターはありません。

詳細

🦎 Komodo MCP Server

Komodo 用の Model Context Protocol サーバー

AI アシスタントや自動化ツールを使って、Komodo 経由で Docker または Podman のデプロイを管理できます。

Komodo MCP Server は、AI アシスタント(Claude、GitHub Copilot など)と Komodo(コンテナー管理プラットフォーム)とのシームレスな連携を実現し、効率的なコンテナー管理、サーバーのオーケストレーション、デプロイ操作を可能にします。MCP サーバーを使用すると、自然言語や自動化されたワークフローで、Komodo が管理するインフラストラクチャを制御できます。

GitHub Release License: GPL-3.0 Docker npm MCP Registry MCP

GitHub Issues OpenSSF Scorecard Build Status CodeQL

機能 • クイックスタート • 認証 • ドキュメント


機能

🛠️ インフラストラクチャを完全に制御
  • 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)

CategoryTools
Configurationkomodo_health_check
Containerskomodo_container_list, komodo_container_inspect, komodo_container_logs, komodo_container_search_logs, komodo_container_action (start/stop/restart/pause/unpause)
Serverskomodo_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)
Stackskomodo_stack_list, komodo_stack_info, komodo_stack_apply (create/update), komodo_stack_delete, komodo_stack_action (deploy/pull/start/restart/pause/unpause/stop/destroy)
Deploymentskomodo_deployment_list, komodo_deployment_info, komodo_deployment_apply (create/update), komodo_deployment_delete, komodo_deployment_action (deploy/pull/start/restart/pause/unpause/stop/destroy)
Buildskomodo_build_list, komodo_build_info, komodo_build_action (run/cancel), komodo_build_logs, komodo_build_apply (create/update), komodo_build_delete
Reposkomodo_repo_list, komodo_repo_info, komodo_repo_action (clone/pull/build/cancel_build), komodo_repo_apply (create/update), komodo_repo_delete
Procedureskomodo_procedure_list, komodo_procedure_info, komodo_procedure_action (run), komodo_procedure_apply (create/update), komodo_procedure_delete
Actionskomodo_action_list, komodo_action_info, komodo_action_action (run/cancel), komodo_action_apply (create/update), komodo_action_delete
Alerterskomodo_alerter_list, komodo_alerter_info, komodo_alerter_apply (create/update), komodo_alerter_delete
Swarmskomodo_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 Syncskomodo_resource_sync_list, komodo_resource_sync_info, komodo_resource_sync_action (run/refresh), komodo_resource_sync_apply (create/update), komodo_resource_sync_delete
Variableskomodo_variable_list, komodo_variable_info, komodo_variable_apply (create/update — value/description/is_secret), komodo_variable_delete
Updateskomodo_update_list (filterable, paginated), komodo_update_info
Terminalkomodo_exec (target: server / container / deployment / stack_service)
API Keyskomodo_user_list_api_keys, komodo_user_create_api_key, komodo_user_delete_api_key
Dockerkomodo_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
Builderskomodo_builder_list, komodo_builder_info, komodo_builder_apply (create/update), komodo_builder_copy, komodo_builder_rename, komodo_builder_delete
Tagskomodo_tag_list, komodo_tag_info, komodo_tag_apply (create/update), komodo_tag_delete
TOML Exportkomodo_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

-> Docker の完全ガイド

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"
  ]
}

-> Claude の完全ガイド

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 / PasswordKOMODO_USERNAME + KOMODO_PASSWORD対話的に利用するユーザー
JWT TokenKOMODO_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 コミュニティに ❤️ を込めて開発 🦎

バグを報告 · 機能をリクエスト · ディスカッション

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。