Skip to main content
Glama

ToolForte

Run a saved workflow

workflow_run

Run one saved workflow by id and return what every step produced. Get the id and the input keys from workflow_list. Each step costs the credits its own tool costs, normally 1 per step, and the credit for this call counts as the first step's rather than being charged on top. Steps run in order and stop at the first failure; the result says which step stopped it and what was spent up to that point. Check the "substitutions" field when it is present: it lists values a step supplied that the tool replaced with its own, which means the run succeeded on a value you did not send. Requires an API key, because a workflow belongs to an account. Get a free key at https://toolforte.com/developers and send it on the MCP connection as the header Authorization: Bearer tf_...

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
inputsNoValues for the workflow's declared inputs, keyed by the input key that workflow_list reports. Omit for a workflow that declares none.
workflowIdYesThe id of a workflow from workflow_list.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
okNoWhether the run completed
nameNo
runIdNo
stepsNoWhat each step produced
outputNoThe final output of the workflow
resultNoThe result, when it is not an object
stepsRunNo
durationMsNo
workflowIdNo
stepsDefinedNo
creditsChargedNoCredits spent by this call

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • removedInput schema / $schema
      Removed value: -"https://json-schema.org/draft/2020-12/schema"
    • removedOutput schema / $schema
      Removed value: -"https://json-schema.org/draft/2020-12/schema"
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "https://json-schema.org/draft/2020-12/schema",
      +  "additionalProperties": {},
      +  "properties": {
      +    "creditsCharged": {
      +      "description": "Credits spent by this call",
      +      "type": "number"
      +    },
      +    "durationMs": {
      +      "type": "number"
      +    },
      +    "name": {
      +      "type": "string"
      +    },
      +    "ok": {
      +      "description": "Whether the run completed",
      +      "type": "boolean"
      +    },
      +    "output": {
      +      "additionalProperties": {},
      +      "description": "The final output of the workflow",
      +      "properties": {},
      +      "type": "object"
      +    },
      +    "result": {
      +      "description": "The result, when it is not an object"
      +    },
      +    "runId": {
      +      "type": "string"
      +    },
      +    "steps": {
      +      "description": "What each step produced",
      +      "items": {},
      +      "type": "array"
      +    },
      +    "stepsDefined": {
      +      "type": "number"
      +    },
      +    "stepsRun": {
      +      "type": "number"
      +    },
      +    "workflowId": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  3. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -{
      -  "$schema": "https://json-schema.org/draft/2020-12/schema",
      -  "additionalProperties": {},
      -  "properties": {
      -    "creditsCharged": {
      -      "description": "Credits spent by this call",
      -      "type": "number"
      -    },
      -    "durationMs": {
      -      "type": "number"
      -    },
      -    "name": {
      -      "type": "string"
      -    },
      -    "ok": {
      -      "description": "Whether the run completed",
      -      "type": "boolean"
      -    },
      -    "output": {
      -      "additionalProperties": {},
      -      "description": "The final output of the workflow",
      -      "properties": {},
      -      "type": "object"
      -    },
      -    "result": {
      -      "description": "The result, when it is not an object"
      -    },
      -    "runId": {
      -      "type": "string"
      -    },
      -    "steps": {
      -      "description": "What each step produced",
      -      "items": {},
      -      "type": "array"
      -    },
      -    "stepsDefined": {
      -      "type": "number"
      -    },
      -    "stepsRun": {
      -      "type": "number"
      -    },
      -    "workflowId": {
      -      "type": "string"
      -    }
      -  },
      -  "type": "object"
      -}New value: +null
  4. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "https://json-schema.org/draft/2020-12/schema",
      +  "additionalProperties": {},
      +  "properties": {
      +    "creditsCharged": {
      +      "description": "Credits spent by this call",
      +      "type": "number"
      +    },
      +    "durationMs": {
      +      "type": "number"
      +    },
      +    "name": {
      +      "type": "string"
      +    },
      +    "ok": {
      +      "description": "Whether the run completed",
      +      "type": "boolean"
      +    },
      +    "output": {
      +      "additionalProperties": {},
      +      "description": "The final output of the workflow",
      +      "properties": {},
      +      "type": "object"
      +    },
      +    "result": {
      +      "description": "The result, when it is not an object"
      +    },
      +    "runId": {
      +      "type": "string"
      +    },
      +    "steps": {
      +      "description": "What each step produced",
      +      "items": {},
      +      "type": "array"
      +    },
      +    "stepsDefined": {
      +      "type": "number"
      +    },
      +    "stepsRun": {
      +      "type": "number"
      +    },
      +    "workflowId": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  5. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the annotations: credit accounting (per-step cost, first-step credit rule), execution semantics (ordered, stops at first failure, reports the failing step and spend), the 'substitutions' caveat, and full auth requirements including the exact header format. Destructive=false and non-idempotent behavior are effectively contextualized by the run-to-failure description.

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 core action in the first sentence and every subsequent sentence carries real information (cost, failure behavior, substitutions, auth). It is dense and runs long for a single-tool description, but there is little filler.

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 return values need not be enumerated, yet the description still explains the meaningful 'substitutions' signal. Combined with the cost, failure, and authentication details, an agent has everything needed to call this correctly.

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 parameters are already documented in the schema, including the workflow_list linkage and the omit-when-none rule. The description adds almost nothing new about parameter syntax or format, so the baseline 3 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?

States a specific verb and resource ('Run one saved workflow by id') plus the return shape ('what every step produced'). It is clearly separable from workflow_list (which supplies the id) and workflow_propose.

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?

Explicitly routes the agent to workflow_list for both the id and the input keys, and tells it when inputs may be omitted. It does not, however, contrast itself against run_tool or state when a workflow is preferable to invoking steps directly.

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