Skip to main content
Glama

plan_day

Turn an itinerary into one navigable multi-stop route. Provide a start and stops (each a location {lat, lon} or a free-text name to geocode, plus optional dwell_minutes time at the stop), optional depart_at (RFC 3339) for absolute ETAs, optimise: true to reorder stops for the shortest day (VROOM solver), and return_to_start. Costing "auto", "truck" (with a truck profile the whole day respects dimensional/ADR restrictions), "bicycle", "pedestrian" or "motor_scooter". Returns the stops in visit order with per-leg duration/distance and arrival/departure times, totals, and the full route geometry (polyline6). Geocoded names carry a resolution — when ambiguous is true, check alternatives and re-run with an explicit location rather than trusting the guess.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
startYesWhere the day starts (name or location; `dwell_minutes` ignored).
stopsYesThe stops to visit (1–20). Visited in the given order unless `optimise` is true.
truckNoTruck profile (dimensions + ADR declaration). Requires costing "truck".
costingNoCosting model: "auto" (default), "truck", "bicycle", "pedestrian" or "motor_scooter".auto
optimiseNoReorder the stops for the shortest day (VROOM solver; requires the optimisation sidecar). Default false: visit in the given order.
depart_atNoDeparture time as RFC 3339 (e.g. "2026-07-18T09:00:00Z"); when given, every ETA is also returned as an absolute timestamp.
return_to_startNoEnd the day back at the start (default false).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
startYesThe day's starting point.
stopsYesThe stops in visit order, each with leg, ETAs and any geocoding resolution to double-check.
costingYesThe costing the plan was routed with.
summaryYesOne-line human-readable summary of the day.
depart_atNoThe departure time echoed back, when one was given.
finish_atNoAbsolute end of the day (RFC 3339), when `depart_at` was given.
optimisedYesWhether the stop order was optimised (VROOM) or kept as given.
return_legNoThe leg back to the start, when `return_to_start` was set.
total_dwell_sYesTotal time at stops, seconds.
finish_offset_sYesEnd of the day (last arrival + dwell), seconds after departure.
total_distance_mYesTotal travel distance, metres.
geometry_polyline6YesFull multi-stop route geometry (polyline6) — hand it to the map SDK or the `route` tool consumers directly.
total_travel_duration_sYesTotal driving/travel time, seconds.

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It explains the output structure (visit order, per-leg duration/distance, arrival/departure times, totals, polyline6), the side effects of dwell_minutes and depart_at, the VROOM solver behavior, truck restrictions, and the geocoding ambiguity handling. This is unusually transparent.

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 dense but every clause carries information: core behavior, required and optional inputs, costing options, output details, and geocoding caveats. It is front-loaded with the primary purpose and contains no filler or repetition of schema text.

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 a complex tool with an output schema, the description covers everything an agent needs to invoke it correctly: required start/stops, optional parameters, costing semantics, special truck handling, optimisation behavior, return structure, and geocoding failure handling. Remaining details like stop count limits are already in the schema.

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, but the description adds real semantic value beyond the schema: it explains what optimise does with VROOM, how truck costing interacts with dimensional/ADR restrictions, how dwell_minutes shifts ETAs, how depart_at yields absolute timestamps, and how to react to ambiguous geocoding results. This elevates it above the baseline.

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: 'Turn an itinerary into one navigable multi-stop route.' It clearly distinguishes itself from siblings like 'route' or 'order_stops' by combining multi-stop planning, optional optimisation, costing modes, and return-to-start behavior in one call.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description establishes a clear usage context: when you need an entire day's itinerary as one route with stops, departure time, optimisation, and multiple costing options. It does not explicitly name alternatives or state when-not-to-use it, but the multi-stop framing makes selection unambiguous.

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