hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Integrations
Allows management of Docker with natural language, including composing containers, introspecting running containers, and managing Docker volumes, networks, and images.
Allows deployment of MySQL containers through natural language commands.
Allows deployment of NGINX containers through natural language commands.
🐋 Docker MCP サーバー
自然言語でDockerを管理するためのMCPサーバー!
🪩 何ができるの?
- 🚀 自然言語でコンテナを作成する
- 🔍 実行中のコンテナの調査とデバッグ
- 📀 Dockerボリュームで永続データを管理する
❓ これは誰向けですか?
- サーバー管理者: 公開 Web サイトの管理などのためにリモート Docker エンジンに接続します。
- Tinkerers: コンテナをローカルで実行し、Docker をサポートするオープンソース アプリを試します。
- AI 愛好家の皆さん、LLM の能力の限界を押し広げましょう!
デモ
自然言語を使用した WordPress の展開を示す簡単なデモ:
https://github.com/user-attachments/assets/65e35e67-bce0-4449-af7e-9f4dd773b4b3
🏎️ クイックスタート
インストール
クロードデスクトップ
MacOSの場合: ~/Library/Application\ Support/Claude/claude_desktop_config.json
Windows の場合: %APPDATA%/Claude/claude_desktop_config.json
uv
がインストールされていない場合は、システムのインストール手順に従ってください: link
次に、MCP サーバー ファイルに次のコードを追加します。
便宜上、サーバーは Docker コンテナ内で実行できます。
このリポジトリをクローンした後、Docker イメージをビルドします。
次に、MCP サーバー ファイルに次のコードを追加します。
Docker ソケットをボリュームとしてマウントすることに注意してください。これにより、MCP サーバーがローカル Docker デーモンに接続して制御できるようになります。
📝 プロンプト
🎻 docker_compose
自然言語を使ってコンテナを作成します。デモは上記をご覧ください。
プロジェクト名と必要なコンテナの説明を入力し、残りの作業は LLM に任せましょう。
このプロンプトは、LLMにplan+apply
ループに入るよう指示します。LLMとのやり取りは、以下の手順で行われます。
- LLMにどのコンテナを起動するか指示を与える
- LLMは簡潔な自然言語計画を計算し、それをあなたに提示します
- 次のいずれかを実行します。
- 計画を適用する
- LLMにフィードバックを提供すると、LLMが計画を再計算します
例
- 名前:
nginx
、コンテナ: 「ポート 9000 で公開する nginx コンテナをデプロイする」 - 名前:
wordpress
、コンテナ: 「WordPress コンテナとそれをサポートする MySQL コンテナをデプロイし、Wordpress をポート 9000 で公開する」
プロジェクトの再開
このプロンプトを使用して新しいチャットを開始すると、LLM は指定されたプロジェクトname
で作成されたすべてのコンテナー、ボリューム、およびネットワークのステータスを受け取ります。
これは主に、多くのコンテナを担当していたチャットが失われた場合にクリーンアップするのに役立ちます。
📔 リソース
サーバーは、コンテナごとにいくつかのリソースを実装します。
- 統計: コンテナの CPU、メモリなど
- ログ: コンテナからいくつかのログを tail する
🔨 ツール
コンテナ
list_containers
create_container
run_container
recreate_container
start_container
fetch_container_logs
stop_container
remove_container
画像
list_images
pull_image
push_image
build_image
remove_image
ネットワーク
list_networks
create_network
remove_network
ボリューム
list_volumes
create_volume
remove_volume
🚧 免責事項
機密データ
**機密データを含むコンテナを設定しないでください。**これにはAPIキー、データベースパスワードなどが含まれます。
LLM がローカル マシン上で実行されていない限り、LLM と交換される機密データは本質的に危険にさらされます。
シークレットをコンテナに安全に渡すことに関心がある場合は、このリポジトリにユースケースを記載した問題を報告してください。
作成されたコンテナの確認
LLM が作成するコンテナを注意深く確認してください。Docker は安全なサンドボックスではないため、MCP サーバーが Docker を介してホストマシンに影響を与える可能性があります。
安全上の理由から、このMCPサーバーは--privileged
や--cap-add/--cap-drop
といった機密性の高いDockerオプションをサポートしていません。これらの機能にご興味がある場合は、このリポジトリにユースケースを記載して問題を提出してください。
🛠️ 構成
このサーバーはPython Docker SDKのfrom_env
メソッドを使用します。設定の詳細については、ドキュメントをご覧ください。
💻 開発
開発環境を構成するには、Devbox を使用することをお勧めします。
役立つ開発コマンドについては、 devbox.json
を参照してください。
devbox をセットアップしたら、Claude MCP 構成を設定してそれを使用できます。
This server cannot be installed
自然言語で Docker コンテナを管理できる MCP サーバー。ユーザーは自分でコマンドを実行しなくてもコンテナを作成、イントロスペクト、デバッグできます。
- 🪩 What can it do?
- ❓ Who is this for?
- Demo
- 🏎️ Quickstart
- 📝 Prompts
- 📔 Resources
- 🔨 Tools
- 🚧 Disclaimers
- 🛠️ Configuration
- 💻 Development