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.

Create a free account

2. Connect your agent

Chiprun is an HTTP MCP server at https://urdb.io/mcp. For Claude Code:

terminal
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:

mcp config
{
  "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:

prompt
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:

result
{
  "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:

terminal
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.