Autonomy Docs
AI Assistants

Available actions

The 23 MCP tools for projects, test cases, test plans, runs, environments and issues.

Autonomy MCP has 23 tools, one for each HTTP API operation, with the same arguments, results and rules. A tool's name is autonomy_ plus the operation name with dots replaced by underscores: run.get is autonomy_run_get.

Projects

ToolPurpose
autonomy_project_listList the projects you can reach. Start here to find the projectId other tools take.
autonomy_project_getFetch one project, including its product knowledge.

Test cases

ToolPurpose
autonomy_test_case_listList test cases, newest first. Filter by projectId, platform or a name query. Use it before creating a case so existing coverage is reused.
autonomy_test_case_getFetch one test case with its outcome steps and their attachments.
autonomy_test_case_createCreate a test case in a project from outcome steps.
autonomy_test_case_update_stepsReplace a test case's whole step list. Always needs confirm: true.
autonomy_test_case_archiveArchive a test case. Its runs and results are kept.

Each step is an outcome in plain words (text) with a stable id and optional attachments: account, inbox, phone, file, screenshot or data. Attachments are test data unless exact is true. A data attachment can carry a value (including {{env.NAME}}), or an intent such as "A strong password" for the agent to choose one. With secret: true, the value is write-only. See Outcome steps for every field and limit.

Test plans

ToolPurpose
autonomy_test_plan_listList test plans. Filter by projectId or a name query.
autonomy_test_plan_getFetch one test plan with its ordered test cases.
autonomy_test_plan_createCreate a test plan in a project, optionally with its first test cases.
autonomy_test_plan_set_membersReplace a test plan's test cases. Needs confirm: true when cases would be removed.

Runs

ToolPurpose
autonomy_run_triggerQueue runs of one test case or one test plan, in a saved environment or against fresh targets. Returns right away.
autonomy_run_listList recent runs, newest first. Filter by projectId, testCaseId, status, environmentSlug or branch. Check here before starting duplicate work.
autonomy_run_getFetch a run's result, each step's result and what it created. Waits for a change with cursor and waitMs.
autonomy_run_step_actionsList everything the agent did to reach each step's outcome, including the Final check. Values you saved as secrets are masked.
autonomy_run_evidenceGet each step's outcome, result, explanation, Final check and short-lived screenshot and video links.

Environments

ToolPurpose
autonomy_environment_listList environments with their platform targets. Value names are shown; values never are.
autonomy_environment_getFetch one environment by slug.
autonomy_environment_upsertCreate an environment in a project, or update one by slug. Updating needs confirm: true.

Issues

ToolPurpose
autonomy_issue_listList issues, newest first. Filter by projectId, environmentSlug, status, kind, or runId for one run's issues.
autonomy_issue_createFile a Bug or Risk in the environment where it was seen, citing runs with runIds.
autonomy_issue_commentAdd a plain-text comment to an issue.
autonomy_issue_set_statusSet an issue to open, resolved or ignored.

An issue never changes a run's or a step's result.

Extra inputs on MCP

Every tool also accepts:

  • response_format: "markdown" (the default) or "json". Both come with the same structured result; this only changes the text the assistant reads. Very long text is cut at 24,000 characters; use tighter filters or a smaller limit.
  • idempotencyKey (tools that change something): optional on MCP. If the client leaves it out, Autonomy makes a new one for each call, so a retried call isn't recognized as a repeat and can do the work twice. Pass your own key when a retry must not repeat the change, such as autonomy_run_trigger.

Errors come back as a tool error with the text <CODE>: <message>, using the same error codes as the HTTP API.

Confirming replacements

Autonomy doesn't ask a second question inside MCP. Tools that would replace something need confirm: true:

  • autonomy_test_case_update_steps always, because it replaces the whole step list.
  • autonomy_test_plan_set_members when test cases would be removed.
  • autonomy_environment_upsert when the slug exists and fields or targets are given.

Without it, nothing is written. The tool returns INVALID_ARGUMENT with confirmRequired: true and a wouldChange summary. Read the summary, show it to the person if it matters, and only then call again with confirm: true. Don't add confirmation by reflex.

Follow a run

  1. Start it. Call autonomy_run_trigger with a testCaseId (or testPlanId) and an environmentSlug or targets. Keep the runIds.
  2. Wait for it. Call autonomy_run_get with the runId. Save the cursor. While next is wait, call again with that cursor and waitMs: 25000. timedOut: true only means nothing changed during the wait: call again.
  3. See what the agent did. Call autonomy_run_step_actions, with stepIndex to focus on one step. While the run is going, read again from the start whenever runCursor changes.
  4. Read the evidence. When the run ends, and especially when next is evidence, call autonomy_run_evidence. Each step has its outcome, result, explanation, Final check and media links. Links expire after 15 minutes; call the tool again for fresh ones.
  5. Check the issues. Call autonomy_issue_list with the runId to see the issues the run found or showed. They're kept apart from the result.

next is advice, not authority. Decide from status and the steps. A run ends as passed, failed, couldnt_start or cancelled. A failed step's explanation says whether the outcome wasn't reached or the agent couldn't show it was; read it before treating the failure as a bug. A step with failureCategory: "runner" failed because of Autonomy, not the app. See Runs and evidence for every field.

Trigger targets

autonomy_run_trigger accepts platforms from web, api, ios and android. Use environmentSlug when the target is saved, or targets for a fresh deployment or build, not both.

PlatformTarget fields
Webtargets.web.baseUrl
APItargets.api.baseUrl, optional targets.api.runtimeValues
iOS (coming soon)targets.ios.bundleId, plus targets.ios.artifactUrl or a scanned targets.ios.storageId
Androidtargets.android.packageName, plus targets.android.artifactUrl or a scanned targets.android.storageId

Add branch, pr and deployment.commitSha to link the runs to a pull request or commit.

OAuth scopes

ScopeTools
autonomy:readEvery list and get tool, autonomy_run_step_actions, autonomy_run_evidence
autonomy:test_cases:writeautonomy_test_case_create, autonomy_test_case_update_steps, autonomy_test_case_archive
autonomy:test_plans:writeautonomy_test_plan_create, autonomy_test_plan_set_members
autonomy:runs:writeautonomy_run_trigger
autonomy:environments:writeautonomy_environment_upsert
autonomy:issues:writeautonomy_issue_create, autonomy_issue_comment, autonomy_issue_set_status

See Organization access for how each scope appears on the consent screen.

Agent recipes

Check existing coverage

Codetext
Use Autonomy MCP to find the project for this repository, then list its relevant test cases, test plans and recent runs.
If a run already exists for this branch or PR, summarize its status before starting anything new.

Run a PR preview

Codetext
Use Autonomy MCP to run the relevant test case against this preview URL.
Pass the branch, PR number and commit SHA, and your own idempotencyKey. Wait for the run to finish, then summarize each step's result and explanation.

Diagnose a run that didn't pass

Codetext
Fetch the Autonomy run, its Step Actions and its evidence before proposing a fix.
Cite the step, its explanation, the Final check and a media link that support your conclusion.
List any issues the run found.

Didn’t find it?

On this page