OpenSandbox MCP Sandbox Server
1. Overview
OpenSandbox MCP Server exposes the OpenSandbox Python SDK as MCP tools for Claude Code, Cursor, and other MCP-capable clients. It provides focused sandbox lifecycle management, command execution, and text file operations.
2. Installation & Startup
Source
uv sync
uv run opensandbox-mcp
Package
pip install opensandbox-mcp
opensandbox-mcp
Configuration
Environment variables:
OPEN_SANDBOX_API_KEYOPEN_SANDBOX_DOMAIN
CLI overrides:
opensandbox-mcp --api-key ... --domain ... --protocol https
Config fields:
api_key: OpenSandbox API key for authentication.domain: OpenSandbox API domain, for exampleapi.opensandbox.io.protocol:httporhttpsfor API requests.request_timeout_seconds: HTTP request timeout in seconds.transport:stdioby default, orstreamable-http.use-server-proxy: when present, forces the SDK client to use server proxy mode.
Streamable HTTP
opensandbox-mcp \
--transport streamable-http \
--host 0.0.0.0 \
--port 8000
The HTTP transport defaults to 127.0.0.1:8000. Set --host 0.0.0.0 when
the MCP server must be reached from another container, and use --port to
select a different listening port. Keep the default loopback host unless the
container network or an upstream gateway protects the exposed endpoint.
3. Integrations
Claude Code stdio
claude mcp add opensandbox-sandbox --transport stdio -- \
opensandbox-mcp --api-key "$OPEN_SANDBOX_API_KEY" --domain "$OPEN_SANDBOX_DOMAIN"
Claude Code http
claude mcp add opensandbox-sandbox --transport http http://localhost:8000/mcp
Cursor stdio
{
"mcpServers": {
"opensandbox-sandbox": {
"command": "opensandbox-mcp",
"args": [
"--api-key",
"${OPEN_SANDBOX_API_KEY}",
"--domain",
"${OPEN_SANDBOX_DOMAIN}"
]
}
}
}
Cursor http
{
"mcpServers": {
"opensandbox-sandbox": {
"url": "http://localhost:8000/mcp"
}
}
}
4. Tools
Notes:
- All tools operate on a
sandbox_idreturned bysandbox_createorsandbox_connect. file_read/file_writeare text-only; useencodingandrange_headerfor large files.
Sandbox
sandbox_create: create a new sandbox and register it locallysandbox_connect: attach to an existing sandbox and register it locallysandbox_kill: terminate a sandbox by IDsandbox_get_info: fetch sandbox info by IDsandbox_list: list sandboxes with optionalfilterobjectsandbox_renew: extend sandbox expirationsandbox_healthcheck: check if sandbox is healthysandbox_get_metrics: get resource metricssandbox_get_endpoint: get network endpoint for a port
Command Execution
command_run: run a command inside a sandboxcommand_interrupt: interrupt a running command
Filesystem
file_read: read a text filefile_write: write a text filefile_delete: delete filesfile_search: search for files by globfile_create_directories: create directoriesfile_delete_directories: delete directoriesfile_move: move/rename files or directoriesfile_replace_contents: replace file content
5. Minimal Workflow
sandbox_create-> keep thesandbox_id.file_writecode or assets into the sandbox.command_runto execute, install dependencies, or start a service.sandbox_get_endpointif you expose a port.sandbox_killwhen finished.
6. Usage Examples
Here are some examples of what you can ask an LLM to do:
- "Create a Python sandbox and run a quick health command."
- "Write a Python script into the sandbox and run it."
- "Download a GitHub repo, install dependencies, and run its tests."
- "Generate a CSV file with fake sales data and run a simple summary script."
- "Start a tiny web server on port 8000 and return the public URL."
- "Build a minimal REST API (hello + health) and expose it on port 8000."
- "Create a tar.gz of /app and report the file size."
- "Build a simple Snake game and return the web endpoint where it can be accessed."
Metadata
Release files for opensandbox-mcp 1.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| opensandbox_mcp-1.1.1.tar.gz | 16.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| opensandbox_mcp-1.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 35.6 kB
Release files / opensandbox_mcp-1.1.1.tar.gz
| Download URL | opensandbox_mcp-1.1.1.tar.gz |
|---|---|
| Size | 16.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4eb8d1f57365b0b7e7117199f49a7e050e45ad7dbc99ab9d7d69b5bea98cd47d
|
|
BLAKE2b-256 checksum How to use checksums |
f1ba244e70d3d37738a4e0ae95d32531059a46cb203892bfe9dc2853c2dc485d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / opensandbox_mcp-1.1.1-py3-none-any.whl
| Download URL | opensandbox_mcp-1.1.1-py3-none-any.whl |
|---|---|
| Size | 19.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
233af77ec3082d0539d179dd558923dc67b037072e486b2baa98684aa02e6453
|
|
BLAKE2b-256 checksum How to use checksums |
6dbce898a6f44cf5fe7faa1dcfc1c8319ac32f512edeae6b5081ad019df400f2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|