5%
4 vCPUs
219 / 3943 MB
6% used
1.3G / 3.9G
34% used
0s
since boot
84
running
1077122
agent process
Your agents need a sandbox.
Not your production server.
Secure microVMs. ~125 ms boot. Per-agent isolation. MCP server + REST API built into every sandbox.
Secure microVMs
for agent workloads.
When your agents run untrusted code — web scraping, file manipulation, arbitrary tool calls — they shouldn’t share your infrastructure. Sandcastle gives every agent its own isolated, disposable VM. Boots in ~125 ms. Dies when the agent is done. Nothing persists. Nothing leaks.
Built on a hardware-accelerated KVM hypervisor. Kernel-level isolation, not container-level. Each VM gets its own Linux kernel, memory space, and network stack.
Three images.
Pick your level.
Every Sandcastle image extends the one below it. You never pay for capabilities you don’t use. Pick the smallest image that runs your agent — boot times scale down with the stack.
base
Minimal LinuxL1Filesystem tools. Network access. For simple computation and data processing.
- Package managers (apt, npm, pip)
- Network stack (curl, wget)
- MCP Server (12 tools)
- REST API
browserbase
extends baseL2Everything in base, plus a full headless browser. For web agents.
- Headless Chromium
- Screenshot capture
- Accessibility tree extraction
- JavaScript execution
- DOM navigation and interaction
dev-machine
extends browserbaseL3Everything in browserbase, plus a full dev environment. For complex autonomous agents.
- Full build toolchain (gcc, make, cmake)
- Language runtimes (Node 20, Python 3.11, Go, Rust)
- LiveKit audio capture and streaming
- Extended filesystem (4GB)
- Higher resource limits (4 vCPU, 4GB RAM)
Every sandbox
speaks MCP.
Model Context Protocol is the standard interface between AI agents and tools. Every Sandcastle VM ships with a full MCP server — 12 tools, zero configuration. Connect any agent, any framework, any platform.
12 tools. One endpoint.
Ready at boot.
When a Sandcastle VM boots, an MCP server starts on :3000 automatically. It exposes 12 tools that cover everything an agent typically needs inside a sandbox. No installation. No setup. No tool registration. Your agent connects and starts calling tools in seconds.
web_searchSearch the web and return structured results
screenshotCapture a screenshot of any URL or the current page
extract_textExtract readable text from a web page
file_readRead a file from the VM filesystem
file_writeWrite or create a file on the VM filesystem
file_listList directory contents
code_execExecute code (Node, Python, bash) in the sandbox
browser_navigateNavigate the headless browser to a URL
browser_clickClick an element on the current page
browser_typeType text into a form field
accessibility_treeGet the full accessibility tree of the current page
js_executeExecute arbitrary JavaScript in the browser context
tools/list# request
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "tools/list",
"id": 1
}'MCP is a real, standard protocol — not a proprietary API. Anything that speaks JSON-RPC 2.0 over HTTP or SSE can call it.
Works with your stack.
Not instead of it.
MCP is an open protocol. Sandcastle doesn’t care what’s on the other end — a Vero agent, a CrewAI crew, a LangGraph workflow, Claude Desktop, Cursor, or a bash script. If it speaks MCP, it gets tools.
// claude_desktop_config.json or .claude/settings.json
{
"mcpServers": {
"sandcastle": {
"url": "http://sandcastle-vm:3000/mcp",
"transport": "sse"
}
}
}
# Or via CLI
claude --mcp-server http://sandcastle-vm:3000/mcpSame VM. Same tools. Same isolation. The only thing that changes is what’s connecting to it.
Zero-config
when you use the runtime.
If you’re running agents on the Vero runtime, you don’t configure MCP at all. When an agent’s workspace specifies execution: sandcastle, the runtime handles the full sandbox lifecycle behind the scenes.
name: researcher
model: claude-sonnet-4-20250514
execution: sandcastle
image: dev-machine
tools:
- web_search
- screenshot
- extract_text
- file_ops
- code_exec- 1Agent run triggers
- 2Runtime boots VM
- 3MCP server starts
- 4Tool calls route through sandbox
- 5Results return to agent
- 6VM terminates
The agent’s code doesn’t change. It calls web_search or screenshot the same way it always does.
MCP for agents.
REST for everything else.
The MCP server handles tool calls from agents. But sometimes you need to interact with the sandbox from outside an agent loop — a CI pipeline, a monitoring script, a dashboard. That’s what the REST API on :8080 is for.
# Health check
curl http://sandcastle-vm:8080/health
# → {"status":"ok","uptime":"4m 32s","agent":"research-agent-01"}
# List running processes
curl http://sandcastle-vm:8080/processes
# → {"count":84,"top":[{"pid":12,"cmd":"mcp-server"},{"pid":18,"cmd":"api-server"},...]}
# Trigger a tool call via REST (alternative to MCP)
curl -X POST http://sandcastle-vm:8080/tools/web_search \
-d '{"query":"latest AI research papers"}'
# Get agent status
curl http://sandcastle-vm:8080/agent/status
# → {"agent_id":"research-agent-01","status":"running","tools_called":7,"uptime":"4m"}
# Stream events (SSE)
curl -N http://sandcastle-vm:8080/events
# → data: {"type":"tool_call","tool":"web_search","timestamp":"..."}
# → data: {"type":"tool_result","tool":"web_search","status":"ok","timestamp":"..."}Not just MCP.
Beyond the MCP server and REST API, every Sandcastle VM ships with capabilities that cover the common agent workloads.
MMDS Secret Injection
API keys, tokens, credentials — injected at boot via the hypervisor metadata service. Never written to disk. Never in environment variables. Vanishes when the VM dies.
Headless Chromium
Full browser automation without installing anything. Navigate, click, type, screenshot, extract text, run JavaScript, read the accessibility tree. Drives the MCP browser tools under the hood.
LiveKit Audio Streaming
Capture and stream audio from within the VM. Built for voice agent workloads — real-time STT processing, call recording, audio analysis. Integrates with any LiveKit-compatible client.
Kernel-level isolation.
Not container-level.
Containers share a kernel. If one breaks out, it can reach others. Sandcastle VMs don’t share a kernel. Each VM gets its own. A compromised agent can’t reach another agent’s memory, filesystem, or network. It can’t even see it exists.
Hardware-isolated microVM
KVM-accelerated hypervisor. Minimal attack surface. Hardware virtualization per VM.
Own kernel per VM
No shared kernel. No container escape risk.
No shared filesystem
Each VM has its own disk. Nothing mounts from the host.
MMDS secrets
Injected at boot via metadata service. Not in env vars. Not on disk. Gone when the VM dies.
Network egress controls
Per-VM network policy. Restrict what domains the agent can reach.
Auto-terminate
VMs die on idle timeout or max lifetime. No zombie processes. No leaked resources.
Run it our way.
Or yours.
Vero-hosted
defaultWe manage the microVM fleet. You call the API. VMs spin up on our infrastructure. Zero ops.
Self-hosted
Deploy on your own bare-metal or Proxmox infrastructure. Same Sandcastle software. Your data never leaves your network.
Hybrid
Vero-hosted for burst capacity. Self-hosted for sensitive workloads. Same API, same images, same tools.
Per-second billing.
No minimums.
Pay for what you use. VM-seconds, measured from boot to termination. No idle charges (VMs auto-terminate). No per-seat pricing. No “contact us” for the self-serve tier.
Pro
- All images (base, browserbase, dev-machine)
- Priority support
- Custom images (coming)
* Exact Pro pricing TBD. Early access members get first look.
Get a sandbox.
Sandcastle is in early access. Request access and get a free allocation of VM-seconds to try it with your agents.