Chiprun
Quickstart
From zero to firmware running on a virtual chip. Free tier, no credit card.
1. Get an API key
Create an account and verify your email, then mint a key. Keys look like urdb_live_… and are shown once — store it somewhere safe.
2. Connect your agent
Chiprun is an HTTP MCP server at https://urdb.io/mcp. For Claude Code:
claude mcp add --transport http urdb https://urdb.io/mcp \ --header "Authorization: Bearer urdb_live_YOUR_KEY"
For Claude Desktop, Cursor, and other clients that take the standard mcpServers schema:
{
"mcpServers": {
"urdb": {
"url": "https://urdb.io/mcp",
"headers": { "Authorization": "Bearer urdb_live_YOUR_KEY" }
}
}
}3. Verify the connection
Ask your agent to call chiprun_help with no arguments. It returns the workflow, the live board list, per-chip gotchas, and your remaining daily quota. Always call it first — it carries fixes that no documentation page can stay ahead of.
4. Run a hello world
Clone the examples repo — a ready-to-run hello-world per board, plus an AGENTS.md your agent reads to drive the whole loop. Then tell it what you want:
Set up Chiprun and run a hello world on lm3s6965evb.
The agent cross-compiles an ELF for thumbv7m-none-eabi, requests an upload slot, PUTs the binary, and runs it. The run returns inline:
{
"status": "succeeded",
"board": "lm3s6965evb",
"uart_output": "Hello world!\n",
"virtual_time_s": 5,
"time_bounding": "approximate"
}Doing it by hand
The upload step is a plain HTTP PUT, so nothing stops you from driving it yourself. Request a slot with chiprun_create_firmware_upload, then:
curl -X PUT "$UPLOAD_URL" \ -H "Content-Type: application/octet-stream" \ --data-binary @firmware.elf
Then call chiprun_run_firmware with the board key and the firmware_id from the slot.