Docker MCP サーバー
分離された Docker コンテナ内でコードを実行し、その結果を Claude などの言語モデルに返す強力なモデル コンテキスト プロトコル (MCP) サーバー。
特徴
分離されたコード実行: メインシステムから分離されたDockerコンテナでコードを実行します
多言語サポート: Dockerイメージを使用して任意の言語でコードを実行
複雑なスクリプトのサポート: 単純なコマンドと完全な複数行のスクリプトの両方を実行
パッケージ管理: pip、npm、apt-get、apk を使用して依存関係をインストールします
コンテナ管理: Dockerコンテナを簡単に作成、一覧表示、クリーンアップ
堅牢なエラー処理: 適切なタイムアウト管理とフォールバックメカニズム
カラフルな出力: 明確で色分けされたコンソールフィードバック
Related MCP server: MCP Development Server
要件
Python 3.9以上
Dockerがインストールされ実行中
fastmcpライブラリ
インストール
このリポジトリをクローンします:
git clone https://github.com/yourusername/docker_mcp_server.git cd docker_mcp_server仮想環境を作成します。
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate必要なパッケージをインストールします。
pip install -r requirements.txt
使用法
MCPインスペクターの実行
サーバーの機能をテストして調査するには:
MCP Inspector インターフェイスがブラウザのhttp://localhost:5173で開きます。
利用可能なツール
Docker MCP サーバーは次のツールを提供します。
1. コンテナの一覧
すべての Docker コンテナとその詳細を一覧表示します。
パラメータ:
show_all: (オプション) 停止しているコンテナも含め、すべてのコンテナを表示するかどうか (デフォルト: True)
2. コンテナを作成する
オプションの依存関係を持つ Docker コンテナを作成して起動します。
パラメータ:
image: 使用する Docker イメージ (例: "python:3.9-slim", "node:16")container_name: コンテナの一意の名前dependencies: (オプション) インストールするパッケージのスペース区切りリスト (例: "numpy pandas", "express lodash")
3. 依存関係を追加する
既存の Docker コンテナに追加パッケージをインストールします。
パラメータ:
container_name: 対象コンテナの名前dependencies: インストールするパッケージのスペース区切りリスト
4. コードを実行する
実行中の Docker コンテナ内でコマンドを実行します。
パラメータ:
container_name: 対象コンテナの名前command: コンテナ内で実行するコマンド
5. Pythonスクリプトを実行する
実行中の Docker コンテナ内で複数行の Python スクリプトを実行します。
パラメータ:
container_name: 対象コンテナの名前script_content: Pythonスクリプトの完全な内容script_args: スクリプトに渡すオプションの引数
6. クリーンアップコンテナ
Docker コンテナを停止して削除します。
パラメータ:
container_name: クリーンアップするコンテナの名前
例
基本的なワークフローの例
Python データ分析の例
Node.jsの例
パッケージマネージャーのサポート
Docker MCP サーバーは適切なパッケージ マネージャーを自動的に検出して使用します。
Pythonコンテナ:
pipを使用するNode.jsコンテナ:
npmを使用Debian/Ubuntuコンテナ:
apt-get使用アルパインコンテナ:
apkを使用
イメージ名からパッケージ マネージャーが明らかでないコンテナーの場合、サーバーは利用可能なパッケージ マネージャーを検出しようとします。
クロードと他のLLMとの統合
このMCPサーバーは、Claudeやモデルコンテキストプロトコルをサポートする他のLLMと統合できます。Claudeに登録するには、 fastmcp installコマンドを使用してください。
トラブルシューティング
ポートは既に使用されています: 「アドレスは既に使用されています」というエラーが表示される場合は、他の MCP Inspector インスタンスが実行されていないことを確認してください。
Docker 接続の問題:
docker --versionを使用して Docker が実行されていることを確認します。コンテナのタイムアウト: サーバーには、予期された時間内に応答しないコンテナのためのフォールバック メカニズムが含まれています。
パッケージのインストール失敗: 指定されたパッケージ マネージャーのパッケージ名が正しいことを確認してください。
コンテナーが見つかりません: list_containers に結果が表示されない場合は、Docker にまだコンテナーが作成されていない可能性があります。
セキュリティに関する考慮事項
このサーバーはDockerコンテナ内でコードを実行するため、ホストシステムから分離されます。ただし、以下の点にご注意ください。
追加のセキュリティ対策を講じずにこのサーバーを公開しないでください
ホストボリュームをコンテナにマウントするときは注意してください
DoS攻撃を防ぐためにコンテナのリソース制限を検討する
ライセンス
貢献
貢献を歓迎します!お気軽にプルリクエストを送信してください。