Skip to main content
Glama

Run workflow

run_workflow
Destructive

Run a workflow now and return the outcome: status, content_type, the workflow's output (decoded as a string; read it per content_type), and a trace_summary of which steps ran. Pass version= to test an unpublished draft (the number returned by create_workflow_version); omit for the published version. For per-block detail when debugging, call get_workflow_run_traces with the returned run_id. A workflow that runs as a chain (continuation) answers with its first run and returns chain: the rest of the job runs in the background as further runs, and its chain_id is this run_id; follow it with list_runs(chain_id) until a run says continues false.

Input Schema

NameRequiredDescriptionDefault
slugNothe workflow slug to run (provide this or workflow_id)
inputNoJSON bound as the workflow's $input for this run
versionNoexplicit version to run; 0 (default) runs the last published version. To test a draft you just created but have not published, pass the version number returned by create_workflow or create_workflow_version
datafileNooptional: a datafile slug to bind as the workflow's host context ($datafile / $data) for this run — mirroring how a dynamic endpoint binds one, so you can test a workflow that reads $datafile without wrapping it in an endpoint. Binds the datafile's current stored content (its JSON must be an object). A trailing @latest/@published is ignored.
workflow_idNothe workflow id to run (provide this or slug)

Output Schema

NameRequiredDescriptionDefault
chainNopresent only when this run started (or continued) a chain: more runs of this workflow are queued and run in the background
errorNo
outputNo
run_idYes
statusYes
messageNo
content_typeYes
trace_summaryNo
trace_truncatedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedOutput schema / properties / chain
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "present only when this run started (or continued) a chain: more runs of this workflow are queued and run in the background",
      +  "properties": {
      +    "chain_id": {
      +      "description": "the chain's id: the run_id of its first run",
      +      "type": "string"
      +    },
      +    "continues": {
      +      "description": "true if another run of the chain was queued after this one; false on the last run, when the chain has finished",
      +      "type": "boolean"
      +    },
      +    "link_index": {
      +      "description": "this run's place in the chain, 0 for the first",
      +      "maximum": 2147483647,
      +      "minimum": -2147483648,
      +      "type": "integer"
      +    },
      +    "origin": {
      +      "description": "what started the chain when it was not a schedule: mcp, schedule_manual",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "chain_id",
      +    "link_index",
      +    "continues"
      +  ],
      +  "type": [
      +    "null",
      +    "object"
      +  ]
      +}
  2. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true, openWorldHint=true and idempotentHint=false, so the agent knows this executes something with real side effects. The description adds genuinely new behavior beyond that: the chain/continuation model where the response is only the first run and the remainder executes in the background. It stops short of stating permission requirements or execution cost/latency, keeping it at a 4.

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-loaded with purpose and return shape, then constraints, then the chain caveat — good ordering. The final chain sentence is long and dense but each clause (chain field, chain_id equals run_id, list_runs polling) carries distinct, necessary information.

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?

Despite an existing output schema, the description usefully names the response keys and the content_type decoding requirement, and it closes the biggest ambiguity for an execution tool — that a chained workflow returns only the first run. Nothing an agent needs to call this correctly is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description reinforces the non-obvious version semantics (draft testing via the number from create_workflow_version, omit for published) and the output-typing instruction. It adds a little meaning beyond the schema, though slug/workflow_id/input/datafile are left to the schema.

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?

Opens with a specific verb+resource ("Run a workflow now") and immediately enumerates what is returned (status, content_type, output, trace_summary), which distinguishes it from get_workflow_run and get_workflow_run_traces. An agent can tell exactly what this tool does versus the read-back siblings.

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

Usage Guidelines5/5

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

Explicit routing: pass version=<n> only to test an unpublished draft, omit for published; call get_workflow_run_traces for per-block debugging; follow chains with list_runs(chain_id) until continues=false. These are concrete when-to-use and when-to-use-something-else statements, not inference.

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.

Resources