Skip to content

MCP Server

The Ovrin MCP server exposes sandboxes as tools to any MCP-capable client — Claude Desktop, Claude Code, Cursor, VS Code, and others. The model can create a sandbox, run shell commands, execute stateful code, and read and write files, without you wiring up an SDK.

It is a thin tool layer over the ovrin SDK, so accounts, quota, and metering all apply.

Install

Run it without installing, straight from PyPI:

bash
uvx ovrin-mcp

Or install it into an environment:

bash
pip install ovrin-mcp

Create a scoped key

In the console, create a key on the API keys page with the sandboxes scope. A scoped key can only touch /sandboxes/*, so a leaked client config cannot read your usage, mint keys, or touch billing. See API Keys & Scopes.

bash
export OVRIN_API_KEY="ovrin_..."

Configure your client

json
{
  "mcpServers": {
    "ovrin": {
      "command": "uvx",
      "args": ["ovrin-mcp"],
      "env": { "OVRIN_API_KEY": "ovrin_..." }
    }
  }
}
json
{
  "mcpServers": {
    "ovrin": {
      "command": "uvx",
      "args": ["ovrin-mcp"],
      "env": { "OVRIN_API_KEY": "ovrin_..." }
    }
  }
}

Restart the client and the Ovrin tools appear.

Remote transport

stdio (above) runs the server on the client's machine. To share one server across clients or machines, run it over HTTP and point the client at the URL:

bash
ovrin-mcp --transport streamable-http --host 0.0.0.0 --port 8000
# MCP endpoint: http://<server>:8000/mcp

ovrin-mcp --transport sse --host 0.0.0.0 --port 8000
# SSE endpoint:  http://<server>:8000/sse

Terminate TLS and require authentication at the proxy before exposing it — the process holds your API key and can create compute on your account.

Tools

ToolPurpose
sandbox_createCreate a sandbox (template, timeout, payments)
sandbox_list / sandbox_getInspect sandboxes
sandbox_killTerminate and stop billing
sandbox_pause / sandbox_resume / sandbox_renewLifecycle
command_runRun a shell command
code_run / create_code_contextStateful code execution — variables survive between calls
file_read / file_write / file_list / file_searchFiles
sandbox_endpointThe public URL for a port the sandbox serves

A typical agent session: sandbox_createfile_write a script → command_run it → read the output → sandbox_kill.

Options

bash
ovrin-mcp --help
FlagDefaultPurpose
--api-keyOVRIN_API_KEYAPI key
--base-urlOVRIN_BASE_URL / https://api.ovrin.appControl plane URL
--transportstdiostdio, sse, or streamable-http
--host / --port127.0.0.1 / 8000Bind for the HTTP transports
--default-templatepythonTemplate when sandbox_create omits one
--default-timeout3600Lifetime in seconds when omitted
--max-sandboxes5Session cap
--keep-sandboxesoffDo not terminate session sandboxes on exit

Cost and safety

  • Session cap. At most --max-sandboxes (default 5) can be created per session; further creates are refused until one is killed.
  • Cleanup on exit. When the client disconnects, the server terminates the sandboxes it created this session. --keep-sandboxes disables that. Sandboxes you created through other clients are never touched.
  • Scoped key. Use a sandboxes-scoped, expiring key so the MCP process holds the least privilege it needs.
  • Prompt injection. A model driving these tools can create compute on your account. Keep the plan's concurrency limit meaningful, and review what the agent did in the console's Sandboxes page.