Docker MCP
2ポイント
6.9K

インストール

以下のコマンドをクライアントにコピーして設定
注意:あなたのキーは機密情報です。誰とも共有しないでください。

🚀 Docker Manager MCP

Docker Manager MCPは、あなたのすべてのDockerホストを一箇所から管理できるツールです。 AIアシスタントがコンテナの管理、スタックのデプロイ、サービスの監視を、ゼロ設定でインフラ全体にわたって行うことができます。

Docker Image Build Status Python 3.11+ FastMCP License: MIT

🚀 クイックスタート

📦 インストール

curl -sSL https://raw.githubusercontent.com/jmagar/docker-mcp/main/install.sh | bash

インストーラーは以下のことを自動的に行います:

  • ✅ SSHキーの自動設定
  • ✅ SSH設定からすべての既存のホストをインポート
  • ✅ 安全な認証の設定
  • ✅ ポート8000でサービスを起動

手動での設定は不要です。 SSHで接続できるホストであれば、Docker Managerで管理できます。

✨ 主な機能

  • 複数のDockerホストにアプリケーションをデプロイ
  • コンテナを起動/停止/再起動操作で制御
  • リアルタイムのログストリーミングでサービスを監視
  • Docker Composeの設定を使用してスタックを管理
  • ローリングアップデートを使用してダウンタイムなしでサービスを更新
  • ポートの使用状況を確認して競合を回避
  • SSH設定からホストを自動検出

🛠 3つのツール

AIアシスタントに平文英語で指示を与えるだけです。 複雑なコマンドやJSONは必要ありません。Dockerインフラストラクチャに対して行いたいことを説明するだけです。

ツール1: docker_hosts

簡素化されたDockerホスト管理ツールです。

アクション:list: すべての構成済みDockerホストをリストする

  • 必須: なし

add: 新しいDockerホストを追加する(自動的にtest_connectionとdiscoverを実行)

  • 必須: host_id, ssh_host, ssh_user
  • オプション: ssh_port (デフォルト: 22), ssh_key_path, description, tags, enabled (デフォルト: true)

ports: ホストのポート使用状況をリストまたは確認する

  • 必須: host_id
  • オプション: port (可用性チェック用)

import_ssh: SSH設定からホストをインポートする(各ホストに対して自動的にtest_connectionとdiscoverを実行)

  • 必須: なし
  • オプション: ssh_config_path, selected_hosts

cleanup: Dockerシステムのクリーンアップ操作

  • 必須: host_id, cleanup_type
  • 有効なcleanup_type: "check" | "safe" | "moderate" | "aggressive"

test_connection: ホストの接続性をテストする(discoverも実行)

  • 必須: host_id

discover: ホスト上のパスと機能を検出する

  • 必須: host_id ('all'を使用すると、すべてのホストを順次検出)
  • 検出内容: compose_path, appdata_path
  • 単一ホスト: 高速検出 (5 - 15秒)
  • すべてのホスト: 順次検出 (合計30 - 60秒)

edit: ホスト構成を変更する

  • 必須: host_id
  • オプション: ssh_host, ssh_user, ssh_port, ssh_key_path, description, tags, compose_path, appdata_path, enabled

remove: 構成からホストを削除する

  • 必須: host_id

disk_usage: 読み取り専用のDockerディスク使用状況の概要(cleanup checkのエイリアス)

  • 必須: host_id

自然言語の例:

"Add a new Docker host called production-1 at 192.168.1.100 with user dockeruser"
"Add host staging at 10.0.1.50 using SSH key ~/.ssh/staging_key"
"List all my Docker hosts"
"Check what ports are being used on production-1"
"Import hosts from my SSH config"
"Clean up Docker on production-1 using safe mode"
"Test connection to staging-server"
"Discover capabilities on all hosts"
"Update the compose path for production-1 to /opt/stacks"
"Remove the old-server host from my configuration"

ツール2: docker_container

統合されたDockerコンテナ管理ツールです。

アクション:list: ホスト上のコンテナをリストする

  • 必須: host_id
  • オプション: all_containers, limit, offset

info: コンテナの情報を取得する

  • 必須: host_id, container_id

start: コンテナを起動する

  • 必須: host_id, container_id
  • オプション: force, timeout

stop: コンテナを停止する

  • 必須: host_id, container_id
  • オプション: force, timeout

restart: コンテナを再起動する

  • 必須: host_id, container_id
  • オプション: force, timeout

remove: コンテナを削除する

  • 必須: host_id, container_id
  • オプション: force

logs: コンテナのログを取得する

  • 必須: host_id, container_id
  • オプション: follow, lines

pull: ホストにコンテナイメージをプルする

  • 必須: host_id, image_name

自然言語の例:

"List all containers on production-1"
"Include stopped containers on staging"
"Show info for the nginx container on production-1"
"Start the wordpress container on production-1"
"Force stop the mysql database on staging with a 30 second timeout"
"Restart the web server container on production-1"
"Remove the old cache container from staging"
"Tail the last 200 lines of logs for api-server on production-1"
"Pull the latest nginx image on production-1"

ツール3: docker_compose

統合されたDocker Composeスタック管理ツールです。

アクション:list: ホスト上のスタックをリストする

  • 必須: host_id

view: スタックのComposeファイルを表示する

  • 必須: host_id, stack_name

deploy: スタックをデプロイする

  • 必須: host_id, stack_name, compose_content
  • オプション: environment, pull_images, recreate

up/down/restart/build/pull: スタックのライフサイクルを管理する

  • 必須: host_id, stack_name
  • オプション: options

ps: スタックのサービスを表示する(ステータスとポート)

  • 必須: host_id, stack_name

discover: ホスト上のComposeパスを検出する

  • 必須: host_id

logs: スタックのログを取得する

  • 必須: host_id, stack_name
  • オプション: follow, lines, services (サブセット)

migrate: スタックをホスト間で移行する

  • 必須: host_id, target_host_id, stack_name
  • オプション: remove_source, skip_stop_source, start_target, dry_run

自然言語の例:

"List all stacks on production-1"
"Deploy wordpress stack to production-1 with this compose file: <content>"
"Deploy plex to media-server with DB_PASSWORD=secret123"
"Bring up the wordpress stack on production-1"
"Take down the old-app stack on staging"
"Restart the plex stack on media-server"
"Build the development stack on staging"
"Discover compose files on production-1"
"Show logs from the wordpress stack on production-1"
"Stream live logs from plex stack on media-server"
"Show last 200 lines from api-stack logs on staging"
"Migrate wordpress from old-server to new-server"
"Do a dry run migration of plex from server1 to server2"
"Migrate database stack and remove it from the source after"

🏗 アーキテクチャ: なぜ3つの統合ツールなのか?

Docker Manager MCPは、27個の個別ツールの代わりに統合アクションパラメータパターンを使用しています。このアーキテクチャの選択には以下の利点があります。

トークン効率

  • 2.6倍の効率向上: 3つのツールは約5kトークンを使用するのに対し、27個の個別ツールは約9.7kトークンを使用します。
  • より良いスケーラビリティ: 既存のツールに新しいアクションを追加する方が、新しいツールを作成するよりも効率的です。
  • コンテキストの節約: 各ツールは約400 - 500トークンを追加しますが、統合によりこれが乗法的に削減されます。

複雑な操作のサポート

Docker管理には高度な多段階操作が必要です:

  • 移行: 停止 → 検証 → アーカイブ → 転送 → デプロイ → 検証
  • クリーンアップ: 分析 → 確認 → 実行 → 検証
  • デプロイ: 検証 → プル → 設定 → 起動 → ヘルスチェック

ハイブリッド接続モデル

異なる操作には異なるアプローチが必要です:

  • コンテナ操作: 効率のためにDockerコンテキスト(SSHトンネル経由のAPI)を使用
  • スタック操作: Composeファイル管理のために直接SSH(ファイルシステムアクセス)を使用

サービス層の利点

  • 集中的な検証: すべての操作で一貫した入力検証
  • エラーハンドリング: 統一されたエラー報告と回復
  • リソース管理: 接続プーリング、コンテキストキャッシュ、およびクリーンアップ
  • ビジネスロジック: 単純なデコレータでは処理できない複雑なオーケストレーション

技術的な詳細については、を参照してください。

💡 実世界でのユースケース

WordPressサイトのデプロイ

# compose_content for WordPress deployment
version: '3.8'
services:
  wordpress:
    image: wordpress:latest
    ports:
      - "80:80"
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_PASSWORD: secret
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: secret
    volumes:
      - db_data:/var/lib/mysql
volumes:
  db_data:

これを次の指示とともに使用します:"Deploy wordpress stack to production-1 with this compose file"

複数のホストを監視

AIアシスタントに以下のように尋ねるだけです:

  • "Show me all my Docker hosts"
  • "List all containers on each host"
  • "Show me the logs from nginx on production-1"
  • "Stream live logs from all my database containers"

緊急時のコンテナ管理

問題が発生した場合は、問題を説明するだけです:

  • "Force stop all containers on production-1"
  • "What's using port 80 on my staging server?"
  • "Restart all my web services"
  • "Show me what's currently running on production-1"

新しいホストにスタックを移行

ハードウェアアップグレード、負荷分散、または高速なストレージへの移行に最適です:

  1. 移行をテストする(ドライラン)

    "Do a dry run migration of wordpress from old-server to new-server"
    
  2. Rsync移行(汎用互換性)

    • デフォルトでは常にコンテナを停止する(安全性を最優先)
    • すべてのコンテナが完全に停止していることを検証する(データ破損を防止)
    • コンテナ停止後にファイルシステムの同期を待つ
    • すべてのボリュームとデータをアーカイブする(キャッシュ、ログ、node_modulesは除外)
    • 転送前にアーカイブの整合性を検証する
    • 圧縮を使用してrsyncで転送する
    • ターゲットホストのパスを更新する
    • ターゲットでデプロイして起動する
    • すべてのデータと構成を保持する

移行は以下を賢く処理します:

  • 名前付きDockerボリュームとバインドマウント
  • Compose構成と環境変数
  • 異なるホスト構造間のパス変換
  • 圧縮と差分同期を使用したRsync転送
  • コンテナの停止と検証によるデータの一貫性

🔧 設定(オプション!)

Docker Manager MCPの素晴らしい点は、何も設定する必要がないことです。自動的に以下のことを行います:

  • SSH設定からDockerホストを検出する
  • 安全な接続を設定する
  • 認証を管理する

ただし、カスタマイズしたい場合は以下の方法があります。

カスタムホストの追加

~/.docker-mcp/config/hosts.ymlを作成します:

hosts:
  # Production Docker Host
  production-server:
    hostname: 192.168.1.100
    user: myuser
    description: "Production Docker server"
    compose_path: /opt/compose       # Where to store compose files
    appdata_path: /opt/appdata       # Container data directory
    
  # Staging Docker Host  
  staging-server:
    hostname: 192.168.1.101
    user: myuser
    description: "Staging Docker server" 
    compose_path: /opt/compose       # Where to store compose files
    appdata_path: /opt/appdata       # Container data directory

環境変数の使用

FASTMCP_PORT=8080                                              # Change port
LOG_LEVEL=DEBUG                                                # More verbose logging
FASTMCP_DATA_DIR=/var/lib/docker-mcp/data                     # Persist OAuth tokens & runtime data
DOCKER_MCP_DATA_DIR=/var/lib/docker-mcp/data                  # Alias for tooling expecting DOCKER_MCP_*

# OAuth Authentication (Optional but Recommended)
FASTMCP_ENABLE_OAUTH=true                                     # Enable OAuth support (defaults to off)
FASTMCP_SERVER_AUTH=fastmcp.auth.GoogleProvider               # Select Google OAuth provider
FASTMCP_SERVER_AUTH_GOOGLE_CLIENT_ID=your-client-id           # Google OAuth client ID
FASTMCP_SERVER_AUTH_GOOGLE_CLIENT_SECRET=your-client-secret   # Google OAuth client secret
FASTMCP_SERVER_AUTH_GOOGLE_REDIRECT_PATH=/auth/callback       # OAuth callback path
# Or use any other FastMCP auth provider by specifying its import path

🚀 転送方法

Rsync転送の特徴:

  • 汎用互換性: 任意のLinux Dockerホストで動作します。
  • データの整合性: チェックサムによるファイルレベルの検証。
  • 増分転送: 圧縮を使用した差分同期で効率的です。
  • メタデータ: パーミッション、タイムスタンプ、および所有権を保持します。
  • 信頼性: リトライ機能を備えたファイル単位の転送。
  • ユースケース: すべてのDocker環境で汎用互換性があります。

パフォーマンス:

  • 大規模なデータセット: 効率的な差分転送により帯域幅を削減します。
  • 小規模なスタック: 最小限のオーバーヘッドで迅速な転送が可能です。
  • データベースの移行: コンテナの停止によりデータの一貫性が保証されます。

🐳 Dockerデプロイ

すでに含まれています!インストーラーがすべてを作成します:

# Check status
cd ~/.docker-mcp && docker compose ps

# View logs
cd ~/.docker-mcp && docker compose logs

# Update to latest
cd ~/.docker-mcp && docker compose pull && docker compose up -d

# Stop service
cd ~/.docker-mcp && docker compose down

🔒 組み込みのセキュリティ

  • SSHキー認証のみ(パスワードは使用しません)
  • Docker Manager専用のSSHキー(個人のキーとは分離されています)
  • 永続的なデータボリューム (FASTMCP_DATA_DIR) で、OAuth資格情報とランタイム状態を再起動間で保持します。
  • OAuth認証サポート(Google、GitHub、または任意のFastMCPプロバイダ)
  • whoami診断ツールによるID検証
  • 設定用の読み取り専用マウント
  • 乱用を防止するためのレート制限
  • 非ルートコンテナの実行
  • GitHub Actionsによる自動セキュリティ更新

OAuth認証の特徴

OAuthを有効にすると(FASTMCP_ENABLE_OAUTH=trueに設定し、FASTMCP_SERVER_AUTHを提供する):

  • 動的なプロバイダの読み込み - Google、GitHub、またはカスタム認証プロバイダを使用できます。
  • whoamiツール - 認証されたユーザーのIDとクレームを検証します。
  • 安全なトークン処理 - FastMCPの堅牢な認証フレームワークに基づいています。
  • 柔軟な構成 - 環境ベースの設定により簡単にデプロイできます。

💻 開発者向け

開発環境の迅速なセットアップ

git clone https://github.com/jmagar/docker-mcp
cd docker-mcp
uv sync
uv run docker-mcp

コードのフォーマット

uv run ruff format .
uv run ruff check . --fix

📁 中身の確認

docker-mcp/
├── docker_mcp/         # Main application
│   ├── server.py       # FastMCP server with 3 consolidated tools
│   ├── core/           # Docker & SSH management
│   ├── services/       # Business logic
│   └── tools/          # Tool implementations
├── config/             # Example configurations
├── tests/              # Comprehensive test suite
└── install.sh          # One-line installer

🆘 ヘルプが必要ですか?

コンテナが起動しない場合

AIアシスタントに以下のように尋ねるだけです:

"What's running on port 80 on my-server?"
"Show me the logs from my-app container on my-server"
"Why won't my nginx container start on production-1?"

ホストに接続できない場合

AIアシスタントにトラブルシューティングを依頼します:

"Test the connection to my staging server"
"Import all hosts from my SSH config"
"Add my new server at 192.168.1.100 to Docker Manager"

その他の問題の場合

  • ログを確認する: ~/.docker-mcp/data/logs/
  • デバッグモードを使用する: LOG_LEVEL=DEBUG
  • 問題を報告する

🎉 Docker Manager MCPの魅力

  • ゼロ設定 - 既存の設定ですぐに使用できます。
  • 汎用管理 - すべてのDockerホストを一箇所から管理できます。
  • AIフレンドリー - LLMによるインフラストラクチャのオーケストレーションに最適です。
  • 本番環境対応 - レート制限、エラーハンドリング、およびロギングが組み込まれています。
  • デフォルトで安全 - SSHキーのみを使用し、パスワードは一切使用しません。
  • 常に最新 - Dockerを通じた自動更新が行われます。

📄 ライセンス

MITライセンスです。自由に使用できます!

🚀 今すぐ始めましょう

# Install in 10 seconds
curl -sSL https://raw.githubusercontent.com/jmagar/docker-mcp/main/install.sh | bash

# That's it! Start managing your Docker infrastructure

質問がありますか? 問題を報告する - お手伝いします!

代替品

M
MCP
Microsoft公式のMCPサーバーで、AIアシスタントに最新のMicrosoft技術ドキュメントの検索と取得機能を提供します。
9.8K
5ポイント
A
Aderyn
アデリンは、Rustで書かれたオープンソースのSolidityスマートコントラクト静的分析ツールで、開発者やセキュリティ研究者がSolidityコードの脆弱性を発見するのを支援します。FoundryとHardhatプロジェクトをサポートし、複数の形式のレポートを生成でき、VSCode拡張機能も提供します。
Rust
6.3K
5ポイント
D
Devtools Debugger MCP
Node.jsデバッガーMCPサーバーは、Chrome DevToolsプロトコルに基づく完全なデバッグ機能を提供します。ブレークポイントの設定、ステップ実行、変数のチェック、式の評価などが含まれます。
TypeScript
5.6K
4ポイント
S
Scrapling
Scraplingは適応型ウェブページのスクレイピングライブラリで、ウェブサイトの変化を自動的に学習し、要素を再配置します。複数のスクレイピング方法とAI統合をサポートし、高性能な解析と開発者に優しい体験を提供します。
Python
9.5K
5ポイント
M
Mcpjungle
MCPJungleは自ホスト型のMCPゲートウェイで、複数のMCPサーバーを集中的に管理および代理し、AIエージェントに統一されたツールアクセスインターフェースを提供します。
Go
0
4.5ポイント
C
Cipher
Cipherは、プログラミングAIエージェント向けに設計されたオープンソースのメモリ層フレームワークです。MCPプロトコルを通じてさまざまなIDEとAIコーディングアシスタントと統合し、自動記憶生成、チーム記憶共有、デュアルシステム記憶管理などの核心機能を提供します。
TypeScript
0
5ポイント
N
Nexus
NexusはAIツール集約ゲートウェイで、複数のMCPサーバーとLLMプロバイダーの接続をサポートし、統一されたエンドポイントを通じてツール検索、実行、およびモデルルーティング機能を提供し、セキュリティ認証とレート制限をサポートします。
Rust
0
4ポイント
S
Shadcn Ui MCP Server
AIワークフローにshadcn/uiコンポーネントの統合を提供するMCPサーバーで、React、Svelte、Vueフレームワークをサポートし、コンポーネントのソースコード、使用例、メタデータへのアクセス機能を備えています。
TypeScript
10.2K
5ポイント
G
Gmail MCP Server
Claude Desktop用に設計されたGmail自動認証MCPサーバーで、自然言語でのやり取りによるGmailの管理をサポートし、メール送信、ラベル管理、一括操作などの完全な機能を備えています。
TypeScript
12.6K
4.5ポイント
C
Context7
Context7 MCPは、AIプログラミングアシスタントにリアルタイムのバージョン固有のドキュメントとコード例を提供するサービスで、Model Context Protocolを通じてプロンプトに直接統合され、LLMが古い情報を使用する問題を解決します。
TypeScript
47.1K
4.7ポイント
E
Edgeone Pages MCP Server
EdgeOne Pages MCPは、MCPプロトコルを通じてHTMLコンテンツをEdgeOne Pagesに迅速にデプロイし、公開URLを取得するサービスです。
TypeScript
16.6K
4.8ポイント
B
Baidu Map
認証済み
百度マップMCPサーバーは国内初のMCPプロトコルに対応した地図サービスで、地理コーディング、ルート計画など10個の標準化されたAPIインターフェースを提供し、PythonとTypescriptでの迅速な接続をサポートし、エージェントに地図関連の機能を実現させます。
Python
25.2K
4.5ポイント
G
Gitlab MCP Server
認証済み
GitLab MCPサーバーは、Model Context Protocolに基づくプロジェクトで、GitLabアカウントとのやり取りに必要な包括的なツールセットを提供します。コードレビュー、マージリクエスト管理、CI/CD設定などの機能が含まれます。
TypeScript
12.5K
4.3ポイント
U
Unity
認証済み
UnityMCPはUnityエディターのプラグインで、モデルコンテキストプロトコル (MCP) を実装し、UnityとAIアシスタントのシームレスな統合を提供します。リアルタイムの状態監視、リモートコマンドの実行、ログ機能が含まれます。
C#
15.3K
5ポイント
M
Magic MCP
Magic Component Platform (MCP) はAI駆動のUIコンポーネント生成ツールで、自然言語での記述を通じて、開発者が迅速に現代的なUIコンポーネントを作成するのを支援し、複数のIDEとの統合をサポートします。
JavaScript
14.8K
5ポイント
S
Sequential Thinking MCP Server
MCPプロトコルに基づく構造化思考サーバーで、思考段階を定義することで複雑な問題を分解し要約を生成するのに役立ちます。
Python
21.6K
4.5ポイント
AIBase
智啓未来、あなたの人工知能ソリューションシンクタンク
© 2025AIBase