Skip to main content
Glama

get_job

Read an asynchronous job submitted with submit_optimise_job: its status, and once it has finished, its result inline — exactly the body the synchronous tool would have returned. Status is queued, running, succeeded or failed; the answer's terminal field says whether the job will ever leave the status it is in, so poll while that is false. POLLING IS FREE: the gateway meters the submission and not the reads, deliberately, because a poll that costs quota is a poll a caller rations, and a rationed poll is how a job that finished in ten seconds gets noticed four minutes later. Check every few seconds rather than guessing at a duration. units_charged is what the SUBMISSION drew, and refunded says whether a failure handed it back — a failed job shows both, because reporting zero would be a lie about what was charged. Webhooks are the alternative to polling and exist for humans wiring infrastructure, not for agents in a loop. A job belongs to the key that submitted it (or another key of the same identity); anyone else's id answers NOT FOUND rather than forbidden, because confirming an id exists is itself a disclosure. Requires the MapMap gateway.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesThe job id returned by `submit_optimise_job`.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesThe job id.
kindYes`optimise`, `replan` or `matrix`.
errorNoWhy it failed, once `status` is `failed`.
resultNoThe answer, inline, once `status` is `succeeded` — exactly the body the synchronous tool would have returned.
statusYes`queued`, `running`, `succeeded` or `failed`. Only `succeeded` and `failed` are terminal; keep polling on the other two.
refundedYesWhether a failure refunded the submission's units.
terminalYesWhether `status` is one this job will never leave.
created_atYesRFC 3339 UTC submission time.
started_atNoRFC 3339 UTC time a worker picked it up.
finished_atNoRFC 3339 UTC time it finished, either way.
units_chargedYesMetered units the SUBMISSION drew. This is what was charged; `refunded` says whether it came back.
webhook_statusNo`delivered` or `delivery_failed`, once a webhook was attempted.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Added

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations, the description carries the full transparency burden and exceeds it. It discloses status values, the terminal field's meaning, free polling, units_charged and refunded semantics, key ownership, and the deliberate NOT FOUND rather than forbidden behavior. This is unusually rich behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but every sentence earns its place: purpose, status semantics, polling cadence, billing behavior, auth behavior, and gateway requirement. It is front-loaded with the core purpose and then layers contextual details in a logical order.

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?

The output schema can carry return-shape details, freeing the description to cover everything else an agent needs: job states, terminal polling semantics, cost behavior, auth boundaries, error semantics, and the gateway requirement. Nothing essential is left missing.

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?

The schema already documents 'id' fully at 100% coverage, so the baseline is 3. The description adds meaningful context beyond the schema by explaining that the id belongs to the submitting key or another key of the same identity, and that another party's id yields NOT FOUND rather than forbidden.

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?

The description opens with a specific verb and resource: 'Read an asynchronous job submitted with submit_optimise_job' and clarifies that the result is 'exactly the body the synchronous tool would have returned.' This clearly distinguishes get_job from its submission sibling and from synchronous variants.

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?

It gives explicit operational guidance: poll while the 'terminal' field is false, check every few seconds rather than guessing at a duration, and treat webhooks as unsuitable for agents in a loop. This tells the agent exactly when and how to use the tool.

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.

TDQS

A4/5.0
Disambiguation4/5

Most tools target a distinct action and resource pair, and descriptions are explicit about which tool fits which scenario. The closest overlaps—plan_ev_route vs cheapest_charging_along_route, and route vs plan_day vs order_stops vs optimise_routes—are mitigated by clear guidance, so an agent can usually pick correctly.

Naming Consistency4/5

Tool names overwhelmingly follow a verb_noun snake_case pattern (plan_ev_route, set_palette, list_style_layers) with a consistent geo_ prefix for geometry helpers. Minor deviations like elevation, route, and matrix are short and readable but break the strict verb_noun convention.

Tool Count2/5

At 39 tools, this surface is well past the 25+ threshold and feels heavy even for a broad mapping platform. The set spans routing, geocoding, places, styles, EV/fuel, telematics, usage, and feedback, which would be easier for an agent to navigate if split into smaller domain-focused servers.

Completeness4/5

For the stated breadth, coverage is strong: routing, multi-stop planning, VRP, EV/fuel detours, geocoding, places, geometry, style lifecycle, and telematics all have workable primary paths. Minor gaps like no style deletion, no route alternatives, and no batch geocoding are present but do not create dead ends for core workflows.

Resources