Soba Docs

Get started

Set it up with your agent

Install the Soba skill, connect the MCP server, and let the coding agent you already have open do the integration — read the checklist, make the edits, and confirm each step landed.

Soba's integration is two edits in your repo. The thing best placed to make them is the coding agent already sitting in that repo, so there are two pieces that put Soba in front of it: a skill, which teaches it the integration, and an MCP server, which lets it read and change this app's setup.

They are independent. The skill works on its own; the server makes the skill better by giving it the real checklist instead of a description of one.

1. The skill#

Terminal
npx skills add https://soba.so/skill

Run it once in your repo root. It writes a SKILL.md into your agent's skills directory — .claude/skills/ for Claude Code, .agents/skills/ for most others — and it works for any agent the skills CLI supports.

What it carries is the half no dashboard can do for you: which files the two edits belong in, the shape of the session route, and the one fact an agent must never guess — that the user id on every request is resolved on your server, from your session, and never from the request body. An id the browser can choose is an id any user can use to spend somebody else's compute.

2. The MCP server#

Terminal
claude mcp add soba -- npx -y @soba-so/mcp --token mk_soba_…

The Integrate page in your dashboard prints this line with a key already in it. The token is a management key: it configures your app and cannot spend anything, cannot serve a run, and cannot act as one of your users.

With it connected, your agent stops guessing at what is left:

Tool
soba_status The checklist and which steps are done
soba_next_step The first outstanding one, with an instruction written for an agent
soba_create_key Mints your app's secret key, once
soba_set_connect_url Points Connect back at your app
soba_create_plan Creates a plan from numbers you gave it

There is also a prompt, /soba:set_up in Claude Code, which runs the whole loop: read the checklist, do the next step, read it back, repeat.

3. Tell it to go#

Set this project up on Soba.

The skill takes it from there. It does not need to be told whether this is an existing app or a new one — it can see which it is looking at, and if there is no app yet it runs npx create-soba@latest rather than writing one from memory.

What it will not do

It will not invent a price. Plans, allowances and what connecting a machine earns back are decisions about your business, so it asks before calling soba_create_plan. It will not put your key anywhere but .env.local, and it checks that file is gitignored first. And it cannot pair a machine for you — that is a person installing the Soba app on their own laptop and approving it.

How the step finishes#

The integrate step ticks when a request arrives from your app's own call site. Not when the diff is written, not when the pull request merges, and not on a curl: the gateway stamps a key at authentication, so it cannot tell a test request from a deployment. Run your app and use it.

Doing it by hand#

Everything above is a faster route to the same place. If you would rather type it yourself, the Quickstart is four steps and the Integrate pages are the reference.

© 2026 Soba resolved = machine grant ∩ broker request