🐋 Docker MCP サーバー
自然言語でDockerを管理するためのMCPサーバー!
🪩 何ができるの?
🚀 自然言語でコンテナを作成する
🔍 実行中のコンテナの調査とデバッグ
📀 Dockerボリュームで永続データを管理する
Related MCP server: ChatGPT MCP Server
❓ これは誰向けですか?
サーバー管理者: 公開 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_containerscreate_containerrun_containerrecreate_containerstart_containerfetch_container_logsstop_containerremove_container
画像
list_imagespull_imagepush_imagebuild_imageremove_image
ネットワーク
list_networkscreate_networkremove_network
ボリューム
list_volumescreate_volumeremove_volume
🚧 免責事項
機密データ
**機密データを含むコンテナを設定しないでください。**これにはAPIキー、データベースパスワードなどが含まれます。
LLM がローカル マシン上で実行されていない限り、LLM と交換される機密データは本質的に危険にさらされます。
シークレットをコンテナに安全に渡すことに関心がある場合は、このリポジトリにユースケースを記載した問題を報告してください。
作成されたコンテナの確認
LLM が作成するコンテナを注意深く確認してください。Docker は安全なサンドボックスではないため、MCP サーバーが Docker を介してホストマシンに影響を与える可能性があります。
安全上の理由から、このMCPサーバーは--privilegedや--cap-add/--cap-dropといった機密性の高いDockerオプションをサポートしていません。これらの機能にご興味がある場合は、このリポジトリにユースケースを記載して問題を提出してください。
🛠️ 構成
このサーバーはPython Docker SDKのfrom_envメソッドを使用します。設定の詳細については、ドキュメントをご覧ください。
SSH経由でDockerに接続する
この MCP サーバーは、SSH 経由でリモート Docker デーモンに接続できます。
MCP サーバー定義でssh://ホスト URL を設定するだけです。
💻 開発
開発環境を構成するには、Devbox を使用することをお勧めします。
役立つ開発コマンドについては、 devbox.jsonを参照してください。
devbox をセットアップしたら、Claude MCP 構成を設定してそれを使用できます。