Sandbox MCP
Sandbox MCP is a Model Context Protocol (MCP) server that enables LLMs (MCP hosts/clients) to run code in secure, isolated Docker containers.
While LLMs are really good at generating code, most can't run the code they generate. You end up running this untested code directly on your machine, which could have drastic unintended consequences.
Giving LLMs the tools to test the code safely prevents such issues and helps you generate more accurate code in fewer iterations.
Sandbox MCP gives the LLMs an easy-to-use execution environment that anyone can create and configure through a simple, AI-native MCP server that runs locally.
Inspired by Codapi. Some sandboxes are the same as Codapi sandboxes.
Sandbox MCP can be used for many different tasks, including but not limited to:
This demo shows how Sandbox MCP works with Claude Desktop.
Try the video if the GIF isn't clear.
You can download the appropriate binary for your operating system (for example, Darwin
) and processor architecture (arm64
) from the Releases page (sandbox-mcp_Darwin_arm64.tar.gz
).
Prerequisites:
go install github.com/pottekkat/sandbox-mcp/cmd/sandbox-mcp@latest
Get the path to the sandbox-mcp
binary:
which sandbox-mcp
See the Development section.
Before you use sandbox-mcp
with LLMs, you need to initialize its configuration:
# Create the configuration directory in # $XDG_CONFIG_HOME/sandbox-mcp and pull # the default sandboxes from GitHub sandbox-mcp --pull # Build the Docker images for the sandboxes sandbox-mcp --build
[!NOTE] Make sure you have Docker installed and running.
Add this to your claude_desktop_config.json
for Claude Desktop or mcp.json
for Cursor IDE:
{ "mcpServers": { "sandbox-mcp": { "command": "path/to/sandbox-mcp", "args": [ "--stdio" ] } } }
[!NOTE] Make sure to replace
path/to/sandbox-mcp
with the actual path to thesandbox-mcp
binary.
Sandbox | Description |
---|---|
shell | A secure, isolated Linux environment for running lightweight commands that does not require network access. |
python | Safely execute Python code in a secure, isolated environment. |
rust | Compile and run Rust code in an isolated environment. |
network-tools | Use various network utilities in an isolated Linux sandbox. Perfect for network diagnostics and troubleshooting. See https://github.com/jonlabelle/docker-network-tools for a list of available tools. |
go | Run Go code securely in an isolated environment with network access. |
javascript | Run JavaScript code in an isolated environment using Node.js. |
apisix | Run a lightweight instance of Apache APISIX, which can be configured through a YAML file and can be interacted through the curl command provided in the main.sh file. For example, curl -sI http://127.0.0.1:9080/ip . |
java | Compile and run Java code in an isolated sandbox. Supports Java preview features. |
[!IMPORTANT]
Your Own Sandbox
You can create and add your own sandboxes in
$XDG_CONFIG_HOME/sandbox-mcp/sandboxes
. A sandbox is essentially a Dockerfile and a JSON configuration. Check out the examples and the guide to learn more.
Fork and clone the repository:
git clone https://github.com/username/sandbox-mcp.git
Change into the directory:
cd sandbox-mcp
Install dependencies:
make deps
Build the project:
make build
Update your MCP servers configuration to point to the local build:
{ "mcpServers": { "sandbox-mcp": { "command": "/path/to/sandbox-mcp/dist/sandbox-mcp", "args": [ "--stdio" ] } } }
Discover shared experiences
Shared threads will appear here, showcasing real-world applications and insights from the community. Check back soon for updates!