Skip to main content
Glama

Get workflow execution

get_workflow_execution
Read-only

Get a workflow execution's status, billing, timing, credits, and per-step payloads. Use fault details to diagnose why a run ended.

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.6/5.0
Behavior5/5

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

Annotations already mark readOnlyHint=true, and the description aligns with that. It adds valuable behavioral context beyond the annotations: fault semantics (user vs platform), billing implications (platform fault is never billed), and that fault is null on success. No contradictions with annotations.

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 main purpose is front-loaded in the first sentence, and subsequent sentences efficiently explain fault and billing semantics. The only slight redundancy is 'billed is the billing flag,' which adds marginal value, but overall the description is tight and information-dense.

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?

An output schema exists, so the description does not need to document return fields. It covers fault behavior, billing semantics, usage scenarios, and how it differs from a sibling tool. Nothing an agent needs to invoke the tool correctly is missing.

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 the schema already documents both parameters clearly. The description confirms the tool targets a single execution and references run_workflow, but it adds no new parameter-level syntax or format details. Baseline 3 is appropriate.

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 description explicitly states the action 'Get' and the specific resource 'one workflow execution', enumerating the returned dimensions (status, billing, timing, credits, per-step payloads). It also distinguishes the tool from list_workflow_executions by noting that the sibling omits step payloads, making the purpose unambiguous.

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 gives explicit usage guidance: 'Use this tool to poll a run or inspect each step.' It also names the relevant alternative, list_workflow_executions, and explains the key difference (omits step payloads), effectively telling the agent when not to use this tool.

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