Docs
Open Babbit

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

ItemValue
Server addresshttps://newdev-mcp.babbit.dev/mcp
TransportStreamable HTTP
Sign-in for outside clientsOAuth, approved in the browser on Babbit's Allow page
Server name in setup commandsnewdev

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.

Tools

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

ToolCallersWhat it does
run.readAll agentsReturns 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.loadAll agents, outsideReturns one of the skills the run pinned when it started, and its reference files. Outside clients get only Code Writing's skills.

The spec

ToolCallersWhat it does
spec.readAll agents, outsideReads the spec at the revision the change sees, pending proposals included: the feature tree, or one feature's goals, scenarios, schema and boxes.
spec.proposeProduct, Code Writing, outsideProposes 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

ToolCallersWhat it does
code.writeCode WritingHas a fast one-shot model write long code with nothing left to decide, limited to the files the call names.
secret.useCode Writing, Verify, QAReturns 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.handoffCode Writing, outsideHands 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

ToolCallersWhat it does
review.readVerifyReads 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.recordVerifyRecords the capture plan, then the screenshots and videos for each visible scenario.

Onboarding

ToolCallersWhat it does
onboarding.saveProductSaves one capability, or a patch of the architecture map, with the source lines that show it.
onboarding.finishProductHands 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.

ToolWhat it does
agent.startStarts another agent on one bounded task, in its own copy of the source.
task.getReads a started task's status and final answer.
task.sendSends a message to a started agent while it works.
task.cancelStops a started agent and every agent it started.

Starting and following changes

ToolCallersWhat it does
change.startOutsideStarts a change from one sentence, as if typed in the app. With writer outside, makes the caller the change's writer.
change.readOutsideReads 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.openQAOpens 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.

ToolWhat it does
change.scenariosReads what a change must prove: the scenarios it adds or edits, and the ones its code touches.
tests.runRuns the test for each named scenario at the pull request head, and keeps every attempt. Takes scenario ids, never test names.
evidence.recordAttaches passing runs to the change as evidence, by run id.
shape.checkChecks 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:

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