autonomy) exposes one tool per platform endpoint, each a thin translation of it. They’re grouped into the domains below plus a guidance helper.
Projects
Discover, link, and initialize projects.
Tasks
Start, poll, iterate, review, and ship coding tasks.
Preview
See a finished version, or the task’s live sandbox.
Setup
Commands, env vars, validation, and the agent-driven setup chat.
Full Mode
Proxy the app’s API calls to your staging backend.
Governance
Coding standards, PR template, and project info.
Knowledge
Space Pages, workspace memories, and skills.
Sandbox
Reset a stuck project and keep its template fresh.
Conventions
- IDs - most tools take a
project_id; task tools also take atask_id. Get both fromlist_projectsandlist_tasks/get_task. - Background work -
start_task,continue_task, andcomplete_taskreturn immediately and run in the background. Pollget_taskto track them. - New task vs follow-up -
start_taskopens a new task;continue_taskadds to one that exists. Two tasks can’t be combined after the fact, so send a refinement of existing work throughcontinue_task, not a secondstart_task- except on an archived or discarded task, whichcontinue_taskrefuses. - Tool annotations describe what a tool actually does, not what it’s named for.
readOnlyHintis true only for tools that write nothing at all (e.g.list_projects,get_task_pr_diff), and most writes carryidempotentHintso a client can tell a repeatable write from a one-shot one. Note that the MCP spec defaultsdestructiveHintto true oncereadOnlyHintis false, so a write that does not set it reads as potentially destructive whether or not it is - today onlyget_taskandrefresh_pr_statusset it explicitly. Don’t infer from a missingdestructiveHintthat a tool is risky; check its description. get_taskis not read-only. For a task already sent to devs it first reconciles PR merge/close state, which can flip that task - and the project’s other recent sent tasks - to merged or closed. The write only copies what the git provider already says and repeating it changes nothing further, so it’s annotateddestructiveHint: false, idempotentHint: true. If your client still prompts for approval on non-read-only tools, allowget_taskonce in its permission settings - you poll it constantly.
Response paging
Tools that return large payloads — code diffs, message logs, agent traces, spec docs, validation output, setup files — cap each response at ~200,000 characters (roughly 50k tokens) so one call can’t dominate the calling agent’s context window. When a response is capped, it includes anext_offset field pointing at the next character to read. Pass that value back in as offset to fetch the next slice; keep calling until next_offset is null.
The tools that take an offset parameter are get_task_messages, get_task_pr_diff, get_task_spec_version, get_coding_standards, get_space_page, get_setup_validation_status, and get_setup_files. Other read tools return a bounded slice in a single call and don’t need paging.
Guidance helper
load_autonomy_skill(name) returns a built-in step-by-step playbook - no platform call. Names: setup, full-mode, tasks, troubleshooting. The server also exposes prompts: /autonomy-getting-started, /autonomy-setup, /autonomy-new-task, /autonomy-full-mode.
These reference pages are generated from the MCP server’s tool definitions, so they stay in sync with the code. If a tool’s signature changes, its page changes with it.