Skip to main content
Glama

Server Details

Location & routing intelligence for AI agents — geocoding, truck routing, traffic, weather, and place search.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Tool DescriptionsA

Average 4.5/5 across 19 of 19 tools scored.

Server CoherenceA
Disambiguation5/5

Every tool has a clearly distinct purpose. Overlapping tools (geocode vs geocode_structured, explore vs search_places, map_match vs trace_attributes) are explicitly differentiated in their descriptions, with cross-references guiding correct selection. No two tools appear to do the same thing.

Naming Consistency4/5

Most tools follow a predictable verb_noun pattern (geocode, reverse_geocode, batch_geocode, search_places, resolve_intersection), but there are minor deviations: some tools use noun-only names (directions, traffic, weather) and a couple use noun_verb order (place_get, geofence_contains). This creates slight inconsistency but remains readable.

Tool Count4/5

At 19 tools, the set is slightly heavy but each tool earns its place by covering a distinct geospatial function. The breadth spans geocoding, routing, places, telematics, geofencing, traffic, weather, and account management, making the count reasonable for a comprehensive geo API.

Completeness5/5

The tool surface is remarkably complete for a geospatial server: forward, reverse, batch, structured, and intersection geocoding; routing, matrix, and isochrones; place search, exploration, and ID lookup; map matching, trace attributes, and point snapping; plus geofencing, traffic, weather, and quota management. No critical gaps or dead ends apparent.

Available Tools

19 tools
batch_geocodeA
Read-onlyIdempotent
Inspect

Geocode multiple addresses in one request with structured per-record results. Use for bulk operations instead of repeated single geocode calls. Max 50 per batch.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressesYesArray of addresses to geocode (max 50 per batch)

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsNo
geojsonNo
metricsNo
summaryNoMap of scalar facts the LLM should surface verbatim
display_hintNo
Behavior4/5

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

Annotations already provide readOnlyHint, openWorldHint, and idempotentHint, reducing the burden on the description. The description adds useful behavioral context by noting 'structured per-record results,' which indicates the response format for individual addresses, and reiterates the 'Max 50 per batch' limit. It doesn't specify error handling for partial failures, but with annotations covering safety, this is adequate.

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 two concise sentences: the first states the core purpose, the second gives usage guidance and the batch limit. No wasted words, making it efficiently front-loaded and easy to parse.

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 simple batch tool with one parameter, an output schema, and strong annotations, the description is complete. It covers the key operational constraints (bulk usage, max batch size, per-record results) without needing to elaborate on return values, which are presumably documented in the output schema.

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

Parameters3/5

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

Schema description coverage is 100%: the single 'addresses' parameter is fully described as 'Array of addresses to geocode (max 50 per batch).' The tool description repeats this limit and doesn't add any additional semantic detail beyond what the schema already provides, so it meets the baseline for high schema coverage.

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 clearly states the tool's function: 'Geocode multiple addresses in one request with structured per-record results.' It uses a specific verb ('geocode') and resource ('multiple addresses'), and distinguishes itself from the sibling 'geocode' tool by emphasizing batch processing.

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?

The description explicitly directs use: 'Use for bulk operations instead of repeated single geocode calls.' This provides both a when-to-use (bulk) and a when-not-to-use (as a substitute for repeated single calls), clearly differentiating it from the alternative geocode tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

directionsA
Read-onlyIdempotent
Inspect

Generate routes, ETAs, and turn-by-turn directions between locations. Live traffic is post-route ETA enrichment and does not change the returned path (path_influenced=false); truck traffic adjustments are slowdown-only. Supports car / truck / motorcycle / pedestrian / bicycle, with hazmat + dimension + toll avoidance for commercial routing. ETAs are returned as ISO 8601 with timezone offset (in the destination's local timezone). Use vehicle_profile presets (10 total — DRY_VAN_53, FLATBED_48/_40, STEP_DECK, TANKER, BOX_TRUCK_26, AUTO_CARRIER, SPRINTER_VAN, DOUBLE_TRAILER, OVERSIZE) when routing trucks — they set height/weight/length in one parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesDestination: address string ('Houston, TX'), 'lat,lon' string, or { lat, lon } object
viaNoIntermediate stops in order; same shape as from/to. Up to 48 waypoints (max 50 total locations).
fromYesOrigin: address string ('Houston, TX'), 'lat,lon' string, or { lat, lon } object
unitsNoDistance units (default: miles). Accepts 'km'/'mi' as aliases.
hazmatNoSet true when transporting hazardous materials to avoid restricted routes
costingNoTransport mode (default: auto). Use 'truck' for commercial vehicles
axle_loadNoAxle weight in metric tons (e.g. 9.07t = 20,000 lbs per axle)
top_speedNoMaximum speed in km/h (default 105 for trucks)
use_ferryNoFerry preference 0-1 (0=avoid, 1=allow)
alternatesNoNumber of genuine motorized alternate routes to request (0, 1, or 2). Positive values require no via waypoints.
axle_countNoNumber of axles (default 5 for semi-trailer)
avoid_tollsNoAvoid toll roads when user requests toll-free routing
truck_widthNoTruck width in meters (e.g. 2.6m = 8'6")
truck_heightNoTruck height in meters (e.g. 4.11m = 13'6"). Triggers bridge avoidance
truck_lengthNoTruck length in meters (e.g. 16.2m = 53')
truck_weightNoTruck weight in metric tons (e.g. 36.3t = 80,000 lbs). Triggers weight-restricted road avoidance
use_highwaysNoHighway preference 0-1 (0=avoid, 1=prefer)
include_trafficNoApply post-route live-traffic ETA enrichment (default: true). Traffic does not change the returned path; truck adjustments are slowdown-only.
vehicle_profileNoPreset vehicle profile (10): DRY_VAN_53, FLATBED_48, FLATBED_40, STEP_DECK, TANKER, BOX_TRUCK_26, AUTO_CARRIER, SPRINTER_VAN, DOUBLE_TRAILER, OVERSIZE. Each sets height/weight/length/axle_count for that vehicle class in one parameter (e.g. DRY_VAN_53 = 4.11m tall, 36.3t, 22.25m long, 5 axles; OVERSIZE = 4.88m tall, 3.66m wide, 45.36t). The response echoes the applied dims in costing_options.truck. Any individual truck_height/truck_weight/etc. overrides a single field.
include_geometryNoRoute geometry shape control. "none" returns origin/destination Points only. "encoded" returns an encoded polyline6 string in a top-level `geometry` field plus origin/destination Points (≈95% smaller than raw GeoJSON; decode with @mapbox/polyline at precision 6). "full" emits decoded coordinates as a LineString in `geojson.features[0]`. When omitted (default), small routes use "full" and long routes auto-downgrade to "encoded" with a `geometry_truncated` warning.
include_elevationNoWhen true, include available route elevation fields. Point elevation may be returned for the origin and destination. Cumulative gain/loss is returned only when route-profile elevation is available.

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsNo
geojsonNo
metricsNo
summaryNoMap of scalar facts the LLM should surface verbatim
alternatesNo
display_hintNo
timezone_endNo
traffic_routeNo
timezone_startNo
costing_optionsNo
elevation_end_mNo
base_arrival_utcYesArrival time derived from the base duration, expressed as an ISO 8601 UTC timestamp.
elevation_end_ftNo
elevation_gain_mNo
elevation_loss_mNo
elevation_gain_ftNo
elevation_loss_ftNo
elevation_start_mNo
base_arrival_localYesArrival time derived from the base duration in the destination's local time, or null when the local timezone is unavailable.
elevation_start_ftNo
traffic_provenanceYes
base_duration_secondsYesRoute duration before any traffic-based adjustment, in seconds.
effective_arrival_utcYesAuthoritative arrival time for this response, expressed as an ISO 8601 UTC timestamp.
traffic_delay_secondsYesEffective duration minus base duration, in seconds. Positive means traffic made the ETA slower, negative means it made the ETA faster, and zero means the duration was unchanged. For truck costing, general traffic evidence is slowdown-only, so this value is never negative.
effective_arrival_localYesAuthoritative arrival time in the destination's local time, or null when the local timezone is unavailable.
effective_duration_secondsYesAuthoritative duration for this response, in seconds, after any applicable traffic-based adjustment.
Behavior5/5

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

Beyond the readOnlyHint, openWorldHint, and idempotentHint annotations, the description discloses meaningful behavioral details: live traffic is post-route enrichment that does not alter the path, truck traffic adjustments are slowdown-only, ETAs are ISO 8601 in the destination timezone, and the response echoes applied dimensions in costing_options.truck. These are non-obvious facts that materially affect how the agent interprets results.

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?

The description is a dense paragraph, but every sentence carries information essential to safe and correct use. It front-loads the core purpose, then layers important caveats (traffic behavior, presets, geometry formats) without repetition. It is longer than minimal, but the length is justified by the tool's 21-parameter complexity.

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?

Given the tool's complexity (21 parameters, 6 enums, output schema), the description is remarkably complete: it covers vehicle profiles, hazmat, tolls, traffic behavior, geometry selection with encoding details, elevation, waypoint limits (via maxItems), and units aliases. The output schema covers return structure, so the description adequately fills the knowledge gap for an agent to call this correctly.

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

Parameters5/5

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

Though schema coverage is 100% and all parameters have descriptions, the tool description adds substantial semantic value: it explains that vehicle_profile presets set multiple dimensions in one parameter, gives concrete examples (DRY_VAN_53 = 4.11m tall, 36.3t, etc.), clarifies that individual truck_* parameters override a single field, and details the include_geometry options including auto-downgrade behavior and polyline6 decoding requirement. This goes well beyond the schema's per-field descriptions.

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 'Generate routes, ETAs, and turn-by-turn directions between locations,' which is a specific verb-resource statement that clearly distinguishes it from sibling tools like geocode, distance_matrix, and isochrone. It further differentiates by enumerating supported vehicle types and commercial routing presets.

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?

It provides explicit guidance for the truck use case ('Use vehicle_profile presets ... when routing trucks') and explains when to set hazmat, toll avoidance, and live traffic enrichment. It does not explicitly state when not to use this tool versus alternatives, but the context is clear enough that an agent can infer its primary role as the route generator.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

distance_matrixA
Read-onlyIdempotent
Inspect

Compute road distances and travel times for every origin → destination pair. Endpoints accept free-text addresses or 'lat,lon' strings; N × M is capped at 625 pairs. Use for fleet dispatch, nearest-depot, and bulk ETA tables.

ParametersJSON Schema
NameRequiredDescriptionDefault
unitsNoDistance units (default kilometers)
costingNoTransport mode (default auto)
originsYesOrigin endpoints (1–25): address or 'lat,lon'
destinationsYesDestination endpoints (1–25): address or 'lat,lon'

Output Schema

ParametersJSON Schema
NameRequiredDescription
metaNo
unitsYes
matrixYesmatrix[i][j] = origin i → destination j (distance + duration)
costingYes
originsYesGeocoded origin locations
destinationsYesGeocoded destination locations
upstream_errorNo
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint. The description adds valuable behavioral context: endpoints accept free-text addresses or 'lat,lon' strings, and N×M is capped at 625 pairs. This goes beyond annotations without contradicting them.

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?

Three concise sentences, each earning its place: core function, input constraints, and use cases. No filler or redundancy, and the most important information is front-loaded.

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?

With a rich output schema and annotations, the description covers purpose, input constraints, and usage contexts. It lacks explicit error-handling details, but the output schema supplied separately fills the return structure gap, making it sufficiently complete for an agent.

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

Parameters3/5

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

Schema description coverage is 100%, with all parameters (origins, destinations, units, costing) fully documented. The description's mention of address formats and the 625-pair cap adds only marginal value beyond the schema, which already specifies maxItems and parameter formats.

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 states exactly what the tool does: 'Compute road distances and travel times for every origin → destination pair.' This specific verb and resource clearly distinguish it from siblings like 'directions' (single route) and 'geocode' (address lookup).

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 provides clear use cases: 'fleet dispatch, nearest-depot, and bulk ETA tables.' It does not explicitly name alternatives or state when not to use, so it misses the top bar for explicit exclusions, but the context is unmistakable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

exploreA
Read-onlyIdempotent
Inspect

BROWSING / DISCOVERY search — cities, neighbourhoods, or mixed venues near a location. Use this when the user is exploring a REGION rather than looking for a specific category. Supports population filtering ('cities > 100k'), distance/population sorting, and layer filtering (locality / neighbourhood / venue / address / street). For specific POI categories (gas, food, charging, etc.), use search_places instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
latNoLatitude of center point
lonNoLongitude of center point
sizeNoMax results (default 10, max 50)
sortNoSort mode (default: combined)
layersNoComma-separated: venue, address, street, locality, neighbourhood (default: locality)
radiusNoSearch radius with unit, e.g. '50km', '30mi' (default: 150km, max: 500km / ~310mi). Larger radii return 400 INVALID_QUERY.
locationNoCenter point address or 'lat,lon'
min_populationNoMinimum population filter for locality results
boundary_countryNoISO country code to restrict results (alpha-2 or alpha-3)

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsNo
geojsonNo
metricsNo
summaryNoMap of scalar facts the LLM should surface verbatim
display_hintNo
Behavior5/5

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

Beyond the annotations (readOnlyHint, openWorldHint, idempotentHint), the description adds significant behavioral context: it mentions population filtering, sorting modes, layer filtering, and even warns that larger radii return 400 INVALID_QUERY. This extra detail about error conditions and customization goes beyond what annotations provide.

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 concise (3 sentences) and front-loaded with the primary purpose. It packs in usage guidance, feature highlights, and an alternative tool without unnecessary filler. Every sentence contributes meaning.

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 tool with 9 parameters, an output schema, and a rich set of features, the description is remarkably complete. It covers the core purpose, when to use it, key capabilities, limitations (radius error), and alternatives. The output schema exists, so return values need not be described. This is a fully self-sufficient description.

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 all 9 parameters with descriptions (100% coverage), so the baseline is 3. The description adds functional context by explaining how parameters like population filtering, sorting, and layers work together (e.g., 'cities > 100k' implies min_population). This adds value beyond the schema, hence a 4.

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 clearly identifies the tool as a browsing/discovery search for cities, neighbourhoods, or mixed venues near a location. It distinguishes itself from sibling tools by explicitly stating it is for exploring a region rather than a specific category, and names search_places as the alternative for specific POI categories.

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 provides explicit guidance on when to use this tool ('when the user is exploring a REGION rather than looking for a specific category') and names an alternative tool (search_places) for different use cases. This is clear, actionable guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

geocodeA
Read-onlyIdempotent
Inspect

Convert an address, place name, street, or intersection into coordinates and structured location results. Use when input is text and you need coordinates before routing, weather, or search. Supports street-level resolution and proximity biasing.

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoNumber of candidates to return (default 5, max 40)
queryYesAddress, place name, street, intersection (e.g. 'Broadway and 42nd Street New York'), or free-form location text
layersNoRestrict to: address, street, venue, locality. Use layers=street when user clearly wants a street entity. Use layers=venue for stadiums, monuments, parks, and named POIs (e.g. 'Minute Maid Park', 'Lambeau Field', 'Statue of Liberty') — bypasses address-parser tokenization that otherwise resolves venue+state to the state region centroid
focus_latNoBias results near this latitude — use when user says 'near me' or 'close to'
focus_lonNoBias results near this longitude
boundary_countryNoISO country code to reduce ambiguity (alpha-2 or alpha-3)

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsNo
geojsonNo
metricsNo
summaryNoMap of scalar facts the LLM should surface verbatim
precisionNo
display_hintNo
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds useful behavioral context beyond these: street-level resolution and proximity biasing. This helps the agent understand capabilities not captured in the annotations. No contradictions.

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 three well-structured sentences: the first states the primary function, the second gives the canonical use case, and the third highlights additional capabilities. No fluff or repetition, every sentence earns its place.

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?

Given the rich input schema, detailed parameter descriptions, existing annotations, and output schema, the description covers the tool's purpose, usage context, and key behaviors sufficiently. The agent has everything needed to select and invoke the tool correctly without needing additional return-value explanation.

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

Parameters3/5

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

The input schema provides 100% coverage of all 6 parameters with detailed descriptions, so the baseline is 3. The description adds only a high-level mention of 'proximity biasing' and 'street-level resolution' which loosely map to focus_lat/focus_lon and layers, but does not detail parameter syntax beyond what the schema already provides.

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 clearly states the tool converts addresses, place names, streets, or intersections into coordinates and structured location results. It uses a specific verb with a precise resource and output, and implicitly distinguishes itself from siblings like geocode_structured (structured input) and reverse_geocode (coordinates to address).

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 explicitly states when to use the tool: when input is text and coordinates are needed before routing, weather, or search. However, it does not name alternative tools or provide explicit when-not conditions, though 'Use when input is text' implies structured input should go elsewhere.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

geocode_structuredA
Read-onlyIdempotent
Inspect

Geocode from discrete address components (address, locality, region, postalcode, country) instead of one free-text string. Use when the input is already fielded (forms, CRM records, stop tables) — skips free-text parsing so components can't be mis-tokenized. At least one component is required. No cross-street field: for named intersections use resolve_intersection or geocode.

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoNumber of candidates to return (default 5, max 40)
regionNoState / province — full name or abbreviation (e.g. 'TX')
addressNoStreet address — house number + street name (e.g. '1600 Pennsylvania Ave NW')
countryNoISO 3166-1 alpha-2/alpha-3 country code (full names also resolve)
localityNoCity / town name
focus_latNoBias results near this latitude
focus_lonNoBias results near this longitude
postalcodeNoPostal / ZIP code
boundary_countryNoScope results to this ISO country code — wins over `country` for boundary filtering

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsNo
geojsonNo
metricsNo
summaryNoMap of scalar facts the LLM should surface verbatim
precisionNo
display_hintNo
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint. The description adds valuable context beyond annotations: 'At least one component is required' and 'No cross-street field' clarifies a functional limitation. It doesn't over-promise or contradict the read-only nature.

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?

Three sentences, each earning its place: the first defines what it does, the second gives use cases and benefit, the third states a constraint and alternatives. No redundancy.

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?

Given a rich output schema and detailed per-parameter descriptions, the tool description fully covers purpose, usage context, constraints, and alternatives. It is complete for an AI agent to select and invoke correctly.

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 100%, giving each parameter a clear meaning. The description adds the cross-parameter constraint that at least one component is required, which is not encoded in the schema's required list. However, it mostly restates component names already present in 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?

The description clearly states the tool geocodes from discrete address components rather than a free-text string, and explicitly distinguishes it from the sibling geocode and resolve_intersection tools. The verb 'Geocode' plus resource noun is specific and unambiguous.

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?

Provides explicit when-to-use guidance ('Use when the input is already fielded') and an exclusion ('for named intersections use resolve_intersection or geocode'). This directly helps the agent choose among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

geofence_containsA
Read-onlyIdempotent
Inspect

Test one or more points for containment inside a caller-supplied GeoJSON polygon (or MultiPolygon / Feature / FeatureCollection). Pure geometry — boundary points count as contained. Returns one boolean per input point. Errors when the polygon is structurally invalid.

ParametersJSON Schema
NameRequiredDescriptionDefault
pointsYesPoints to test ({ lat, lon } each), up to 1000
polygonNoA GeoJSON Polygon / MultiPolygon geometry, a Feature wrapping one, or a FeatureCollection

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultsYesOne containment boolean per input point (in order)
warningsNo
point_countYesNumber of points tested
contained_countYesHow many input points are contained
Behavior5/5

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

Beyond the annotations (readOnlyHint, openWorldHint, idempotentHint), the description discloses boundary point containment ('boundary points count as contained'), return shape ('Returns one boolean per input point'), and an error condition ('Errors when the polygon is structurally invalid'). This adds substantial behavioral context.

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 four sentences, all information-dense and front-loaded with the primary purpose. Every sentence adds value: purpose, geometry types/purity, boundary behavior, return format, and error condition. No redundancy or fluff.

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 description covers return format ('one boolean per input point'), boundary semantics, accepted geometry variants, and error behavior. Combined with the output schema and annotations, an agent has sufficient context to select and invoke this tool correctly.

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

Parameters3/5

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

Schema description coverage is 100% for both parameters, so the baseline is 3. The description does not add meaningful parameter-level detail; it merely restates the polygon types already listed in the schema. No additional semantics about point format or polygon properties are provided.

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 'Test one or more points for containment inside a caller-supplied GeoJSON polygon', which clearly states the specific action and resource. It also enumerates supported geometry types and distinguishes this tool from the geocoding/routing siblings by focusing on pure geometric containment.

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

Usage Guidelines3/5

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

The phrase 'Pure geometry' implies this is for geometric queries rather than place lookups, but no explicit 'use this instead of X' guidance is provided. There is no clear statement of when not to use the tool or how it compares to alternatives like reverse_geocode or search_places.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

isochroneA
Read-onlyIdempotent
Inspect

Generate travel-time or travel-distance reachability polygons from an origin. Pass MULTIPLE bands in one call — e.g. contours_minutes:[10,20,30] returns three nested polygons in a single response (one round-trip, not three). Use for service coverage, dispatch range, territory design, 'how far can I get in X minutes' questions, and concentric zone visualizations. Output is GeoJSON ready for Mapbox / Leaflet.

ParametersJSON Schema
NameRequiredDescriptionDefault
costingNoTransport mode
locationYesCenter point address or 'lat,lon'
contours_kmNoDistance bands in km. Max 4 bands per call (over returns 400).
truck_heightNoTruck height in meters
truck_weightNoTruck weight in metric tons
contours_minutesNoTime bands in minutes, e.g. [10, 20, 30]. Max 4 bands per call (over returns 400).

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsNo
geojsonNo
metricsNo
summaryNoMap of scalar facts the LLM should surface verbatim
display_hintNo
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, covering the safety and idempotency profile. The description adds meaningful behavior beyond annotations: multiple bands return nested polygons in a single response, and output is GeoJSON ready for Mapbox/Leaflet. This gives the agent useful operational context without contradicting annotations.

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 four sentences, each earning its place: core function, multi-band efficiency tip with example, intended use cases, and output format. It is front-loaded with the primary purpose and contains zero filler or redundancy.

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?

Given the presence of helpful annotations, an output schema, and full schema description coverage, the description supplies the essential extra context: clear use cases, multi-band round-trip optimization, and GeoJSON output. There is no need for it to restate parameter details or return value structure already captured elsewhere.

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 100%, so each parameter is already documented. The description supplements this with a concrete example (`contours_minutes:[10,20,30]`) and explains the efficiency advantage of multiple bands, which adds semantic value beyond the schema's basic descriptions. It doesn't explain the truck parameters, but the schema covers them adequately.

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 'Generate travel-time or travel-distance reachability polygons from an origin,' which is a specific verb and resource. It clearly distinguishes this tool from siblings like directions or distance_matrix by focusing on reachability polygons, and reinforces with concrete use cases like 'service coverage' and 'territory design.'

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 gives strong context for when to use the tool: 'Use for service coverage, dispatch range, territory design, how far can I get in X minutes questions, and concentric zone visualizations.' It also provides a practical efficiency tip about passing multiple bands in one call. However, it does not explicitly name alternative tools or when not to use it, so it doesn't earn a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

issue_api_keyAInspect

Mint a fresh API key for your current authenticated user/tenant. Useful for CLI workflows, key rotation, or MCP clients that hide the configured Bearer. The new key is tied to your existing plan. Counts as 1 query against your daily quota.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
planNo
userNo
errorNo
usageNo
key_idNoNon-secret fingerprint of the issued key. Safe to log and surface in UI.
statusYes
api_keyNoOne-time API key secret. Returned only on successful creation, in both structuredContent.api_key and content[0].text — save it immediately. The server stores only sha-256 of the secret; once this response is lost, the key is unrecoverable and must be rotated. Matches AWS IAM / Stripe / GitHub PAT one-time-reveal semantics.
credential_returned_onceNo
Behavior4/5

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

The description adds useful context beyond the annotations by noting the key is 'tied to your existing plan' and 'Counts as 1 query against your daily quota.' It also clarifies the authenticated context. This provides auth and rate-limit information not present in the sparse annotations.

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?

Three concise sentences, each adding unique value: the action, use cases, and side effects. No fluff or repetition.

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 zero-parameter tool with an output schema, the description is fully complete. It covers purpose, use cases, plan linkage, and quota impact, leaving no ambiguity about what the tool does or when to use it.

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 tool has zero parameters and the schema coverage is 100%, so the baseline is 4. The description doesn't need to explain parameters, and it doesn't attempt to.

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 clearly states the tool's function: 'Mint a fresh API key for your current authenticated user/tenant.' This uses a specific verb ('mint') and resource ('API key'), and clearly distinguishes it from sibling tools, which are all geocoding or spatial services.

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?

It explicitly lists use cases: 'CLI workflows, key rotation, or MCP clients that hide the configured Bearer.' While it doesn't name alternatives (none of the siblings are relevant), it gives clear contexts for when this tool is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

locateA
Read-onlyIdempotent
Inspect

Snap one coordinate to the road network and return the matched road's context: name, road class, speed limit, bearing, snap distance, side of street, truck legality, and toll/ferry/highway/bridge/tunnel flags — plus the IANA timezone. Use to answer 'what road is this point on and what are its rules?' for fleet/telematics snapping, geofence edge checks, or enriching a GPS fix. Set include_elevation for terrain-sourced point elevation_m; grade_pct is a forward-compatible field that stays null for now. Returns matched:false when no routable road is near the point — never a guess.

ParametersJSON Schema
NameRequiredDescriptionDefault
latYesLatitude
lonYesLongitude
unitsNoUnit system for the human summary — auto-detected (US/UK → imperial) when omitted.
costingNoTravel profile scoping edge access/legality. Default 'auto'.
include_elevationNoOpt-in to point elevation — populates elevation_m/elevation_ft from terrain data (null with an 'elevation_unavailable' warning only where terrain isn't covered). grade_pct is a forward-compatible field that stays null for now (reserved for an elevation-enhanced road network).

Output Schema

ParametersJSON Schema
NameRequiredDescription
metaNo
roadNo
itemsNo
geojsonNo
matchedNo
metricsNo
summaryNo
locationNo
timezoneNo
warningsNo
grade_pctNo
elevation_mNo
display_hintNo
elevation_ftNo
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds valuable behavioral details: it never guesses when no routable road is near, returns a 'matched:false' flag, and explains that grade_pct is a forward-compatible field that stays null for now, plus elevation may be null with a warning. This goes beyond the annotation hints.

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?

Four sentences, each earning its place: the first states purpose and output fields, the second gives use cases, the third covers parameter behavior, and the fourth explains the no-result case. It is dense yet well-structured, with the most critical information front-loaded.

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?

The tool is moderately complex (5 params, output schema present). The description covers purpose, use cases, and edge cases, and the output schema handles return structure. It could have mentioned unit auto-detection or costing defaults, but those are already in the schema, so the description is complete enough.

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 100% (all params already documented). The description adds semantic depth for include_elevation (terrain-sourced) and explicitly states grade_pct is a placeholder, clarifying forward compatibility. This improves on the schema alone.

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 begins with a specific verb ('Snap') and identifies the precise resource (road network) and the rich context returned (name, class, speed limit, etc.). It clearly answers 'what road is this point on and what are its rules?', distinguishing itself from sibling tools like reverse_geocode and map_match by focusing on road rules and single-point snapping.

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 explicitly names usage contexts: 'fleet/telematics snapping, geofence edge checks, or enriching a GPS fix'. It also clarifies the failure behavior ('Returns matched:false... never a guess'), but does not explicitly name alternatives or state when not to use this tool. This is clear context without formal exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

map_matchA
Read-onlyIdempotent
Inspect

Map matching snaps raw GPS breadcrumbs to the road network. Feed a recorded trace (2–100 points) and get back the road-accurate route that was actually driven: matched geometry, distance, time, road names, and a 0–1 match confidence. Use for fleet trace cleanup, mileage from GPS logs, and reconstructing routes from telemetry. For planning a route between places, use directions instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
shapeYesRaw GPS breadcrumb trail in travel order — 2 to 100 points of { lat, lon, time? }. `time` is optional epoch seconds; timestamps improve match quality on noisy traces.
costingNoTransport mode the trace was recorded with (default: auto)
search_radiusNoSnap radius in meters around each point (1–100). Increase for noisy GPS.
vehicle_profileNoTruck preset (DRY_VAN_53, FLATBED_48, BOX_TRUCK_26, …) — same 10-profile table as directions. Implies costing=truck.

Output Schema

ParametersJSON Schema
NameRequiredDescription
legsYes
metaNo
costingYes
geojsonNo
matchedYes
geometryNo
confidenceYes0–1: fraction of input GPS points within the snap tolerance of the matched route
road_namesYes
distance_kmYes
costing_optionsNo
vehicle_profileNo
duration_secondsYes
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds behavioral context by explaining the snapping process and what the output contains (matched geometry, distance, time, road names, confidence). It also frames the result as 'the road-accurate route that was actually driven,' which clarifies the nature of the operation beyond the annotations. However, it doesn't address rate limits or authorization nuances, though these are not necessarily expected given the annotations. No contradiction with annotations.

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 three sentences long, each earning its place: the first defines the core action, the second describes inputs and outputs, and the third gives use cases and a cross-reference to an alternative. It is front-loaded with the main purpose and contains no fluff or redundant details.

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?

Given the tool's complexity (4 parameters, output schema, annotations), the description is remarkably complete. It covers purpose, use cases, an explicit alternative, input constraints (2–100 points), and a summary of outputs. The output schema details the full return structure, and annotations cover safety and semantics, so the description does not need to repeat those. It also implicitly differentiates from other trace-related siblings like 'trace_attributes' by focusing on map matching to a road network, though it doesn't mention that tool by name – still acceptable because the explicit 'directions' alternative is the most likely confusion point.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description restates the shape constraint ('2–100 points') but does not add additional meaning for 'costing', 'search_radius', or 'vehicle_profile' beyond what the schema already provides. It also doesn't explain parameter interactions (e.g., vehicle_profile implying costing=truck) that are in the schema. Thus, the description adds marginal value over 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?

The description clearly states 'Map matching snaps raw GPS breadcrumbs to the road network' with a specific verb and resource. It also distinguishes itself from the sibling 'directions' tool by explicitly noting that for route planning, one should use 'directions' instead. This makes the purpose unambiguous and well-differentiated.

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?

The description provides explicit use cases: 'Use for fleet trace cleanup, mileage from GPS logs, and reconstructing routes from telemetry.' It also gives a clear exclusion: 'For planning a route between places, use `directions` instead.' This directly tells the agent when to pick this tool over an alternative, fulfilling the highest bar for usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

place_getA
Read-onlyIdempotent
Inspect

Look up a place by its stable ThinAir id (ta_place_… / ta_intersection_…) as returned in the id field of geocode, reverse_geocode, search_places, or resolve_intersection results. Ids are deterministic and survive re-serves — safe to store as favorites or foreign keys. Returns the canonical name, label, layer, and coordinates. Unknown or expired ids error with re-search guidance.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThinAir place id exactly as returned in a previous response's `id` field — ta_place_<key> or ta_intersection_<key>

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
latYes
lonYes
metaNo
nameNo
typeYes
labelNo
layerNo
componentsNo
Behavior5/5

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

Annotations already declare readOnlyHint and idempotentHint, lowering the burden. The description adds meaningful behavior: ids survive re-serves (idempotency), return value contents, and error handling for unknown/expired ids with re-search guidance. This goes well beyond the annotations and gives the agent a clear model of what happens.

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 three sentences, each contributing unique information: purpose, id source/stability, and return/error behavior. It is front-loaded with the core action and avoids redundancy with the schema.

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 simple single-parameter lookup tool with an output schema and rich annotations, the description is complete. It covers purpose, id provenance, stability, return content, and error behavior. No significant gaps remain.

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 provides full parameter coverage (100%) including the id format and constraints. The description adds value by naming the exact source tools (geocode, reverse_geocode, search_places, resolve_intersection) and highlighting id stability and determinism, which are not in the schema. This enriches the semantics 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?

The description uses a clear verb ('Look up') with a specific resource ('place by its stable ThinAir id') and identifies the id format (ta_place_… / ta_intersection_…). It also names the sibling tools that produce these ids, which distinguishes this lookup tool from geocoding and search tools.

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 provides clear context for when to use this tool: when you have an id from geocode, reverse_geocode, search_places, or resolve_intersection, and want canonical data. It emphasizes the ids are deterministic and safe to store, implying reuse over repeated lookups. It doesn't explicitly state when not to use alternatives, but the context is strong enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

quotaA
Read-only
Inspect

Check current usage, remaining limits, plan, and quota breakdown for the caller. FREE TO CALL — never counts against your quota, never blocked by it. Use this proactively when the user asks about usage or seems near limits.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
mcpYes
upstreamNo
Behavior5/5

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

Beyond the readOnlyHint annotation, the description reveals a critical behavioral trait: the call never counts against quota and is never blocked by it. This is valuable context not present in annotations and directly influences the agent's willingness to call the tool.

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 two sentences, front-loaded with the core purpose, then a high-value clarifying detail about quota impact. Every word earns its place with no redundancy.

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 simple, parameterless tool, the description fully covers what it returns (usage, limits, plan, breakdown) and when to call it. The output schema exists to detail return structure, so the description is complete.

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 tool has zero parameters, so no parameter descriptions are needed. The schema already fully covers this aspect (100% coverage with no properties), meeting the baseline for no-parameter tools.

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 clearly states the tool's function: 'Check current usage, remaining limits, plan, and quota breakdown for the caller.' It uses a specific verb ('Check') and precise resource identifiers, distinguishing it from sibling tools like issue_api_key or geocoding services.

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?

Provides explicit when-to-use guidance: 'Use this proactively when the user asks about usage or seems near limits.' Also adds that it is 'FREE TO CALL — never counts against your quota, never blocked by it,' reinforcing why it should be used without hesitation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resolve_intersectionA
Read-onlyIdempotent
Inspect

Resolve a NAMED cross-street (street1 × street2 within a locality/region/country) to a single best coordinate with a confidence score and a fleet-safe fallback. High-confidence tier matches US-metro highway corners; named non-highway streets resolve via the geocoder fallback. For free-form streets use geocode.

ParametersJSON Schema
NameRequiredDescriptionDefault
regionNoState / province (full name or abbreviation, e.g. 'TX')
countryNoISO 3166-1 alpha-2/alpha-3 country code
street1YesFirst street of the cross-street pair
street2YesSecond (cross) street of the pair
localityNoCity / town that scopes the lookup

Output Schema

ParametersJSON Schema
NameRequiredDescription
metaNo
adminNo
featureYesBest resolved intersection feature, including validated optional intersection provenance, or null when nothing resolved
warningsNo
precisionNo
confidenceYesResolved confidence 0–1 (0 when nothing resolved)
fallback_usedNoTrue when the geocoder fallback produced the answer
upstream_errorNo
Behavior4/5

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

Annotations already provide read-only and idempotent hints, so the bar is lower. The description adds useful behavioral details: confidence score, fleet-safe fallback, and tiered matching for US-metro highways versus geocoder fallback for non-highway streets.

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?

Two sentences, front-loaded with purpose, no fluff. Every clause adds value, including the fallback behavior and sibling differentiation.

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?

Given the annotations and output schema presence, the description adequately covers the tool's purpose, behavioral nuances, and alternative use cases. It could mention the return format in more detail, but output schema likely covers that.

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

Parameters3/5

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

Schema covers 100% of parameters with descriptions, so baseline is 3. The description adds minimal extra meaning, reinforcing that inputs are street names scoped by locality/region/country, but does not materially enhance understanding 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?

The description clearly states the tool resolves a NAMED cross-street to a coordinate with confidence score and fleet-safe fallback. It distinguishes from the geocode sibling by explicitly saying 'For free-form streets use geocode.'

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?

Provides explicit when-to-use guidance: use for named cross-streets, use geocode for free-form streets. Also describes internal fallback behavior, giving context on tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reverse_geocodeA
Read-onlyIdempotent
Inspect

Convert coordinates into the nearest address, street, or place. Use when starting from GPS coordinates or a map position.

ParametersJSON Schema
NameRequiredDescriptionDefault
latYesLatitude
lonYesLongitude
sizeNoNumber of nearby candidates (default 3, max 40)
layersNoRestrict to: address, street, venue, locality

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsNo
geojsonNo
metricsNo
summaryNoMap of scalar facts the LLM should surface verbatim
precisionNo
display_hintNo
Behavior4/5

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

Annotations already communicate read-only and idempotent behavior, so the description doesn't need to repeat those. The description adds behavioral detail by specifying the output types (address, street, place) and the 'nearest' qualifying behavior, which goes beyond the tool name and annotations.

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 two sentences long, with the primary purpose stated first and usage guidance in the second sentence. Every word earns its place; there is no redundancy or filler.

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?

Given the presence of a complete input schema, output schema, and annotations (readOnlyHint, idempotentHint), the description covers the essential context. It does not need to explain return values or parameter details since the schema and annotations already do so, and the description is adequate for tool selection.

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

Parameters3/5

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

Schema description coverage is 100%, with all four parameters (lat, lon, size, layers) already clearly described in the schema. The tool description adds no additional parameter meaning beyond the schema, so the baseline score of 3 is appropriate.

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 uses a specific verb ('Convert coordinates into') and identifies the resource ('nearest address, street, or place'), which clearly defines the tool's function. It distinguishes itself from the sibling 'geocode' by emphasizing the reverse direction (starting from coordinates), making the purpose unambiguous.

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 explicitly says 'Use when starting from GPS coordinates or a map position,' providing clear context for when the tool is appropriate. It does not mention alternatives or exclusions, but the guidance is sufficient for this simple reverse-geocoding tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_placesA
Read-onlyIdempotent
Inspect

CATEGORY-specific POI search near a point — gas stations, truck stops, restaurants, charging stations, etc. Use this when the user has a specific TYPE of place in mind (food / health / retail / fuel / accommodation / nightlife / transport / government / recreation). For broader DISCOVERY (e.g. 'cities within 50 miles' or 'venues by population'), use explore instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
latNoCenter latitude (alternative to `center` object)
lonNoCenter longitude (alternative to `center` object)
limitNoMax results (default 10, max 50)
queryNoFree-text place query such as 'truck stop', 'restaurant', 'charging station'
centerNoCenter point for nearby search ({lat, lon} object or JSON string). You can also pass flat lat/lon.
layersNoRestrict to: venue, address
radius_mNoSearch radius in meters (default 1000, max 50000)
categoriesNoStructured categories: food, fuel, charging_station, education, health, entertainment, retail, accommodation, nightlife, transport, government, recreation

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsNo
geojsonNo
metricsNo
summaryNoMap of scalar facts the LLM should surface verbatim
display_hintNo
Behavior4/5

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

Annotations already declare read-only, idempotent, and open-world behavior. The description adds the categorical and proximity-based nature of the search, and how it differs from `explore`, which is useful context beyond the annotations without contradicting them.

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?

Two sentences, front-loaded with the core purpose and examples. The second sentence provides sharp usage guidance and an explicit alternative. There is zero redundancy or fluff.

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?

With an output schema, detailed input schema, and annotations, the description covers the essential context. It explicitly distinguishes from the most similar sibling (`explore`) and provides category examples, making it sufficiently complete for an agent to select and invoke the tool correctly.

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

Parameters3/5

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

Schema description coverage is 100%, with detailed parameter descriptions and defaults. The description adds practical query examples but doesn't introduce new parameter semantics beyond what the schema provides, so the baseline score of 3 applies.

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 'CATEGORY-specific POI search near a point', which clearly identifies the tool's action, resource, and scope. Concrete examples like 'gas stations, truck stops, restaurants' and the explicit contrast with `explore` distinguish it from sibling tools.

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 provides explicit when-to-use guidance: 'Use this when the user has a specific TYPE of place in mind' and for broader discovery, 'use `explore` instead.' This clearly names the alternative and sets a crisp boundary, which is ideal for agent selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

trace_attributesA
Read-onlyIdempotent
Inspect

Trace attributes return road/network attributes for matched traces. Feed a GPS breadcrumb trail (2–100 points) and get per-segment road names, road classes, speed limits, surfaces, truck-route flags, and segment lengths along the matched route, plus a matcher confidence score. Use to audit what roads a vehicle actually used (speed-limit compliance, truck-route adherence, surface checks). For just the matched route line, use map_match.

ParametersJSON Schema
NameRequiredDescriptionDefault
shapeYesRaw GPS breadcrumb trail in travel order — 2 to 100 points of { lat, lon, time? }. `time` is optional epoch seconds; timestamps improve match quality on noisy traces.
costingNoTransport mode the trace was recorded with (default: auto)
search_radiusNoSnap radius in meters around each point (1–100). Increase for noisy GPS.
vehicle_profileNoTruck preset (DRY_VAN_53, FLATBED_48, BOX_TRUCK_26, …) — same 10-profile table as directions. Implies costing=truck.

Output Schema

ParametersJSON Schema
NameRequiredDescription
metaNo
edgesYes
adminsNo
costingYes
geojsonNo
matchedYes
geometryNo
confidenceYesMatcher confidence 0–1
edge_countYes
road_namesYes
distance_kmYes
costing_optionsNo
vehicle_profileNo
duration_secondsNo
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true. The description adds behavioral context by revealing the matcher confidence score and the segment-level output, and the audit use case. No contradictions.

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?

Three sentences, each earning its place: function, output/use case, and sibling alternative. Front-loaded with the main verb and resource, no filler.

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?

With a strong output schema and detailed parameter schema, the description covers purpose, use case, and alternatives. It is complete for a read-only trace-analysis tool with good annotations.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description doesn't add parameter-specific meaning beyond what the schema already provides; it only summarizes the input (GPS breadcrumb) and output. No new semantics over 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 it 'return road/network attributes for matched traces' and lists the concrete attributes (road names, classes, speed limits, etc.). Explicitly distinguishes from sibling `map_match` by saying 'For just the matched route line, use `map_match`'.

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?

Provides clear when-to-use context: 'Use to audit what roads a vehicle actually used (speed-limit compliance, truck-route adherence, surface checks)'. Also explicitly names the alternative `map_match` for route-line-only needs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

trafficA
Read-only
Inspect

Retrieve live traffic conditions, congestion, and speed for a location. Use when traffic is needed independently of routing — for corridor monitoring, area congestion, or incident checks. COVERAGE: live data for ~30 major US metros; returns degraded or empty values outside these areas. For rural coordinates, qualify the response (e.g. 'no live traffic coverage here — showing free-flow speeds').

ParametersJSON Schema
NameRequiredDescriptionDefault
latYesLatitude
lonYesLongitude
unitsNoSpeed units — auto-detected from location (mph in US/UK, km/h elsewhere). Override if needed. Accepts 'km'/'mi' as aliases.

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsNo
geojsonNo
metricsNo
summaryNoMap of scalar facts the LLM should surface verbatim
display_hintNo
Behavior5/5

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

The description goes well beyond annotations by disclosing coverage limitations (~30 major US metros), degraded/empty values outside those areas, and instructing to qualify responses for rural locations. This adds significant behavioral context that annotations (readOnlyHint, openWorldHint, idempotentHint) do not cover.

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 three sentences, each serving a distinct purpose: core function, usage context, and coverage caveat. It is front-loaded and concise, with no filler.

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 simple location-based tool, the description covers the essential caveat (coverage limitation) and usage context. An output schema exists, so return values are already specified, and annotations provide safety hints. The description is complete enough for an agent to select and invoke correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so parameters are already well-documented (lat/lon, units with auto-detection and aliases). The description adds no meaningful parameter information beyond the schema, so the baseline score of 3 applies.

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 clearly states the tool retrieves live traffic conditions, congestion, and speed for a location, with a specific verb and resource. It distinguishes this tool from siblings by noting 'independently of routing', which separates it from directions and routing-focused tools.

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?

Explicitly states when to use the tool ('when traffic is needed independently of routing') and provides use cases (corridor monitoring, area congestion, incident checks). It also includes guidance for handling rural coordinates, which shows thoughtful usage instructions beyond alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

weatherA
Read-only
Inspect

Get current and forecast weather for a location, including severe weather alerts and minute-by-minute precipitation. Use for destination conditions, travel planning, or route risk assessment.

ParametersJSON Schema
NameRequiredDescriptionDefault
latNoLatitude
lonNoLongitude
unitsNoTemperature/wind units (default: imperial)
locationNoPlace name or address (will be geocoded)
forecast_daysNoForecast days 1-16 (default 5)
include_alertsNoInclude severe weather alerts and warnings (default: true)
include_forecastNoInclude multi-day hourly forecast
include_minutelyNoInclude minute-by-minute precipitation for next 60 min

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsNo
alertsNo
geojsonNo
metricsNo
summaryNoMap of scalar facts the LLM should surface verbatim
display_hintNo
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the tool is known to be safe. The description adds feature context (alerts, minutely precipitation) but does not disclose behaviors like geocoding of location strings or how conflicts between lat/lon and location are resolved. This is acceptable but not rich.

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 two sentences, front-loaded with the primary action, then relevant use cases. Every word earns its place with no redundancy or filler.

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?

Given the 8 parameters and presence of an output schema, the description covers the tool's purpose and use cases well. It lacks a note about how the tool geocodes location or how lat/lon vs. location interact, but this is not critical given the schema and typical usage.

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

Parameters3/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 adds no parameter-specific information beyond what the schema already provides. It correctly implies location and forecast related parameters but does not elaborate on their semantics.

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 uses a specific verb ('Get') and resource ('current and forecast weather') and highlights distinguishing features (severe weather alerts, minute-by-minute precipitation). It clearly sets the tool apart from sibling tools like geocoding and directions.

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?

Explicit use cases are provided ('destination conditions, travel planning, or route risk assessment'). However, it does not mention when not to use the tool or suggest specific alternative tools, so it falls short of a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables detection and analysis of pre-public product launches through web search, content extraction, AI-powered scoring, and automated alerting. Provides comprehensive tools for surfacing stealth startup signals before they trend publicly.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI chat clients to perform market research and competitive intelligence by gathering company overviews, competitor lists, product portfolios, pricing snapshots, and recent news via live Tavily search.
    MIT

View all MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources