Skip to main content
Glama

Cancel a design run

cancel_design_run
DestructiveIdempotent

Ask a design run to stop, for example when the brief was wrong. Returns the run as it stands right after the request. A queued run comes back 'failed' with error code 'cancelled' and never starts. A running run comes back still 'running' and stops at its next step. A run cut short settles as 'failed' with error code 'cancelled', or 'execution_failed' if saving its changes failed. It keeps any screens and theme changes it saved, listed in data.result.operations, and uses credits only when that list is not empty. A run that finishes before it stops settles as 'completed'. A run that had already settled comes back unchanged. The project stays locked until the run settles, so poll get_design_run before starting another run. A run that stopped responding settles as 'failed' with error code 'execution_timeout' 15 minutes after creation.

Input Schema

NameRequiredDescriptionDefault
runIdYesRun id from data.runId in a design result.
projectIdYesProject id from an item's id in list_projects, or data.id in create_project.

Output Schema

NameRequiredDescriptionDefault
dataYes
projectUrlYesOpen link for the project. Share it with your user.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedOutput schema / properties / data / properties / error / properties / limit
      Added value: +{
      +  "description": "The plan or credit limit that caused this error.",
      +  "enum": [
      +    "agent_access",
      +    "credits",
      +    "projects"
      +  ],
      +  "type": "string"
      +}
    • removedOutput schema / properties / data / properties / statusUrl
      Removed value: -{
      -  "description": "Relative REST path for polling this run.",
      -  "type": "string"
      -}
    • changedOutput schema / properties / data / required
      Previous value: -[
      -  "runId",
      -  "status",
      -  "statusUrl"
      -]New value: +[
      +  "runId",
      +  "status"
      +]
  2. Changed1 schema field changed
    • changedOutput schema / properties / data / properties / error / properties / url / description
      Previous value: -"Where the caller's user can resolve this error (e.g. top up credits). Relay it to the user."New value: +"Where the caller's user can resolve this error. Relay it to the user."
  3. First observed

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes far beyond the annotations by disclosing that cancellation is best-effort and asynchronous: a queued run returns 'failed'/'cancelled' and never starts, a running run returns still 'running' and stops at its next step, credits are consumed only if data.result.operations is non-empty, and the project stays locked until settlement. It also names the 15-minute execution_timeout fallback.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the action and outcome model before the state-by-state detail, so the key takeaway is immediate. It is dense and slightly long, but nearly every sentence documents a distinct terminal state, so little is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description need not explain return values, yet it still explains the asynchronous contract, credit accounting, project locking, and polling requirement. An agent has everything needed to call it correctly and handle the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both runId and projectId are already fully documented in the schema, including their sources (data.runId in a design result, list_projects/create_project). The description adds no additional parameter-level meaning beyond that baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Ask a design run to stop') and immediately gives a triggering scenario ('when the brief was wrong'). It distinguishes itself from the read-only sibling by naming get_design_run as the polling tool to use afterward.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context for when to call it ('brief was wrong') and prescribes the follow-up workflow ('poll get_design_run before starting another run'). It does not, however, state any when-not conditions or contrast against other mutation siblings like delete_project.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.