Skip to content

MCP tools

This page uses the wire’s own names (node, edge, ledger event), because that is what an agent sees. The server explains its tools itself: an agent should call read_instructions before anything else.

Read-only; nothing changes. A client may always allow these.

Tool What it answers
whoami The account the connection acts as, and the projects it reaches.
list_projects The projects the connection can open.
read_instructions How to work with unbranch: the loop, the concepts and every tool. Read it first.
read_overview The whole product at a glance: live nodes grouped by type with their delivery state, and what is in flight. It also says when a project is empty and offers an import.
read_model The canonical model in detail (live, or the full archive), stamped with asOfEventId.
read_status What is waiting on the person: proposals they have not answered and work in delivery.
list_commitments Commitments and their delivery status.
read_ledger A page of ledger events after a cursor, with hasMore and nextAfter.
list_proposals Proposals by status. With status=draft, only the caller’s own drafts.
get_proposal One proposal: its revisions, who answered what, its audit, and the exact nodes and edges accepting it would write.

These add to or advance a draft and take nothing away. A client should ask before each.

Tool What it does
write_draft Writes a whole draft (a direction, a capability, a replacement or a baseline) and answers with its url. Free.
write_revision Writes the next version of a proposal in review and leaves it waiting for the person to submit on the web. It never changes the proposal itself.
check_draft Runs the pre-review audit on a draft: duplicates, crossed constraints, delivered work undone. Uses a model credit.
submit_draft Opens the draft for review, only when the person says so. The audit runs, or its kept verdict is reused.
Tool What it does
discard_draft Throws away one of the caller’s own drafts.

There is no tool to consent, accept, reject, start delivery or verify, and there will not be. See Agents read, people decide.

A tool that has something to conclude answers with two text blocks. The first is a short lead: what it found, Next:, and where relevant Tell the person:. The second is the JSON. write_draft, write_revision and check_draft also answer with structuredContent that matches their declared outputSchema.

A refusal is not a JSON-RPC error. The call succeeds, and the tool result carries isError: true and a text block holding {statusCode, message}, plus errors on a validation failure and audit on a flagged submit. Its lead reads Refused: … and Next: ….

  • Arguments are strict: a key a tool does not declare is 400 Unrecognized key.
  • A project the connection cannot reach is 404 Project not found, whether it does not exist or you lack access.
  • A draft that is not yours is 403 Only the author edits a draft.

A draft an agent writes is marked as created by an agent, and submit_draft records its ledger event with actorType: "agent". The person’s account owns the action; the record shows the words were the model’s.