Skip to main content
Glama

Workflow Setup

workflow.setup
Idempotent

Provisions one new table and routing rule, plus an optional new inbox and published logical splitter, in an existing owned project. With dry_run: true, validates ownership, table-name collisions, and splitter conflicts without creating resources; blocked previews return blockers. Both preview and apply require mcp:write. Repeating the same intent resumes saved progress.

Input Schema

NameRequiredDescriptionDefault
goalYesShort statement of the requested workflow (10–2000 characters after trimming). The structured fields specify the configuration; the goal alone is not enough.
inboxNoOptional new email inbox. classify uses project routing rules; direct routes to the table created by this intent. Omit to leave existing inboxes unchanged.
tableYesOne new extraction table and its columns. An integer id primary key is added automatically. Reusing an existing table is not supported by this operation.
dry_runNoSet true to validate ownership and configuration conflicts and preview steps without creating resources. False (the default) applies the intent. Both modes require mcp:write.
projectYesExisting owned project in which to provision this workflow.
routing_ruleYesNew classification rule targeting the table created by this intent; tableId is assigned automatically.
logical_splitterNoOptional logical splitter to create and publish for the new inbox, or for project uploads when inbox is omitted. Uses project routing rules to choose destinations.

Output Schema

NameRequiredDescriptionDefault
goalYes
statusYesOne of: preview, blocked, active, in_progress, partial
blockersNo
setup_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changed
    • addedInput schema / properties / dry_run / description
      Added value: +"Set true to validate ownership and configuration conflicts and preview steps without creating resources. False (the default) applies the intent. Both modes require mcp:write."
    • addedInput schema / properties / goal / description
      Added value: +"Short statement of the requested workflow (10–2000 characters after trimming). The structured fields specify the configuration; the goal alone is not enough."
    • addedInput schema / properties / inbox / description
      Added value: +"Optional new email inbox. classify uses project routing rules; direct routes to the table created by this intent. Omit to leave existing inboxes unchanged."
    • addedInput schema / properties / logical_splitter / description
      Added value: +"Optional logical splitter to create and publish for the new inbox, or for project uploads when inbox is omitted. Uses project routing rules to choose destinations."
    • addedInput schema / properties / project / description
      Added value: +"Existing owned project in which to provision this workflow."
    • addedInput schema / properties / project / properties / existing_slug / description
      Added value: +"Owned project slug. Setup never creates a project."
    • addedInput schema / properties / routing_rule / description
      Added value: +"New classification rule targeting the table created by this intent; tableId is assigned automatically."
    • addedInput schema / properties / table / description
      Added value: +"One new extraction table and its columns. An integer id primary key is added automatically. Reusing an existing table is not supported by this operation."
  2. First observed

TDQS

A4.1/5.0
Behavior5/5

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

Annotations already declare readOnly=false, destructive=false, idempotent=true, and openWorld=false, but the description goes further: it discloses the mcp:write permission requirement, the exact validation surface of dry_run (ownership, table-name collisions, splitter conflicts), that blocked previews return blockers, and that repeating the same intent resumes saved progress. That last point independently corroborates the idempotentHint with concrete mechanism.

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?

Four dense sentences, purpose front-loaded, with dry_run behavior and auth requirement following in priority order. No filler, though the final sentence about resume behavior could be folded into the dry_run discussion for tighter flow.

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?

For a 7-parameter composite mutation tool with nested objects, the description covers safety profile, preview semantics, auth, and repeat-invocation behavior, and an output schema exists so return values need no explanation. The remaining gap is the absence of routing guidance relative to the individual create/publish sibling tools.

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 every parameter including nested objects is already documented in the schema; the description adds no syntax, format, or constraint detail beyond what is there. Baseline 3 is correct when the schema does the heavy lifting.

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

Purpose4/5

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

States a specific verb ('Provisions') and enumerates the exact resources created (table, routing rule, optional inbox, published logical splitter), so the composite nature of the operation is clear. It does not explicitly name the sibling tools (tables.create, routing_rules.create, splitters.create_logical) it bundles, leaving the agent to infer that this is the one-shot alternative.

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?

Gives clear operational context: must be an existing owned project, both preview and apply require mcp:write, and dry_run:true is the preview path. However, it never states when to prefer this composite tool over calling the individual sibling tools, which is the most likely routing decision an agent faces.

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.