MCP Server
Drive Isorun sandboxes from any MCP-compatible client (Claude Desktop, Cursor, Zed). Speaks JSON-RPC over stdio.
The isorun package ships an MCP server CLI, isorun-mcp, that any
Model Context Protocol client can drive:
Claude Desktop, Cursor, Zed, or anything else that speaks MCP. It exposes the
canonical Isorun primitives as MCP tools over stdio.
Install
npm install -g isorun @modelcontextprotocol/sdk zodThis puts isorun-mcp on your PATH. (Install locally instead and reference the
binary by path if you prefer.)
Tools
| Tool | What it does |
|---|---|
create_sandbox | Boot a fresh sandbox, return its ID |
exec | Run a command in a sandbox |
url | Public URL for an in-sandbox port |
hibernate | Pause a sandbox to disk, free runner resources |
resume | Bring a hibernated sandbox back |
checkpoint | Snapshot a running sandbox, return a snapshot ID |
restore | Create a new sandbox from a snapshot |
list_sandboxes | List live sandboxes for the API key |
destroy_sandbox | Free a sandbox and return usage stats |
Tools take a sandboxId, so the model can create_sandbox once, run several
exec calls against that ID, then destroy_sandbox when done.
Wire into Claude Desktop
Add the server to claude_desktop_config.json:
{
"mcpServers": {
"isorun": {
"command": "isorun-mcp",
"env": {
"ISORUN_API_KEY": "isorun_live_..."
}
}
}
}Restart Claude. The model now has isorun:create_sandbox, isorun:exec,
isorun:hibernate, and the rest as native tools.
Wire into Cursor
Add to ~/.cursor/mcp.json (or your project's .cursor/mcp.json):
{
"mcpServers": {
"isorun": {
"command": "isorun-mcp",
"env": { "ISORUN_API_KEY": "isorun_live_..." }
}
}
}Wire into Zed
Add to settings.json:
{
"context_servers": {
"isorun": {
"source": "custom",
"command": {
"path": "isorun-mcp",
"env": { "ISORUN_API_KEY": "isorun_live_..." }
}
}
}
}Embed the server in your own host
buildServer() returns a configured MCP server without binding it to stdio, so
you can compose Isorun's tools with your own inside one process.
import { buildServer } from 'isorun/mcp'
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
const server = await buildServer()
// register your own tools on `server` here, then:
await server.connect(new StdioServerTransport())Next steps
- TypeScript SDK, the client the server wraps.
- Create and execute, what
create_sandboxandexecdo under the hood. - Lifecycle and hibernation, the
hibernateandresumetools.