Docker Sandbox Interpreter
STDIOA secure Docker-based code execution environment for the Model Context Protocol.
A secure Docker-based code execution environment for the Model Context Protocol.
A secure Docker-based code execution environment for the Model Context Protocol (MCP).
This project provides a secure sandbox for executing code through MCP (Model Context Protocol). It allows AI assistants to safely run code without requiring direct access to the host system, by executing all code within isolated Docker containers.
graph LR A[Claude/Cursor] -->|Sends Code| B[MCP Server] B -->|Executes Code| C[Docker Sandbox] C -->|Returns Results| A
pip install mcp
)pip install docker
)Clone this repository:
git clone https://github.com/yourusername/mcp-docker-interpreter.git cd mcp-docker-interpreter
Create and activate a virtual environment:
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
Install dependencies:
pip install -r requirements.txt
Start the server by running:
# For Colima users: export DOCKER_HOST="unix:///Users/username/.colima/default/docker.sock" # Run the server uv run mcp dev main.py
You can connect this MCP server to AI assistants that support the Model Context Protocol:
In Cursor, add the following to your MCP settings:
{ "mcpServers": { "docker-sandbox": { "command": "python", "args": ["/absolute/path/to/your/main.py"], "env": { "DOCKER_HOST": "unix:///path/to/your/docker.sock" } } } }
Replace the paths with your actual file paths.
Similar to Cursor, add the configuration to Claude Desktop's MCP settings.
This MCP server exposes three main tools:
initialize_sandbox: Creates a new Docker container for code execution
Arguments:
- image: The Docker image to use (default: "alpine:latest")
execute_code: Runs code in the initialized sandbox
Arguments:
- code: The code string to execute
- language: Programming language (default: "python")
stop_sandbox: Stops and removes the container
No arguments needed
When initialize_sandbox
is called, the system:
When execute_code
is called:
When stop_sandbox
is called:
This sandbox implements several security measures:
mcp-docker-interpreter/
├── main.py # Main implementation of MCP server and Docker sandbox
├── requirements.txt # Project dependencies
└── README.md # This file
To add support for a new programming language, modify the run_code
method in the DockerSandbox
class to handle the new language.
Docker connection error:
Container creation fails:
Code execution fails: