MCP Docker Sandbox Interpreter

Integrations

  • Uses Alpine Linux as the base container image for the secure execution environment

  • Provides a secure sandbox for executing code within isolated Docker containers, with resource limitations and security restrictions

  • Includes Mermaid diagram support for visualizing the MCP server architecture and workflow

MCP Docker サンドボックス インタープリター

モデル コンテキスト プロトコル (MCP) 用の安全な Docker ベースのコード実行環境。

概要

このプロジェクトは、MCP(モデルコンテキストプロトコル)を介してコードを実行するための安全なサンドボックスを提供します。これにより、AIアシスタントはホストシステムに直接アクセスすることなく、すべてのコードを独立したDockerコンテナ内で実行することで、安全にコードを実行できます。

特徴

  • セキュア実行: 厳格なセキュリティ制限のある分離された Docker コンテナ内でコードが実行されます。
  • 多言語サポート: 現在 Python をサポートしており、他の言語への拡張も容易です。
  • リソース制限: 不正使用を防ぐためのCPUとメモリの制限
  • MCP統合:モデルコンテキストプロトコルと完全に互換性があります
  • 自動セットアップ: コンテナの作成、依存関係のインストール、クリーンアップを処理します

要件

  • Docker (デスクトップまたはエンジン)
  • Python 3.10以上
  • MCP SDK ( pip install mcp )
  • Docker Python SDK ( pip install docker )

インストール

  1. このリポジトリをクローンします:
    git clone https://github.com/yourusername/mcp-docker-interpreter.git cd mcp-docker-interpreter
  2. 仮想環境を作成してアクティブ化します。
    python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
  3. 依存関係をインストールします:
    pip install -r requirements.txt

使用法

MCPサーバーの起動

次のコマンドを実行してサーバーを起動します。

# For Colima users: export DOCKER_HOST="unix:///Users/username/.colima/default/docker.sock" # Run the server uv run mcp dev main.py

AIアシスタントへの接続

この MCP サーバーを、モデル コンテキスト プロトコルをサポートする AI アシスタントに接続できます。

カーソル

カーソルで、MCP 設定に以下を追加します。

{ "mcpServers": { "docker-sandbox": { "command": "python", "args": ["/absolute/path/to/your/main.py"], "env": { "DOCKER_HOST": "unix:///path/to/your/docker.sock" } } } }

パスを実際のファイル パスに置き換えます。

クロードデスクトップ

カーソルと同様に、Claude Desktop の MCP 設定に構成を追加します。

MCPツール

この MCP サーバーは、次の 3 つの主要なツールを公開します。

  1. initialize_sandbox : コード実行用の新しい Docker コンテナを作成する
    Arguments: - image: The Docker image to use (default: "alpine:latest")
  2. execute_code : 初期化されたサンドボックス内でコードを実行する
    Arguments: - code: The code string to execute - language: Programming language (default: "python")
  3. stop_sandbox : コンテナを停止して削除する
    No arguments needed

仕組み

  1. initialize_sandboxが呼び出されると、システムは次の処理を実行します。
    • Alpine LinuxをベースにしたDockerコンテナを作成する
    • Pythonとその他の依存関係をインストールします
    • セキュリティ制限を設定する
  2. execute_codeが呼び出されると:
    • コードは分離されたコンテナ内で実行される
    • 標準出力とエラーがキャプチャされます
    • 結果は呼び出し元のアプリケーションに返されます
  3. stop_sandboxが呼び出されると:
    • コンテナが停止し、取り外される
    • すべてのリソースが解放される

セキュリティに関する考慮事項

このサンドボックスでは、いくつかのセキュリティ対策が実装されています。

  • コンテナはCPUとメモリの使用量が制限されている
  • コンテナは最小限の権限で実行される
  • ネットワークアクセスはデフォルトで無効になっています
  • 容器は使い捨てで、使用後は清掃する

発達

プロジェクト構造

mcp-docker-interpreter/ ├── main.py # Main implementation of MCP server and Docker sandbox ├── requirements.txt # Project dependencies └── README.md # This file

新しい言語サポートの追加

新しいプログラミング言語のサポートを追加するには、 DockerSandboxクラスのrun_codeメソッドを変更して、新しい言語を処理できるようにします。

トラブルシューティング

よくある問題

  1. Docker接続エラー:
    • Dockerが実行中であることを確認する
    • Dockerインストール時にDOCKER_HOST環境変数が正しく設定されているか確認します。
  2. コンテナの作成に失敗しました:
    • Dockerコンテナを作成する権限があることを確認する
    • 指定されたベースイメージにアクセスできることを確認する
  3. コード実行に失敗しました:
    • 言語ランタイムがコンテナに正しくインストールされていることを確認する
    • 指定された言語に対してコードが有効であることを確認します

ライセンス

MITライセンス

謝辞

-
security - not tested
F
license - not found
-
quality - not tested

すべてのコードを分離されたコンテナ内で実行することで、AI アシスタントがホスト システムに直接アクセスすることなく安全にコードを実行できる、安全な Docker ベースの環境。

  1. Overview
    1. Features
      1. Requirements
        1. Installation
          1. Usage
            1. Starting the MCP Server
            2. Connecting to an AI Assistant
            3. MCP Tools
          2. How It Works
            1. Security Considerations
              1. Development
                1. Project Structure
                2. Adding New Language Support
              2. Troubleshooting
                1. Common Issues
              3. License
                1. Acknowledgements
                  ID: fqh4e3dpgp