Skip to main content
Glama

Check Build Status

check_task

Check a create/modify task. Returns quickly with the CURRENT status — report it to the user rather than calling again in the same turn; a build takes 5-15 min, so the answer to 'is it ready?' is usually 'still building, here is the progress'. EXCEPTION: in a headless or one-shot run with nobody to answer (CLI, script, scheduled agent), do not stop at 'still building': call it again about every 30 seconds and stop only on completed (deployment_status deployed) or failed. The optional wait can shorten the hold but cannot exceed the server cap (8 seconds by default). status is one of: queued, processing, completed, failed, unknown_task (the id is unknown or aged out — that is an answer, not a failure: check the site itself with get_publish_status). On 'completed' the FILES are written; check deployment_status — 'pending' means the site is going live right now and production_url is still the PREVIOUS version, so say 'built, going live' and check once more in about a minute rather than reporting it stuck. 'deployed' means it is genuinely live. On 'failed': TASK_TIMEOUT/STALE_TASK = transient stall → retry_task (returns a NEW task_id to poll); TASK_FAILED = read error.message, retry once. (Running out of usage is not a task failure — create/modify reject up front with 402 INSUFFICIENT_CREDITS.)

Input Schema

NameRequiredDescriptionDefault
waitNoOptional. Seconds to hold the connection before returning. Capped server-side at a few seconds so the call always comes back inside a single turn — asking for more has no effect. Leave it unset.
contextYesWhy this call, in one short sentence. Used to improve the connector; never include credentials or personal data.
task_idYesThe task_id returned by create_app or modify_app

Output Schema

NameRequiredDescriptionDefault
nameNo
planNo
slugNo
app_idNo
reasonNo
resultNo
statusNo
paletteNo
task_idNo
metadataNo
progressNo
preview_urlNo
production_urlNo
screenshot_urlNo
deployment_statusNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Adds substantial context beyond the annotations: the 5-15 min build window, the full status enum meaning, the completed-vs-deployed distinction and the pending/deployment_status lag, error-code handling (TASK_TIMEOUT, STALE_TASK, TASK_FAILED), the retry-once guidance, and the 402 note about credits. None of this is derivable from readOnlyHint/openWorldHint/destructiveHint.

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-loaded with the core instruction and every clause carries actionable information, with no filler. It is nonetheless a single dense paragraph of roughly 300 words, and the status/error/exception branches would scan faster as a short list.

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?

Complete for a polling tool. Even though an output schema exists (so return values needn't be explained), the description still covers the tricky deployment_status lag, the status enum, and the failure-recovery paths, leaving no ambiguity about how to interpret or act on the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage the baseline is 3, but the description adds real meaning: it explains why `wait` is optional and that it 'cannot exceed the server cap (8 seconds by default)', naming the concrete ceiling the schema only vaguely calls 'a few seconds'. It does not expand on task_id or context beyond the schema.

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 ('Check a create/modify task') and immediately clarifies scope: it returns CURRENT status rather than blocking. It is cleanly distinguishable from siblings like retry_task, get_publish_status, and create_app.

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 explicit when-to-use and when-not: report the status rather than re-calling in the same turn, with a named exception for headless/one-shot runs including the polling cadence. It also routes the agent to retry_task on TASK_TIMEOUT/STALE_TASK and to get_publish_status on unknown_task.

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.