Reference
Babbit MCP tools
The Babbit MCP is the only way an agent touches your product. Every tool below, grouped by the work it's for, with the agents allowed to call it.
#Connection
| Item | Value |
|---|
| Server address | https://newdev-mcp.babbit.dev/mcp |
| Transport | Streamable HTTP |
| Sign-in for outside clients | OAuth, approved in the browser on Babbit's Allow page |
| Server name in setup commands | newdev |
To connect a client, see Work from Claude Code or Codex.
#Rules every call follows
- A call carries a token and the tool's own arguments, nothing else. Babbit mints a token for every run, bound to the agent, the project, the change, the workspace and the tier. The MCP looks up everything else by id; it never takes a change's state, an approval or evidence from the call.
- Each tool checks one rule before it acts. A refusal is one sentence the agent reads, saying what to do next.
- Every call is logged, allowed or refused, in a log that only grows.
- A token dies with its workspace. A call with a token whose workspace has ended is refused.
- A tool that writes takes a request key. Sending the same call again does the work once.
- Writing code and proving it are kept apart. The session that wrote the code never records its evidence or promotes it.
The Callers column lists who may call each tool: Babbit's agents (Product, Code Writing, Verify, QA), outside clients such as Claude Code, and Babbit's own runner, the platform calling its own tools.
#Every run
| Tool | Callers | What it does |
|---|
run.read | All agents | Returns what the run must know about itself: its agent and task, the change, the repositories and their revisions, the approved spec change, the scenarios to prove, the deadline, and its section of agents.md, which it follows. |
skill.load | All agents, outside | Returns one of the skills the run pinned when it started, and its reference files. Outside clients get only Code Writing's skills. |
#The spec
| Tool | Callers | What it does |
|---|
spec.read | All agents, outside | Reads the spec at the revision the change sees, pending proposals included: the feature tree, or one feature's goals, scenarios, schema and boxes. |
spec.propose | Product, Code Writing, outside | Proposes exact edits to the spec for a person to approve. Each edit names an object and gives its value before and after. Nothing is written until a person approves. |
#Building a change
| Tool | Callers | What it does |
|---|
code.write | Code Writing | Has a fast one-shot model write long code with nothing left to decide, limited to the files the call names. |
secret.use | Code Writing, Verify, QA | Returns a handle for a secret, by name, for a command to use. The agent never sees the value. A missing value becomes a gate on the change. |
change.handoff | Code Writing, outside | Hands the change off once the work and its checks are done. Babbit checks every changed repository and opens the pull requests, or says exactly what to fix. |
#Reviewing a change
| Tool | Callers | What it does |
|---|
review.read | Verify | Reads what to capture: the versions before and after, the scenarios the change touches, the plan saved for this version and the captures still missing. |
review.record | Verify | Records the capture plan, then the screenshots and videos for each visible scenario. |
#Onboarding
| Tool | Callers | What it does |
|---|
onboarding.save | Product | Saves one capability, or a patch of the architecture map, with the source lines that show it. |
onboarding.finish | Product | Hands the saved draft to the project's owner, with anything the agent couldn't place. |
#Subagents
These tools are granted to an agent whose Subagents setting is on, in a project that allows subagents.
| Tool | What it does |
|---|
agent.start | Starts another agent on one bounded task, in its own copy of the source. |
task.get | Reads a started task's status and final answer. |
task.send | Sends a message to a started agent while it works. |
task.cancel | Stops a started agent and every agent it started. |
#Starting and following changes
| Tool | Callers | What it does |
|---|
change.start | Outside | Starts a change from one sentence, as if typed in the app. With writer outside, makes the caller the change's writer. |
change.read | Outside | Reads a change by id: its stage, what it waits for or why it stopped, its lines, pull requests and evidence. With no id, lists the project's open changes. |
change.open | QA | Opens a change for one finding, with the steps that reproduce it and up to four captures, for a person to review. |
#Babbit's runner
Babbit calls these itself, during Verify and landing. No agent may call them, so no agent can choose which tests count.
| Tool | What it does |
|---|
change.scenarios | Reads what a change must prove: the scenarios it adds or edits, and the ones its code touches. |
tests.run | Runs the test for each named scenario at the pull request head, and keeps every attempt. Takes scenario ids, never test names. |
evidence.record | Attaches passing runs to the change as evidence, by run id. |
shape.check | Checks each code pull request's head against the shape rules and posts newdev/shape. |
#Refusals
Each refusal is a sentence that tells the agent what's wrong and what to do. Some examples:
| Situation | The agent reads |
|---|
| The token is unknown. | Unknown token. Connect this client again from Manage › MCP. |
| The workspace has ended. | Not allowed: this token's fork has ended; a new run gets a new token. |
| The agent isn't granted the tool. | Not allowed: this agent does not have this tool. |
| An outside client calls a tool not granted to outside clients. | Not allowed: an outside client gets only the tools granted to outside clients; this one is not. |
| A proposal targets another change. | Not allowed: lines go only into the change this token was made for, while it is proposed or in review. |
| A secret isn't available in the agent's tier. | Not allowed: a handle only for a name this change's services read, in a tier this agent acts in. |