🐳 docker-mcp について
docker-mcp は、Claude を通じてDockerコンテナとComposeスタックを管理するMCPサーバーです。会話からDocker操作を行いたいユーザー向けで、コンテナ作成、Compose デプロイ、ログ取得、コンテナ一覧表示に対応しています。
主な機能
- 01独立したDockerコンテナの作成
- 02Docker Compose スタックのデプロイ
- 03特定コンテナのログ取得
- 04コンテナの一覧表示と状態確認
活用シーン
- 01会話からComposeスタックをデプロイする
- 02コンテナログを分析して問題を調査する
- 03実行中コンテナの状態を確認する
MCP 対応
本プロジェクトはMCPサーバーであり、create-container、deploy-compose、get-logs、list-containers の各ツールをMCPクライアントに提供します。READMEの設定例はClaude Desktop向けです。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
🐳 docker-mcp
Docker の操作に対応した強力な Model Context Protocol(MCP)サーバーです。Claude AI を通じて、コンテナーや Compose スタックをシームレスに管理できます。
✨ 機能
- 🚀 コンテナーの作成と起動
- 📦 Docker Compose スタックのデプロイ
- 🔍 コンテナーログの取得
- 📊 コンテナーの一覧表示とステータスの監視
🎬 デモ
Docker Compose スタックのデプロイ
https://github.com/user-attachments/assets/b5f6e40a-542b-4a39-ba12-7fdf803ee278
コンテナーログの分析
https://github.com/user-attachments/assets/da386eea-2fab-4835-82ae-896de955d934
🚀 クイックスタート
Claude デスクトップアプリで試すには、Claude の設定ファイルに以下を追加してください。
{
"mcpServers": {
"docker-mcp": {
"command": "uvx",
"args": [
"docker-mcp"
]
}
}
}
Smithery 経由でのインストール
Smithery 経由で Docker MCP を Claude デスクトップアプリに自動インストールするには、以下を実行してください。
npx @smithery/cli install docker-mcp --client claude
前提条件
- UV(パッケージマネージャー)
- Python 3.12+
- Docker Desktop または Docker Engine
- Claude Desktop
インストール
Claude Desktop の設定
サーバーの設定を Claude Desktop の設定ファイルに追加してください。
MacOS:~/Library/Application\ Support/Claude/claude_desktop_config.json
Windows:%APPDATA%/Claude/claude_desktop_config.json
💻 開発用の設定
{
"mcpServers": {
"docker-mcp": {
"command": "uv",
"args": [
"--directory",
"<path-to-docker-mcp>",
"run",
"docker-mcp"
]
}
}
}
🚀 本番用の設定
{
"mcpServers": {
"docker-mcp": {
"command": "uvx",
"args": [
"docker-mcp"
]
}
}
}
🛠️ 開発
ローカル環境のセットアップ
- リポジトリをクローンします。
git clone https://github.com/QuantGeekDev/docker-mcp.git
cd docker-mcp
- 仮想環境を作成して有効化します。
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- 依存関係をインストールします。
uv sync
🔍 デバッグ
デバッグ用に MCP Inspector を起動します。
npx @modelcontextprotocol/inspector uv --directory <path-to-docker-mcp> run docker-mcp
Inspector から、デバッグ用インターフェースにアクセスするための URL が提示されます。
📝 利用可能なツール
サーバーでは以下のツールを利用できます。
create-container
単独の Docker コンテナーを作成します。
{
"image": "image-name",
"name": "container-name",
"ports": {"80": "80"},
"environment": {"ENV_VAR": "value"}
}
deploy-compose
Docker Compose スタックをデプロイします。
{
"project_name": "example-stack",
"compose_yaml": "version: '3.8'\nservices:\n service1:\n image: image1:latest\n ports:\n - '8080:80'"
}
get-logs
指定したコンテナーのログを取得します。
{
"container_name": "my-container"
}
list-containers
すべての Docker コンテナーを一覧表示します。
{}
🚧 現在の制限事項
- コンテナーの環境変数には標準で対応していません
- ボリューム管理には対応していません
- ネットワーク管理には対応していません
- コンテナーのヘルスチェックには対応していません
- コンテナーの再起動ポリシーには対応していません
- コンテナーのリソース制限には対応していません
🤝 コントリビューション
- docker-mcp からリポジトリをフォークします
- 機能追加用のブランチを作成します
- 変更をコミットします
- ブランチにプッシュします
- プルリクエストを作成します
📜 ライセンス
このプロジェクトは MIT ライセンスの下でライセンスされています。詳細は LICENSE ファイルをご覧ください。
✨ 作者
- Alex Andru - 初期開発 | コアコントリビューター - @QuantGeekDev
- Ali Sadykov - 初期開発 | コアコントリビューター - @md-archive
❤️ を込めて作成
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。