Skip to main content
Glama

Start an async run

start_run

Submit work too large for one call as an asynchronous run in the caller's account: it returns a run id at once and get_run reports progress and pages the results. kind=batch: up to 2000 locations with the same fields, processed in plan-sized batches; fetch_batch is the synchronous form for up to the plan's batch size (10 on Free, 100 on paid plans) with results in the same response. kind=enrich: up to 1000 parcel locators, like parcel_enrich; kind=search: one parcel_search body walked page by page up to max_pages. Output: the run object (id like run_..., status queued, estimated_max_lookups, lookups_held, status_url and results_url). Cost: metered like the underlying calls (batch 1 lookup per location per 50 fields; enrich 5 per matched parcel plus point fields; search 25 per page with results). The worst case, or max_lookups if lower, is held upfront and the unused part is refunded when the run ends; the run stops before spending more than max_lookups. Results are kept 7 days after the run ends. Errors: run_input_missing, invalid_locator, too_many_rows, no_fields_requested, state_required, too_many_active_runs (2 at once), quota_exhausted (with the hold needed).

Input Schema

NameRequiredDescriptionDefault
kindYesbatch (needs locations and fields/preset), enrich (needs items) or search (needs search).
itemsNokind=enrich: up to 1000 parcel locators, each exactly one of {lat, lng}, {address}, {parcel_id} or {apn, state} (optional county).
fieldsNoField names for kind=batch, or point fields at each parcel centroid for kind=enrich; up to 50 besides the preset.
presetNoPreset name from list_presets for kind=batch or kind=enrich, combined with fields.
searchNokind=search: a parcel_search argument object (state, or bbox/polygon, required; limit up to 100 per page).
locationsNokind=batch: up to 2000 places, each with lat+lng or address.
max_pagesNokind=search: pages to walk, 1 to 40 (default 10); the run stops early when pages run out.
max_lookupsNoOptional spending cap for the whole run; it is also the upfront hold when lower than the estimate.

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?

Annotations only declare the mutation/idempotency profile; the description adds substantial non-obvious behavior: upfront worst-case hold with refund of the unused part, a hard stop at max_lookups, 7-day result retention, a 2-concurrent-run cap, and a named error list including quota_exhausted with the hold needed. Nothing here contradicts readOnlyHint=false / destructiveHint=false.

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 purpose and per-kind semantics before cost and error detail, and nearly every sentence carries operational information. It is a dense single paragraph with cost/error detail packed into long clauses, which slightly hurts scanability.

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?

For an 8-parameter async job tool with nested objects and no output schema, the description supplies the return shape (id like run_..., status queued, estimated_max_lookups, lookups_held, status_url, results_url), the cost model per kind, retention, and the failure modes — everything needed to call it and interpret 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?

Schema coverage is 100%, so the baseline is 3; the description still adds value by tying parameters together (which params each kind needs, max_lookups doubling as the hold, max_pages walking limit of a parcel_search body). Minor gap: it doesn't restate the fields/preset interaction beyond what the schema already says.

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 ('Submit work ... as an asynchronous run') plus the immediate effect ('returns a run id at once') and the delegation to get_run for progress/results. It then enumerates the three kind values with distinct semantics, so an agent can tell start_run apart from the synchronous fetch_batch, parcel_enrich and parcel_search siblings.

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?

Explicit routing rules: use this when work is 'too large for one call', otherwise fetch_batch is the synchronous form, with concrete thresholds (2000 locations vs 10/100 batch size; 1000 enrich items; max_pages 1-40). Each kind names the sibling it mirrors, so the when-to-use decision is fully specified rather than inferred.

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