Skip to main content
Glama
chrishayuk

MCP Code Sandbox Server

by chrishayuk

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

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

特徴

  • コード実行用の隔離されたサンドボックス環境を作成する

  • Pythonコードを安全に実行する

  • ファイル操作(リスト、読み取り、書き込み)を実行する

  • サンドボックスにPythonパッケージをインストールする

  • 抽象化されたコードインタープリタインターフェースを備えた拡張可能なアーキテクチャ

  • 明確な関心の分離を備えたモジュール設計

Related MCP server: Sandbox MCP

建築

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

コアコンポーネント

  • 抽象インタープリタインターフェース: 異なるコード実行バックエンドを統合できる

  • サンドボックス管理: サンドボックス環境を作成および管理するためのツール

  • コード実行: コードを実行し、パッケージをインストールするためのツール

  • ファイル操作: サンドボックス内のファイルを管理するためのツール

プロジェクト構造

├── 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ライセンス

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    A secure MCP server for executing whitelisted shell commands with resource and timeout controls, designed for integration with Claude and other MCP-compatible LLMs.
    20
    389 npm
    7
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol (MCP) server that enables LLMs to run ANY code safely in isolated Docker containers.
    121
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A robust, lightweight Model Context Protocol (MCP) server designed to empower your AI Agents with context-awareness, safe execution sandboxes, and dedicated thought logs.
    -