MCP Code Sandbox Server

MCP コードサンドボックスサーバー

隔離されたサンドボックス環境で安全なコード実行機能を提供する、拡張可能なメッセージ通信プロトコル(MCP)サーバーです。このサーバーはMCP標準に準拠しており、Claude for Desktopやその他のMCPクライアントと互換性があります。

特徴

  • コード実行用の隔離されたサンドボックス環境を作成する
  • Pythonコードを安全に実行する
  • ファイル操作(リスト、読み取り、書き込み)を実行する
  • サンドボックスにPythonパッケージをインストールする
  • 抽象化されたコードインタープリタインターフェースを備えた拡張可能なアーキテクチャ
  • 明確な関心の分離を備えたモジュール設計

建築

サーバーはモジュール式の拡張可能なアーキテクチャで構築されています。

コアコンポーネント

  • 抽象インタープリタインターフェース: 異なるコード実行バックエンドを統合できる
  • サンドボックス管理: サンドボックス環境を作成および管理するためのツール
  • コード実行: コードを実行し、パッケージをインストールするためのツール
  • ファイル操作: サンドボックス内のファイルを管理するためのツール

プロジェクト構造

├── src/ │ └── sandbox/ │ ├── __pycache__/ │ ├── e2b/ │ │ ├── __pycache__/ │ │ ├── __init__.py │ │ ├── e2b_file_interface.py │ │ └── e2b_interpreter.py │ ├── __init__.py │ ├── code_interpreter.py │ ├── file_interface.py │ └── interpreter_factory.py ├── tools/ │ ├── __pycache__/ │ ├── __init__.py │ ├── code_execution_tools.py │ ├── file_tools.py │ └── sandbox_tools.py ├── main.py ├── .env ├── .gitignore ├── .python-version ├── pyproject.toml ├── README.md └── uv.lock

前提条件

  • Python 3.10以上
  • E2B API キー(デフォルトの E2B インタープリタ用)

インストール

  1. このリポジトリをクローンします:
    git clone https://github.com/yourusername/mcp-code-sandbox.git cd mcp-code-sandbox
  2. 仮想環境をセットアップします。
    # Using venv python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate # Or using uv (recommended) uv init uv venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
  3. 必要なパッケージをインストールします。
    # Using pip pip install fastmcp python-dotenv e2b-code-interpreter # Or using uv uv add fastmcp python-dotenv e2b-code-interpreter
  4. 環境変数を設定します。
    # Create a .env file with the following variables E2B_API_KEY=your_e2b_api_key_here INTERPRETER_TYPE=e2b # Default, can be changed to other implemented interpreters

使用法

サーバーをスタンドアロンで実行する

コマンドラインから直接サーバーを実行できます。

python main.py

これにより、stdio トランスポートを使用してサーバーが起動され、Claude for Desktop との互換性が確保されます。

Claude for Desktop と併用

  1. Claude for Desktopの最新バージョンがインストールされていることを確認してください
  2. Claude for Desktop の構成ファイルを開きます。
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
  3. コード サンドボックス サーバーの構成を追加します。
    { "mcpServers": { "code-sandbox": { "command": "python", "args": [ "/ABSOLUTE/PATH/TO/main.py" ] } } }
    またはuvを使用している場合:
    { "mcpServers": { "code-sandbox": { "command": "uv", "args": [ "--directory", "/ABSOLUTE/PATH/TO/PROJECT_DIRECTORY", "run", "main.py" ] } } }
  4. ファイルを保存し、Claude for Desktopを再起動します。

利用可能なツール

サーバーは次のツールを提供します。

サンドボックス管理

  • create_sandbox : 新しいサンドボックス環境を作成する
  • close_sandbox : サンドボックスを閉じてクリーンアップする
  • get_sandbox_status : サンドボックスのステータスを確認する

コード実行

  • execute_code : サンドボックスでPythonコードを実行する
  • install_package : Python パッケージをインストールする
  • create_run_close : サンドボックスを作成し、コードを実行し、クリーンアップするオールインワンツール

ファイル操作

  • list_files : サンドボックス内のファイルを一覧表示する
  • read_file : ファイルの内容を読み取る
  • write_file : ファイルにコンテンツを書き込む
  • upload_file : サンドボックスにファイルをアップロードする

新しいインタープリタによる拡張

システムは拡張性を考慮して設計されています。新しいコードインタープリターを追加するには、以下の手順に従ってください。

  1. インタープリタ実装用にsrc/sandbox/の下に新しいディレクトリを作成します。
  2. src/sandbox/code_interpreter.pysrc/sandbox/file_interface.pyで定義されたインターフェースを実装します。
  3. 新しいインタープリタタイプをsrc/sandbox/interpreter_factory.pyに追加します。
  4. 環境変数INTERPRETER_TYPEを新しいインタープリターに設定します

新しいインタープリターの実装例:

# src/sandbox/my_backend/my_interpreter.py from src.sandbox.code_interpreter import CodeInterpreter, ExecutionResult from src.sandbox.file_interface import FileInterface class MyFileInterface(FileInterface): # Implement the required methods class MyInterpreter(CodeInterpreter): # Implement the required methods # Update src/sandbox/interpreter_factory.py to include your new interpreter

モジュールの説明

サンドボックスコア ( src/sandbox/ )

  • code_interpreter.py : コードインタープリタの抽象基本クラス
  • file_interface.py : ファイル操作のための抽象インターフェース
  • interpreter_factory.py : コードインタープリタインスタンスを作成するためのファクトリー

E2B実装 ( src/sandbox/e2b/ )

  • e2b_interpreter.py : コードインタープリタのE2B実装
  • e2b_file_interface.py : ファイル操作の E2B 実装

ツール ( tools/ )

  • sandbox_tools.py : サンドボックス管理用のツール
  • code_execution_tools.py : コード実行用のツール
  • file_tools.py : ファイル操作用のツール

主な用途

  • main.py : メインアプリケーションのエントリポイント

トラブルシューティング

問題が発生した場合:

  • 選択したインタープリターの正しいAPIキーがあることを確認してください
  • 詳細なエラーメッセージについてはログを確認してください
  • 必要なパッケージがすべてインストールされていることを確認する
  • Claude for Desktop がスクリプトへの正しいパスで設定されていることを確認します

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

  • コード実行は安全のためサンドボックス環境で行われる
  • このサーバーを本番環境で信頼できないコードを実行するために使用しないでください
  • サーバーは現在認証を実装していません。信頼できる環境でのみ使用してください。

ライセンス

MITライセンス

-
security - not tested
-
license - not tested
-
quality - not tested

分離されたサンドボックス環境で安全なコード実行機能を提供する、拡張可能なメッセージ通信プロトコル サーバー。Claude for Desktop およびその他の MCP クライアントと互換性があります。

  1. Features
    1. Architecture
      1. Core Components
      2. Project Structure
    2. Prerequisites
      1. Installation
        1. Usage
          1. Running the Server Standalone
          2. Using with Claude for Desktop
        2. Available Tools
          1. Sandbox Administration
          2. Code Execution
          3. File Operations
        3. Extending with New Interpreters
          1. Module Descriptions
            1. Sandbox Core (src/sandbox/)
            2. E2B Implementation (src/sandbox/e2b/)
            3. Tools (tools/)
            4. Main Application
          2. Troubleshooting
            1. Security Considerations
              1. License
                ID: r705eifg0x