mcpField
D
Docker MCP Server

Docker MCP Server

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

Docker MCP Server について

Docker MCP Server は Docker と Docker Swarm の操作を MCP クライアント向けのツールとして公開します。MCP Mediator を基盤とし、Docker サービスのメソッドからツールを生成でき、Docker デーモンと TLS の設定にも対応します。

主な機能

  1. 01コンテナ、イメージ、ボリュームの管理
  2. 02ネットワーク、サービス、Swarm の確認
  3. 03コマンド実行とログ取得
  4. 04Docker ホストと TLS の設定
  5. 05サービスメソッドから MCP ツールを生成

活用シーン

  1. 01コンテナの状態とリソース使用量を調べる
  2. 02Docker Swarm のノードとサービスを管理する
  3. 03ツール経由でイメージをビルド、取得、削除する

MCP 対応

MCP Mediator を介して Docker と Docker Swarm のコマンドを MCP ツールとして公開します。Docker デーモンのオプションを設定したサーバープロセスにクライアントが接続できます。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Docker MCP サーバー

このモジュールは、mcp_mediator コアフレームワークを基盤とする、Docker コマンド用の Model Context Protocol MCP サーバーの実装を提供します。 Docker MCP サーバーは、MCP Mediator の サーバー自動生成機能を活用して、既存の Docker コマンドを MCP ツールとして公開します。 ツールの見つけやすさと使いやすさを高めるため、各コマンドには必要に応じて最小限の説明とともに @McpTool を付与できます。

👉 対応コマンドの一覧はこちらをご覧ください。

Docker MCP サーバー

重要


これは mcp_mediator プロジェクトの一部です:https://github.com/makbn/docker_mcp_server ビルドまたは変更するには、親リポジトリをクローンしてください: git clone --recurse-submodules https://github.com/makbn/docker_mcp_server.git

使用例
java -jar docker-mcp-server.jar \
  --docker-host=tcp://localhost:2376 \
  --tls-verify \
  --cert-path=/etc/docker/certs \
  --server-name=my-server \
  --server-version=1.0.0 \
  --max-connections=150 \
  --docker-config=/custom/docker/config

java -jar を使って Docker MCP サーバーを Claude Desktop で実行するには:

{
  "mcpServers": {
    "my_java_mcp_server": {
      "command": "java",
      "args": [
        "-jar",
        "docker-mcp-server.jar"
        "--docker-host=tcp://localhost:2376",
        "--tls-verify", # not required
        "--cert-path=/etc/docker/certs", # required only if --tls-verify is available
        "--server-name=my-docker-mcp-server",
        "--server-version=1.0.0",
        "--max-connections=150",
        "--docker-config=/custom/docker/config"
      ]
    }
  }
}

または、ネイティブイメージを作成して(以下の手順を参照)、スタンドアロンアプリケーションを使用します:

{
  "mcpServers": {
    "my_java_mcp_server": {
      "command": "docker-mcp-server-executable",
      "args": [
        "--docker-host=tcp://localhost:2376" // rest of args
      ]
    }
  }
}
ビルド方法

実行可能ファイルをビルドするには:

mvn clean compile package

このコマンドは、target フォルダーに mcp-mediator-implementation-docker-[version].jar という JAR ファイルを作成します。ここで終了して、JAR ファイルを java -jar コマンドで実行できます。または、GraalVM ネイティブイメージを使用してスタンドアロンの実行可能アプリケーションを作成できます:

 native-image -jar mcp-mediator-implementation-docker-[version].jar     

このコマンドは、実行可能なファイル 'mcp-mediator-implementation-docker-[version] を作成します。

MCP ツールの自動生成

このプロジェクトは、MCP Mediator と連携して、既存の Docker サービスから MCP ツールを自動生成します。

Docker サービスクラスの各メソッドには、ツールの 名前、説明、その他のメタデータを明示的に定義するため、必要に応じて @McpTool を付与できます。

ただし、アノテーションは 必須ではありません。MCP Mediator は、メソッド名、クラス名、パッケージ名から詳細を推測して、アノテーションのないメソッドのツールを自動生成できます。この動作を有効にするには、createForNonAnnotatedMethods を true に設定してください:

DefaultMcpMediator mediator = new DefaultMcpMediator(McpMediatorConfigurationBuilder.builder()
        .createDefault()
        .serverName(serverName)
        .serverVersion(serverVersion)
        .build());

mediator.

registerHandler(McpServiceFactory.create(dockerClientService)
        .

createForNonAnnotatedMethods(true)); // Enables support for non-annotated methods

MCP Mediator の設定全体については、io.github.makbn.mcp.mediator.docker.server.DockerMcpServer を確認してください。

サポートされている CLI オプション
オプション説明デフォルト
--docker-hostDocker デーモンのホスト URIunix:///var/run/docker.sock
--tls-verifyTLS 検証を有効にします(--cert-path と併用)false
--cert-pathDocker TLS クライアント証明書のパス(TLS が有効な場合は必須)none
--docker-configカスタム Docker 設定ディレクトリ~/.docker
--server-nameMCP サーバーのサーバー名docker_mcp_server
--server-versionサーバーのバージョンラベル1.0.0.0
--max-connectionsDocker デーモンへの最大接続数100
--help使用方法と利用可能なオプションを表示しますn/a

環境変数:

オプション説明デフォルト
DOCKER_MCP_LOG_LEVELログレベル(TRACE、DEBUG、INFO など)DEBUG
DOCKER_MCP_LOG_FILEログ出力ファイルのパスlogs/docker_mcp_server.log
MCP サーバーツールとしてサポートされている Docker コマンド
MCP ツール名説明
docker_start_containerID を指定して Docker コンテナを起動します。
docker_stop_containerID を指定して Docker コンテナを停止します。
docker_leave_swarmDocker Swarm からノードを削除します。
docker_container_diffコンテナのファイルシステムに加えられた変更を表示します。
docker_build_image_fileDockerfile またはディレクトリからイメージをビルドします。
docker_inspect_volumeDocker ボリュームの詳細を取得します。
docker_remove_serviceID を指定して Docker サービスを削除します。
docker_list_containersオプションのフィルターを適用してコンテナを一覧表示します。
docker_inspect_swarmDocker Swarm の詳細を調べます。
docker_push_imageイメージをレジストリにプッシュします。認証に対応しています。
docker_copy_archive_to_containertar アーカイブを実行中のコンテナにコピーします。
docker_stats_containerコンテナの統計情報(CPU、メモリなど)を取得します。
docker_disconnect_container_from_networkコンテナを Docker ネットワークから切断します。
docker_remove_containerオプションで強制削除を指定してコンテナを削除します。
docker_inspect_serviceDocker サービスを調べます。
docker_remove_secretID を指定して Docker シークレットを削除します。
docker_pull_imageイメージをレジストリからプルします。認証に対応しています。
docker_inspect_containerコンテナの設定と状態を調べます。
docker_unpause_container一時停止中のコンテナを再開します。
docker_list_imagesオプションのフィルターを適用して Docker イメージを一覧表示します。
docker_list_servicesSwarm 内のすべての Docker サービスを一覧表示します。
docker_remove_image強制削除とプルーニングのオプションを指定してイメージを削除します。
docker_create_networkDocker ネットワークを作成します。
docker_tag_imageイメージに新しいリポジトリ名とタグを付けます。
docker_authenticateDocker レジストリに認証します。
docker_exec_commandコンテナ内でコマンドを実行します。
docker_remove_swarm_nodeオプションで強制削除を指定して Swarm ノードを削除します。
docker_search_imagesDocker Hub でイメージを検索します。
docker_list_networksすべての Docker ネットワークを一覧表示します。
docker_remove_volumeDocker ボリュームを削除します。
docker_create_containerカスタム設定でコンテナを作成します。
docker_remove_networkDocker ネットワークを削除します。
docker_copy_archive_from_containerコンテナからホストにファイルをコピーします。
docker_rename_containerDocker コンテナの名前を変更します。
docker_pause_container実行中のコンテナを一時停止します。
docker_versionDocker のバージョン情報を取得します。
docker_list_swarm_nodesDocker Swarm 内のすべてのノードを一覧表示します。
docker_log_containerコンテナのログを取得します。
docker_prune未使用の Docker リソースをプルーニングします。
docker_inspect_networkネットワークの詳細情報を取得します。
docker_kill_containerコンテナに kill シグナルを送信します。
docker_top_containerコンテナ内で実行中のプロセスを取得します。
docker_list_volumesオプションのフィルターを適用して Docker ボリュームを一覧表示します。
docker_update_swarm_nodeSwarm ノードの設定を更新します。
docker_infoDocker システム全体の情報を表示します。
docker_log_serviceDocker サービスのログを取得します。
docker_load_imagetar アーカイブからイメージを読み込みます。
docker_list_tasksDocker Swarm 環境内のタスクを一覧表示します。
docker_save_imageDocker イメージをローカルの tar ファイルに保存します。
docker_join_swarm既存の Swarm クラスターにノードを参加させます。
docker_create_volume新しい Docker ボリュームを作成します。
docker_initialize_swarm新しい Docker Swarm クラスターを初期化します。
作業中です。今後、内容を追加する予定です。
DockerClientService の機能カバレッジ

利用可能なツールと実装予定のツールの全一覧については、DockerClientService クラスを確認してください。

重要


MCP ツールの説明と名前のほとんどは、AI エージェントを使用して自動生成されています!

🧩 リポジトリ構造と Git サブツリーの設定

このプロジェクトは、親リポジトリ makbn/mcp_mediator の Git サブツリーモジュールです。独立したバージョン管理、CI、リリースプロセスをサポートするために独自のリポジトリで管理しながら、メインの mcp_mediator モノレポにも統合されています。

🔀 クローンの構造

mcp_mediator システム全体のコンテキストで作業する場合:

`git clone --recurse-submodules https://github.com/makbn/docker_mcp_server.git`
コントリビューション

コントリビューションを歓迎します!お気軽にプルリクエストを送信してください。まずはこちらをお読みください!

ライセンス

このプロジェクトは GPL3 ライセンスの下でライセンスされています。詳細は LICENSE ファイルをご覧ください。

コメント

MCP は初めてですか?

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

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