Docker MCP Server について
Docker MCP Serverは、MCP経由でDocker Desktop for Windowsの操作を開発者やツールに提供します。コンテナ、ネットワーク、イメージ、ログを管理できます。
主な機能
- 01コンテナライフサイクル管理
- 02ネットワークの作成と管理
- 03イメージの取得・ビルド・公開
- 04コンテナログの確認
活用シーン
- 01コンテナ情報の確認と起動・停止
- 02コンテナのネットワーク接続設定
- 03イメージのビルドや公開
- 04コンテナログの調査
MCP 対応
MCP サーバーとして、Docker Desktopのコンテナ、ネットワーク、イメージ、ログを管理するツールをMCPクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Docker MCP サーバー
Docker MCP サーバーは、Windows 上の Docker Desktop とシームレスに統合し、開発者やツール向けに高度な自動化機能と操作機能を提供するModel Context Protocol(MCP)サーバーです。
前提条件
-
Docker の公式ダウンロードページから、Windows 用 Docker Desktop をインストールします。
-
Docker Desktop で Settings > General に移動し、
"Expose daemon on tcp://localhost:2375 without TLS" のチェックボックスをオンにします。
これは、MCP サーバーが Docker Desktop と通信するために必要です。💡 ヒント: ブラウザーで
http://localhost:2375/versionを開くと、
ポートが正常に公開されていることを確認できます。設定が正しければ、
Docker のバージョン情報を含む JSON レスポンスが表示されます。
問題が発生した場合は、解決策が見つかる可能性がある次のディスカッションをご確認ください: WSL and Docker for Windows: Cannot connect to the Docker daemon
インストール
Claude Desktop での使用
{
"mcpServers": {
"docker-mcp-stdio": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"freezeolo/docker-mcp-server"
]
}
}
}
ツール
✅ 完了 🛠️ 進行中 ❌ 予定
コンテナーのライフサイクル管理 ✅
- list_containers - コンテナーの一覧を取得 ✅
- get_container_info - 特定のコンテナーの詳細を取得 ✅
container_id:コンテナー ID(string、必須)
- start_container - コンテナーを起動 ✅
container_id:コンテナー ID(string、必須)
- restart_container - コンテナーを再起動 ✅
container_id:コンテナー ID(string、必須)
- stop_container - コンテナーを停止 ✅
container_id:コンテナー ID(string、必須)
- remove_container - コンテナーを削除 ✅
container_id:コンテナー ID(string、必須)
- create_container - 新しいコンテナーを作成 ✅
imageName:イメージ名(string、必須)containerName:コンテナー名(string、必須)command:実行するコマンド(string、任意)env:環境変数(string[]、任意)ports:ポートのバインド(string[]、任意)volumes:ボリュームのバインド(string[]、任意)network:ネットワーク名(string、任意)restartPolicy:再起動ポリシー(string、任意)
ネットワーク管理 ✅
- list_networks - すべてのネットワークを一覧表示 ✅
- get_network_info - ネットワーク情報を取得 ✅
networkId:ネットワーク ID(string、必須)
- create_network - 新しいネットワークを作成 ✅
networkName:ネットワーク名(string、必須)driver:ネットワークドライバー(string、必須)subnet:サブネット CIDR(string、必須)gateway:ゲートウェイ IP(string、必須)
- connect_container_to_network - コンテナーをネットワークに接続 ✅
containerId:コンテナー ID(string、必須)networkId:ネットワーク ID(string、必須)
- disconnect_container_from_network - コンテナーをネットワークから切断 ✅
containerId:コンテナー ID(string、必須)networkId:ネットワーク ID(string、必須)
- remove_network - ネットワークを削除 ✅
networkId:ネットワーク ID(string、必須)
- get_network_containers - ネットワーク内のコンテナーを取得 ✅
networkId:ネットワーク ID(string、必須)
イメージ管理 ✅
- list_images - すべてのイメージを一覧表示 ✅
- pull_image - レジストリからイメージをプル ✅
imageName: タグ付きのイメージ名(文字列、必須)
- push_image - イメージをレジストリにプッシュ ✅
imageName: タグ付きのイメージ名(文字列、必須)
- remove_image - イメージを削除 ✅
imageId: イメージ ID(文字列、必須)force: 強制削除(ブール値、任意)
- tag_image - イメージに複数のタグを付与 ✅
imageId: イメージ ID(文字列、必須)repository: リポジトリ名(文字列、必須)tags: タグの配列(文字列[]、必須)
- build_image - Dockerfile からイメージをビルド ✅
dockerfilePath: Dockerfile へのパス(文字列、必須)repository: リポジトリ名(文字列、必須)tags: タグの配列(文字列[]、必須)
- get_image_details - イメージの詳細を取得 ✅
imageId: イメージ ID(文字列、必須)
ログ管理 ✅
- get_container_logs - コンテナのログを取得 ✅
containerId: コンテナ ID(文字列、必須)follow: ログ出力を追跡(ブール値、任意、デフォルト:false)stdout: 標準出力を表示(ブール値、任意、デフォルト:true)stderr: 標準エラー出力を表示(ブール値、任意、デフォルト:true)since: 指定したタイムスタンプ以降のログを表示(文字列、任意)until: 指定したタイムスタンプまでのログを表示(文字列、任意)tail: 末尾から表示する行数(整数、任意)timestamps: タイムスタンプを表示(ブール値、任意、デフォルト:false)
FAQ
Q: プロジェクトをインストールするにはどうすればよいですか?
A: インストールセクションの手順に従ってください。必要な依存関係がそろっていることを確認してください。
ライセンス
このプロジェクトは、MIT オープンソースライセンスの条件に基づいてライセンスされています。詳細な条件については、MITを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。