Skip to main content
Glama

wait_route

Read-only

Block until a route finishes or timeout, then report outcome, messages moved, rate, and failure cause; avoids polling exit_on_empty jobs.

Instructions

Block until a route finishes, then report how it ended. Use this instead of polling route_status for a job started with exit_on_empty: it costs one tool call regardless of how long the job runs. Returns finished (false if timeout_ms elapsed first — the route is left running), the outcome, the total messages moved and the rate achieved. An outcome of failed carries the cause in error. Default timeout 60000 ms, maximum 18000000 ms.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesThe route name.
timeout_msNoHow long to wait before giving up and returning `finished: false`, in milliseconds. Defaults to 60000; values above 18000000 are clamped. The route keeps running when the wait times out.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.3

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only declare readOnlyHint, so the description carries the rest and does so well: the route is left running on timeout, `finished: false` signals the timeout case, and a `failed` outcome carries the cause in `error`. It also discloses the blocking semantics and timeout limits, which are behavioral traits beyond the safety hint.

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, front-loaded sentences with no filler; the core behavior and the sibling routing come first. The final sentence restating the timeout default/maximum duplicates schema content and is the one slightly redundant line.

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?

There is no output schema, so the description takes on the return-value burden and covers it: `finished`, `outcome`, messages moved, rate achieved, and error propagation. Combined with the timeout semantics, an agent has everything needed to call and interpret 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 coverage is 100%, and the timeout default, clamp, and 'route keeps running' semantics are already documented in the schema's own parameter description. The description largely repeats that, though it does tie `timeout_ms` to the returned `finished: false`. 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?

States a specific verb and resource — block until a route finishes, then report the outcome — and explicitly distinguishes itself from the polling sibling `route_status`. An agent can pick this over `route_status` without opening either schema.

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?

Gives an explicit when-to-use ('a job started with `exit_on_empty`') and a named alternative to avoid ('instead of polling `route_status`'), plus the rationale (one tool call regardless of duration). Nothing is left to inference.

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