Code Sandbox

by chrishayuk

5 stars
Not rated
GitHub

About

Provides secure, isolated Python code execution environments with modular architecture for running untrusted code, testing solutions, generating visualizations, and performing file operations through multiple backend options including E2B and Firecracker microVMs.

Details

Author
chrishayuk
Repository
chrishayuk/mcp-code-sandbox
GitHub stars
5
Categories
Developer Tools, AI, Design, File Management, Security, Infrastructure, Frontend, Database

- Create isolated sandbox environments for code execution
- Execute Python code securely
- Perform file operations (listing, reading, writing)
- Install Python packages in the sandbox
- Extensible architecture with abstracted code interpreter interface
- Modular design with clean separation of concerns

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Code Sandbox
    Command (node, npx, python, etc.) python
    Arguments
    • Argument 1 /ABSOLUTE/PATH/TO/main.py

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

You can run the server directly from the command line:

python main.py

This will start the server using the stdio transport, making it compatible with Claude for Desktop.

create_sandbox

Create a new sandbox environment.

close_sandbox

Close and clean up a sandbox.

get_sandbox_status

Check status of sandboxes.

execute_code

Run Python code in a sandbox.

install_package

Install a Python package.

create_run_close

All-in-one tool that creates a sandbox, runs code, and cleans up.

list_files

List files in the sandbox.

read_file

Read the contents of a file.

write_file

Write content to a file.

upload_file

Upload a file to the sandbox.

The server provides the following tools:

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "code sandbox": {
            "env": {},
            "args": [
                "/ABSOLUTE/PATH/TO/main.py"
            ],
            "command": "python"
        }
    }
}

Linux

{
    "env": [],
    "args": [
        "/ABSOLUTE/PATH/TO/main.py"
    ],
    "command": "python"
}

Macos

{
    "env": [],
    "args": [
        "/ABSOLUTE/PATH/TO/main.py"
    ],
    "command": "python"
}

Windows

{
    "env": [],
    "args": [
        "/ABSOLUTE/PATH/TO/main.py"
    ],
    "command": "python"
}

MCP Code Sandbox Server

An extensible Message Communication Protocol (MCP) server that provides secure code execution capabilities in isolated sandbox environments. This server follows the MCP standard, making it compatible with Claude for Desktop and other MCP clients.

Features

- Create isolated sandbox environments for code execution
- Execute Python code securely
- Perform file operations (listing, reading, writing)
- Install Python packages in the sandbox
- Extensible architecture with abstracted code interpreter interface
- Modular design with clean separation of concerns

Architecture

The server is built with a modular, extensible architecture:

Core Components

- Abstract Interpreter Interface: Allows different code execution backends to be integrated
- Sandbox Administration: Tools for creating and managing sandbox environments
- Code Execution: Tools for running code and installing packages
- File Operations: Tools for managing files within sandboxes

Project Structure

├── 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

Prerequisites

- Python 3.10 or higher
- E2B API key (for the default E2B interpreter)

Installation

1. Clone this repository:

   git clone https://github.com/yourusername/mcp-code-sandbox.git
cd mcp-code-sandbox

2. Set up a virtual environment:

   # 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. Install the required packages:

   # Using pip
pip install fastmcp python-dotenv e2b-code-interpreter

# Or using uv
uv add fastmcp python-dotenv e2b-code-interpreter

4. Configure environment variables:

   # 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

Usage

Running the Server Standalone

You can run the server directly from the command line:

python main.py

This will start the server using the stdio transport, making it compatible with Claude for Desktop.

Using with Claude for Desktop

1. Make sure you have the latest version of Claude for Desktop installed

2. Open your Claude for Desktop configuration file:
- macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
- Windows: %APPDATA%\Claude\claude_desktop_config.json

3. Add your code sandbox server configuration:

   {
"mcpServers": {
"code-sandbox": {
"command": "python",
"args": [
"/ABSOLUTE/PATH/TO/main.py"
]
}
}
}

Or if you're using uv:

   {
"mcpServers": {
"code-sandbox": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/PROJECT_DIRECTORY",
"run",
"main.py"
]
}
}
}

4. Save the file and restart Claude for Desktop

Available Tools

The server provides the following tools:

Sandbox Administration

- create_sandbox: Create a new sandbox environment - close_sandbox: Close and clean up a sandbox - get_sandbox_status: Check status of sandboxes

Code Execution

- execute_code: Run Python code in a sandbox - install_package: Install a Python package - create_run_close: All-in-one tool that creates a sandbox, runs code, and cleans up

File Operations

- list_files: List files in the sandbox - read_file: Read the contents of a file - write_file: Write content to a file - upload_file: Upload a file to the sandbox

Extending with New Interpreters

The system is designed to be extensible. To add a new code interpreter:

1. Create a new directory under src/sandbox/ for your interpreter implementation
2. Implement the interfaces defined in src/sandbox/code_interpreter.py and src/sandbox/file_interface.py
3. Add the new interpreter type to the src/sandbox/interpreter_factory.py
4. Configure the environment variable INTERPRETER_TYPE to your new interpreter

Example of implementing a new interpreter:

```python

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.