Skip to main content
Glama

Get workflow execution

get_workflow_execution
Read-only

Retrieve a workflow execution's status, timing, credits, billing, and full per-step input/output payloads. Use it to poll a run or inspect each step.

Instructions

Get one workflow execution's status, billing, timing, credits, and full persisted per-step input/output payloads. fault explains why a non-succeeded execution ended. user means the workflow's own steps or limits. A platform fault is never billed. fault is null when the execution succeeded. billed is the billing flag. Use this tool to poll a run or inspect each step. list_workflow_executions omits step payloads.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
workflow_idYesThe workflow's UUID.
execution_idYesThe execution's UUID (from run_workflow).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYes
errorNoArbitrary JSON owned by the producing engine.
faultYesWhy a non-succeeded execution ended. User means the workflow's own steps or limits. A platform fault is never billed. This field is null when the execution succeeded.
stepsNoArbitrary JSON owned by the producing engine.
billedYesThe billing flag. True only for a user-fault succeeded, failed, or timed-out execution.
statusYes
creditsYes
ended_atYes
created_atYes
started_atYes
step_statsNoArbitrary JSON owned by the producing engine.
duration_msYes
workflow_idYes
trigger_sourceYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.16.0
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "billed": {
      +      "description": "The billing flag. True only for a user-fault succeeded, failed, or timed-out execution.",
      +      "type": "boolean"
      +    },
      +    "created_at": {
      +      "type": "string"
      +    },
      +    "credits": {
      +      "type": [
      +        "null",
      +        "integer"
      +      ]
      +    },
      +    "duration_ms": {
      +      "type": [
      +        "null",
      +        "integer"
      +      ]
      +    },
      +    "ended_at": {
      +      "type": [
      +        "null",
      +        "string"
      +      ]
      +    },
      +    "error": {
      +      "description": "Arbitrary JSON owned by the producing engine."
      +    },
      +    "fault": {
      +      "description": "Why a non-succeeded execution ended. User means the workflow's own steps or limits. A platform fault is never billed. This field is null when the execution succeeded.",
      +      "type": [
      +        "null",
      +        "string"
      +      ]
      +    },
      +    "id": {
      +      "type": "string"
      +    },
      +    "started_at": {
      +      "type": [
      +        "null",
      +        "string"
      +      ]
      +    },
      +    "status": {
      +      "type": "string"
      +    },
      +    "step_stats": {
      +      "description": "Arbitrary JSON owned by the producing engine."
      +    },
      +    "steps": {
      +      "description": "Arbitrary JSON owned by the producing engine."
      +    },
      +    "trigger_source": {
      +      "type": "string"
      +    },
      +    "workflow_id": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "id",
      +    "workflow_id",
      +    "status",
      +    "fault",
      +    "billed",
      +    "trigger_source",
      +    "started_at",
      +    "ended_at",
      +    "duration_ms",
      +    "credits",
      +    "created_at"
      +  ],
      +  "type": "object"
      +}
  2. Addedv0.1.1

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already carry the safety profile (readOnlyHint=true, openWorldHint=false), so the bar is lower, yet the description still adds non-obvious domain behavior: fault is null on success, and a platform fault is never billed. It does not cover polling cost, rate limits, or whether repeated polls are free, which keeps it short of a 5.

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?

The most important fact (what is returned) is front-loaded and the sibling differentiator closes the text. It is terse and readable, though 'billed is the billing flag' is close to filler and adds no information.

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

Completeness4/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 enumerate return values, and it instead supplies the semantic glosses an agent needs (fault, user limits, platform faults unbilled). The cryptic line 'user means the workflow's own steps or limits' is under-explained, leaving a small gap for a tool described as returning per-step payloads.

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%, and both parameters are documented in the schema (workflow_id UUID, execution_id from run_workflow). The description adds nothing about either parameter, so the baseline 3 for a fully-covered two-param schema applies.

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?

The opening sentence gives a specific verb (Get) and resource (one workflow execution) plus the exact scope of data returned: status, billing, timing, credits, and per-step payloads. The final sentence explicitly separates it from the closest sibling, list_workflow_executions, so an agent can distinguish them without opening schemas.

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?

It states the use case directly ('Use this tool to poll a run or inspect each step') and names the alternative with the condition that selects it ('list_workflow_executions omits step payloads'). The routing decision between the two tools is fully determined by the description.

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