Skip to main content
Glama

MCP Docker Sandbox Interpreter

by svngoku

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

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

概要

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

graph LR A[Claude/Cursor] -->|Sends Code| B[MCP Server] B -->|Executes Code| C[Docker Sandbox] C -->|Returns Results| A

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 )

インストール

  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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/svngoku/mcp-docker-code-interpreter'

If you have feedback or need assistance with the MCP directory API, please join our Discord server