trackmcp
Back to directory
Tsuchijo

sandbox-mcp

View on GitHub

Sandbox MCP Server

17 stars PythonOthers Updated Jan 25, 2026

Documentation

Sandbox MCP Server

An MCP server that provides isolated Docker environments for code execution. This server allows you to:

  • Create containers with any Docker image
  • Write and execute code in multiple programming languages
  • Install packages and set up development environments
  • Run commands in isolated containers

Prerequisites

  • Python 3.9 or higher
  • Docker installed and running
  • uv package manager (recommended)
  • Docker MCP server (recommended)

Installation

1. Clone this repository:

bash
git clone 
cd sandbox_server

2. Create and activate a virtual environment with uv:

bash
uv venv
source .venv/bin/activate  # On Unix/MacOS
# Or on Windows:
# .venv\Scripts\activate

3. Install dependencies:

bash
uv pip install .

Integration with Claude Desktop

1. Open Claude Desktop's configuration file:

  • macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
  • Windows: `%APPDATA%\Claude\claude_desktop_config.json`

2. Add the sandbox server configuration:

json
{
    "mcpServers": {
        "sandbox": {
            "command": "uv",
            "args": [
                "--directory",
                "/absolute/path/to/sandbox_server",
                "run",
                "sandbox_server.py"
            ],
            "env": {
                "PYTHONPATH": "/absolute/path/to/sandbox_server"
            }
        }
    }
}

Replace `/absolute/path/to/sandbox_server` with the actual path to your project directory.

3. Restart Claude Desktop

Usage Examples

Basic Usage

Once connected to Claude Desktop, you can:

1. Create a Python container:

code
Could you create a Python container and write a simple hello world program?

2. Run code in different languages:

code
Could you create a C program that calculates the fibonacci sequence and run it?

3. Install packages and use them:

code
Could you create a Python script that uses numpy to generate and plot some random data?

Saving and Reproducing Environments

The server provides several ways to save and reproduce your development environments:

Creating Persistent Containers

When creating a container, you can make it persistent:

code
Could you create a persistent Python container with numpy and pandas installed?

This will create a container that:

  • Stays running after Claude Desktop closes
  • Can be accessed directly through Docker
  • Preserves all installed packages and files

The server will provide instructions for:

  • Accessing the container directly (`docker exec`)
  • Stopping and starting the container
  • Removing it when no longer needed

Saving Container State

After setting up your environment, you can save it as a Docker image:

code
Could you save the current container state as an image named 'my-ds-env:v1'?

This will:

1. Create a new Docker image with all your:

    2. Provide instructions for reusing the environment

    You can then share this image or use it as a starting point for new containers:

    code
    Could you create a new container using the my-ds-env:v1 image?

    Generating Dockerfiles

    To make your environment fully reproducible, you can generate a Dockerfile:

    code
    Could you export a Dockerfile that recreates this environment?

    The generated Dockerfile will include:

    • Base image specification
    • Created files
    • Template for additional setup steps

    You can use this Dockerfile to:

    1. Share your environment setup with others

    2. Version control your development environment

    3. Modify and customize the build process

    4. Deploy to different systems

    For reproducible development environments:

    1. Create a persistent container:

    code
    Create a persistent Python container for data science work

    2. Install needed packages and set up the environment:

    code
    Install numpy, pandas, and scikit-learn in the container

    3. Test your setup:

    code
    Create and run a test script to verify the environment

    4. Save the state:

    code
    Save this container as 'ds-workspace:v1'

    5. Export a Dockerfile:

    code
    Generate a Dockerfile for this environment

    This gives you multiple options for recreating your environment:

    • Use the saved Docker image directly
    • Build from the Dockerfile with modifications
    • Access the original container if needed

    Security Notes

    • All code executes in isolated Docker containers
    • Containers are automatically removed after use
    • File systems are isolated between containers
    • Host system access is restricted

    Project Structure

    code
    sandbox_server/
    ├── sandbox_server.py     # Main server implementation
    ├── pyproject.toml        # Project configuration
    └── README.md            # This file

    Available Tools

    The server provides three main tools:

    1. `create_container_environment`: Creates a new Docker container with specified image

    2. `create_file_in_container`: Creates a file in a container

    3. `execute_command_in_container`: Runs commands in a container

    4. `save_container_state`: Saves the container state to a persistent container

    5. `export_dockerfile`: exports a docker file to create a persistant environment

    6. `exit_container`: closes a container to cleanup environment when finished

    Frequently asked questions

    What is sandbox-mcp?

    sandbox-mcp is Sandbox MCP Server

    How do I install sandbox-mcp?

    Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

    Is sandbox-mcp open source?

    Yes — it is hosted on GitHub at https://github.com/Tsuchijo/sandbox-mcp and has 17 stars.

    Related MCP tools

    Run your own MCP server? See who uses it and what to fix.

    Measure it with TrackMCP