Skip to main content
Glama

isochrone

Read-onlyIdempotent

Computes reachability polygons: the area reachable from an origin within given travel-time or travel-distance bands. Use for service coverage, dispatch range, territory design, and 'how far can I get in X minutes' questions; use directions or distance_matrix for a route or distance between specific points instead. Pass multiple bands in one call (contours_minutes:[10,20,30]) for nested polygons in one response, up to 4 bands, defaulting to 15/30/60-minute driving bands if none given. location accepts an address string or 'lat,lon'. costing selects the travel profile (auto default, or truck/bicycle/pedestrian/motorcycle). Read-only and cached. Returns a GeoJSON FeatureCollection of nested polygon contours, one per band.

Input Schema

TableJSON 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

TableJSON Schema
NameRequiredDescriptionDefault
itemsNo
geojsonNo
metricsNo
summaryNoMap of scalar facts the LLM should surface verbatim
display_hintNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed15 schema fields changed
    • removedInput schema / properties / contours_km / $ref
      Removed value: -"#/properties/contours_minutes"
    • changedInput schema / properties / contours_km / description
      Previous value: -"Distance bands in km. Max 4 bands per call (Valhalla limit; over returns 400)."New value: +"Distance bands in km. Max 4 bands per call (over returns 400)."
    • addedInput schema / properties / contours_km / items
      Added value: +{
      +  "type": "number"
      +}
    • addedInput schema / properties / contours_km / maxItems
      Added value: +4
    • addedInput schema / properties / contours_km / type
      Added value: +"array"
    • changedInput schema / properties / contours_minutes / description
      Previous value: -"Time bands in minutes, e.g. [10, 20, 30]. Max 4 bands per call (Valhalla limit; over returns 400)."New value: +"Time bands in minutes, e.g. [10, 20, 30]. Max 4 bands per call (over returns 400)."
    • addedInput schema / properties / contours_minutes / maxItems
      Added value: +4
    • addedInput schema / properties / location / maxLength
      Added value: +2000
    • addedInput schema / properties / truck_height / maximum
      Added value: +30
    • addedInput schema / properties / truck_height / minimum
      Added value: +0
    • addedInput schema / properties / truck_weight / maximum
      Added value: +200
    • addedInput schema / properties / truck_weight / minimum
      Added value: +0
    • changedOutput schema / additionalProperties
      Previous value: -falseNew value: +true
    • addedOutput schema / properties / items
      Added value: +{
      +  "items": {
      +    "additionalProperties": {},
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / metrics
      Added value: +{}
  2. Changed2 schema fields changed
    • changedInput schema / properties / contours_km / description
      Previous value: -"Distance bands in km"New value: +"Distance bands in km. Max 4 bands per call (Valhalla limit; over returns 400)."
    • changedInput schema / properties / contours_minutes / description
      Previous value: -"Time bands in minutes, e.g. [10, 20, 30]"New value: +"Time bands in minutes, e.g. [10, 20, 30]. Max 4 bands per call (Valhalla limit; over returns 400)."
  3. Changed3 schema fields changed
    • addedInput schema / properties / contours_km / $ref
      Added value: +"#/properties/contours_minutes"
    • removedInput schema / properties / contours_km / items
      Removed value: -{
      -  "type": "number"
      -}
    • removedInput schema / properties / contours_km / type
      Removed value: -"array"
  4. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "display_hint": {
      +      "additionalProperties": true,
      +      "properties": {
      +        "layout": {
      +          "anyOf": [
      +            {
      +              "enum": [
      +                "summary",
      +                "table",
      +                "summary+table",
      +                "map",
      +                "chart+table"
      +              ],
      +              "type": "string"
      +            },
      +            {
      +              "type": "string"
      +            }
      +          ]
      +        },
      +        "map_layers": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "preferred_charts": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "sections": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "required": [
      +        "layout"
      +      ],
      +      "type": "object"
      +    },
      +    "geojson": {
      +      "additionalProperties": true,
      +      "properties": {
      +        "features": {
      +          "items": {
      +            "additionalProperties": true,
      +            "properties": {
      +              "geometry": {
      +                "anyOf": [
      +                  {
      +                    "additionalProperties": true,
      +                    "properties": {
      +                      "coordinates": {},
      +                      "geometries": {
      +                        "items": {},
      +                        "type": "array"
      +                      },
      +                      "type": {
      +                        "anyOf": [
      +                          {
      +                            "enum": [
      +                              "Point",
      +                              "LineString",
      +                              "Polygon",
      +                              "MultiPoint",
      +                              "MultiLineString",
      +                              "MultiPolygon",
      +                              "GeometryCollection"
      +                            ],
      +                            "type": "string"
      +                          },
      +                          {
      +                            "type": "string"
      +                          }
      +                        ]
      +                      }
      +                    },
      +                    "required": [
      +                      "type"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              },
      +              "id": {
      +                "type": [
      +                  "string",
      +                  "number"
      +                ]
      +              },
      +              "properties": {
      +                "additionalProperties": {},
      +                "type": "object"
      +              },
      +              "type": {
      +                "const": "Feature",
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "type",
      +              "geometry"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "type": {
      +          "const": "FeatureCollection",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "type",
      +        "features"
      +      ],
      +      "type": "object"
      +    },
      +    "summary": {
      +      "additionalProperties": {},
      +      "description": "Map of scalar facts the LLM should surface verbatim",
      +      "type": "object"
      +    }
      +  },
      +  "type": "object"
      +}
  5. Changed1 schema field changed
    • addedInput schema / additionalProperties
      Added value: +false
  6. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint. The description adds 'Read-only and cached' (caching is not in annotations) and details the default band behavior (15/30/60-minute driving) and output format (GeoJSON FeatureCollection of nested polygon contours). This goes well beyond the structured metadata, providing rich behavioral context without contradicting any annotation.

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 efficiently structured: it opens with the core function, then use cases, then usage specifics, and finally output format. Every sentence contributes essential information with no filler. The length is justified by the tool's complexity, and the key points are front-loaded.

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 is complete for an agent to call the tool correctly. It covers the purpose, usage context, parameter behavior, defaults, and output format. With an output schema present, the description need not detail return structures beyond the high-level summary it provides. Nothing critical is missing for correct invocation.

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 the baseline is 3. The description adds meaningful usage context beyond the schema: it explains that location accepts an address or 'lat,lon' (schema already says this, but the description reinforces it), and it clarifies how to pass multiple bands with an example and the default. It also highlights that costing selects the travel profile with the default auto. These additions slightly elevate the value beyond the schema, so a 4 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 opens with a precise definition: 'Computes reachability polygons: the area reachable from an origin within given travel-time or travel-distance bands.' It immediately distinguishes itself from sibling tools by explicitly naming directions and distance_matrix for point-to-point routes. This is a specific verb+resource that leaves no ambiguity.

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?

Usage guidance is explicit: it lists concrete use cases (service coverage, dispatch range, territory design) and tells the agent to use directions or distance_matrix instead for routes between specific points. It also explains how to pass multiple bands (contours_minutes:[10,20,30]) and the default bands, giving clear when-to-use and how-to-use instructions.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources