MCP Docker サンドボックス インタープリター
モデル コンテキスト プロトコル (MCP) 用の安全な Docker ベースのコード実行環境。
概要
このプロジェクトは、MCP(モデルコンテキストプロトコル)を介してコードを実行するための安全なサンドボックスを提供します。これにより、AIアシスタントはホストシステムに直接アクセスすることなく、すべてのコードを独立したDockerコンテナ内で実行することで、安全にコードを実行できます。
Related MCP server: Python MCP Sandbox
特徴
セキュア実行: 厳格なセキュリティ制限のある分離された Docker コンテナ内でコードが実行されます。
多言語サポート: 現在 Python をサポートしており、他の言語への拡張も容易です。
リソース制限: 不正使用を防ぐためのCPUとメモリの制限
MCP統合:モデルコンテキストプロトコルと完全に互換性があります
自動セットアップ: コンテナの作成、依存関係のインストール、クリーンアップを処理します
要件
Docker (デスクトップまたはエンジン)
Python 3.10以上
MCP SDK (
pip install mcp)Docker Python SDK (
pip install docker)
インストール
このリポジトリをクローンします:
git clone https://github.com/yourusername/mcp-docker-interpreter.git cd mcp-docker-interpreter仮想環境を作成してアクティブ化します。
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate依存関係をインストールします:
pip install -r requirements.txt
使用法
MCPサーバーの起動
次のコマンドを実行してサーバーを起動します。
AIアシスタントへの接続
この MCP サーバーを、モデル コンテキスト プロトコルをサポートする AI アシスタントに接続できます。
カーソル
カーソルで、MCP 設定に以下を追加します。
パスを実際のファイル パスに置き換えます。
クロードデスクトップ
カーソルと同様に、Claude Desktop の MCP 設定に構成を追加します。
MCPツール
この MCP サーバーは、次の 3 つの主要なツールを公開します。
initialize_sandbox : コード実行用の新しい Docker コンテナを作成する
Arguments: - image: The Docker image to use (default: "alpine:latest")execute_code : 初期化されたサンドボックス内でコードを実行する
Arguments: - code: The code string to execute - language: Programming language (default: "python")stop_sandbox : コンテナを停止して削除する
No arguments needed
仕組み
initialize_sandboxが呼び出されると、システムは次の処理を実行します。Alpine LinuxをベースにしたDockerコンテナを作成する
Pythonとその他の依存関係をインストールします
セキュリティ制限を設定する
execute_codeが呼び出されると:コードは分離されたコンテナ内で実行される
標準出力とエラーがキャプチャされます
結果は呼び出し元のアプリケーションに返されます
stop_sandboxが呼び出されると:コンテナが停止し、取り外される
すべてのリソースが解放される
セキュリティに関する考慮事項
このサンドボックスでは、いくつかのセキュリティ対策が実装されています。
コンテナはCPUとメモリの使用量が制限されている
コンテナは最小限の権限で実行される
ネットワークアクセスはデフォルトで無効になっています
容器は使い捨てで、使用後は清掃する
発達
プロジェクト構造
新しい言語サポートの追加
新しいプログラミング言語のサポートを追加するには、 DockerSandboxクラスのrun_codeメソッドを変更して、新しい言語を処理できるようにします。
トラブルシューティング
よくある問題
Docker接続エラー:
Dockerが実行中であることを確認する
Dockerインストール時にDOCKER_HOST環境変数が正しく設定されているか確認します。
コンテナの作成に失敗しました:
Dockerコンテナを作成する権限があることを確認する
指定されたベースイメージにアクセスできることを確認する
コード実行に失敗しました:
言語ランタイムがコンテナに正しくインストールされていることを確認する
指定された言語に対してコードが有効であることを確認します
ライセンス
謝辞
このプロジェクトはモデルコンテキストプロトコルを使用しています