Skip to main content
Glama

Start a build run

start_run
Idempotent

Runs a registered recipe. THIS IS THE TOOL THAT DOES THE REAL WORK: it reads the sources and can run for a long time. Start builds in full mode: full runs use one progressive acquisition with an inspection checkpoint after about five minutes and continue automatically. The checkpoint is not an approval gate or a second run. Four modes: full (the whole build), sample (an explicitly requested bounded experiment), refresh (forward from where the last run reached), backfill (one exact window). Example: {"recipe_id": "…", "recipe_digest": "…", "mode": "full"}. A sample must state at least one ceiling (max_rows, max_source_bytes or window); a backfill must state window {start, end}. For full builds, use the approved recipe source limits: do not automatically copy optional sample run clamps (max_rows or max_source_bytes) into a full run. Some source adapters cannot enforce those additional run clamps and will refuse before acquisition. Never remove a user-required bound to work around that refusal; ask whether the existing recipe limits meet their intent. Returns {run_id, status, mode, version, dashboard_url}. A run larger than the size that starts on its own comes back status "held" with projected_bytes and projected_runtime_seconds — show those to the user and call confirm_run only if they agree. If an earlier run failed for a platform reason, inspect get_run first, then pass retry_of_run_id with that failed run id to request a fresh attempt of the SAME recipe and limits. Repeating start_run without it replays the original run. The service refuses retries of active runs, other recipes/workspaces, and non-retryable failures. A retry still needs the normal user approval. Three optional members, each only when there is a reason: reuse_saved_answers: false (full only) reads every per-row answer fresh instead of reusing what the table's last full saved, when explain_recipe or a stale answer says so; discard_snapshot_history: true (full or sample) is the consent a start refused snapshot_history_would_be_discarded waits for — it replaces a snapshot table's day-by-day history with the one day this run reads, so pass it only when the person agreed to lose that history; resume_capture_run_id (full only) resumes a failed or cancelled full instead of starting the acquisition again. Next: run_events to watch it, then query_run to check the rows it built.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeYes
windowNo
max_rowsNo
recipe_idYes
recipe_digestYes
resource_classNo
retry_of_run_idNo
max_source_bytesNo
reuse_saved_answersNo
resume_capture_run_idNo
discard_snapshot_historyNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedInput schema / properties / discard_snapshot_history
      Added value: +{
      +  "type": "boolean"
      +}
    • addedInput schema / properties / resume_capture_run_id
      Added value: +{
      +  "format": "uuid",
      +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +  "type": "string"
      +}
    • addedInput schema / properties / reuse_saved_answers
      Added value: +{
      +  "type": "boolean"
      +}
  2. Changed1 schema field changed
    • addedInput schema / properties / retry_of_run_id
      Added value: +{
      +  "format": "uuid",
      +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +  "type": "string"
      +}
  3. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Far exceeds the annotations: it discloses long runtimes, the five-minute inspection checkpoint semantics (explicitly not an approval gate), the "held" status with projected_bytes/projected_runtime_seconds, adapter refusal behavior for unsupported clamps, retry restrictions (refuses active runs, other recipes, non-retryable failures), and that retries still need user approval. It also spells out the destructive consequence of discard_snapshot_history (replacing day-by-day history with a single day) and that it exists as consent for a prior refusal.

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 purpose and mode semantics, and most sentences carry non-redundant operational detail that an agent needs before a long, billable run. It is nonetheless dense and overstuffed with ALL-CAPS emphasis and nested parentheticals, which makes the optional-member rules harder to scan than they need to be.

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 destructive-capable, long-running, 11-parameter tool with no output schema and 0% schema coverage, the description supplies the return shape ({run_id, status, mode, version, dashboard_url}), mode behavior, retry flow and follow-up tools. The gap is resource_class and recipe_digest semantics, which are left entirely to the schema's format constraints.

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?

Schema description coverage is 0% and there are 11 parameters, yet the description explains mode (all four values), window {start,end} for backfill, the sample ceilings max_rows/max_source_bytes, retry_of_run_id, resume_capture_run_id, reuse_saved_answers, and discard_snapshot_history, including constraints like "full only" or "full or sample". It omits resource_class entirely and adds nothing about recipe_digest, so it stops short of full compensation.

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?

Opens with a specific verb+resource ("Runs a registered recipe") and immediately stakes out its role as the executing tool rather than a preview or control tool. The four modes and the explicit "Next: run_events ... then query_run" line distinguish it cleanly from siblings like test_recipe, explain_recipe, approve_full_run, confirm_run and replay_run.

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 rules for each mode (full/sample/refresh/backfill), states the conditions that require a ceiling or a window, and names the alternatives in context: confirm_run only after the user agrees to a held run, get_run before retry_of_run_id, run_events/query_run afterwards. It even states when-not to use optional members ("each only when there is a reason") and forbids copying sample clamps into full runs.

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