Skip to main content
Glama

geo-route

Shortest walking, biking, or driving route between two coordinates. Returns distance (metres) and estimated travel time (minutes).

USE FOR:

  • "Walking directions from A to B"

  • "How long to bike from X to Y?"

  • Short local trips (under ~10 km)

NOT FOR: intercity trains/buses → use eu-transit-router instead.

EXAMPLE: User: "Walk from Koper bus station to Izola center" → --lat 45.548 --lon 13.730 --to-lat 45.537 --to-lon 13.660 --profile walk

If you only have place names, call geo-geocode first to get coordinates.

Input Schema

NameRequiredDescriptionDefault
latYesOrigin latitude.
lonYesOrigin longitude.
distNoGraph radius in metres — increase if origin/destination are far apart (max 10 000).
to_latYesDestination latitude.
to_lonYesDestination longitude.
profileNoTravel mode: walk, bike, or drive.walk
timeoutNoHard timeout in seconds (max 60).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / required
      Previous value: -[
      -  "lat",
      -  "to_lat",
      -  "lon",
      -  "to_lon"
      -]New value: +[
      +  "to_lat",
      +  "to_lon",
      +  "lat",
      +  "lon"
      +]
  2. Changed1 schema field changed
    • changedInput schema / required
      Previous value: -[
      -  "lat",
      -  "to_lon",
      -  "to_lat",
      -  "lon"
      -]New value: +[
      +  "lat",
      +  "to_lat",
      +  "lon",
      +  "to_lon"
      +]
  3. Changed1 schema field changed
    • changedInput schema / required
      Previous value: -[
      -  "lon",
      -  "to_lat",
      -  "to_lon",
      -  "lat"
      -]New value: +[
      +  "lat",
      +  "to_lon",
      +  "to_lat",
      +  "lon"
      +]
  4. Changed1 schema field changed
    • changedInput schema / required
      Previous value: -[
      -  "to_lon",
      -  "lon",
      -  "lat",
      -  "to_lat"
      -]New value: +[
      +  "lon",
      +  "to_lat",
      +  "to_lon",
      +  "lat"
      +]
  5. Changed1 schema field changed
    • changedInput schema / required
      Previous value: -[
      -  "lat",
      -  "to_lat",
      -  "lon",
      -  "to_lon"
      -]New value: +[
      +  "to_lon",
      +  "lon",
      +  "lat",
      +  "to_lat"
      +]
  6. Changed1 schema field changed
    • changedInput schema / required
      Previous value: -[
      -  "lon",
      -  "to_lat",
      -  "lat",
      -  "to_lon"
      -]New value: +[
      +  "lat",
      +  "to_lat",
      +  "lon",
      +  "to_lon"
      +]
  7. Changed1 schema field changed
    • changedInput schema / required
      Previous value: -[
      -  "lat",
      -  "lon",
      -  "to_lon",
      -  "to_lat"
      -]New value: +[
      +  "lon",
      +  "to_lat",
      +  "lat",
      +  "to_lon"
      +]
  8. Changed1 schema field changed
    • changedInput schema / required
      Previous value: -[
      -  "to_lat",
      -  "lon",
      -  "to_lon",
      -  "lat"
      -]New value: +[
      +  "lat",
      +  "lon",
      +  "to_lon",
      +  "to_lat"
      +]
  9. Changed1 schema field changed
    • changedInput schema / required
      Previous value: -[
      -  "to_lat",
      -  "lat",
      -  "lon",
      -  "to_lon"
      -]New value: +[
      +  "to_lat",
      +  "lon",
      +  "to_lon",
      +  "lat"
      +]
  10. Changed1 schema field changed
    • changedInput schema / required
      Previous value: -[
      -  "lat",
      -  "lon",
      -  "to_lon",
      -  "to_lat"
      -]New value: +[
      +  "to_lat",
      +  "lat",
      +  "lon",
      +  "to_lon"
      +]
  11. Added

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the burden and largely does: it discloses return units, the local-trip scope (~10km), and the coordinate precondition. It does not state failure modes (e.g. what happens when origin/destination exceed the graph radius or the 30s timeout is hit), which would matter for a routing call.

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

Conciseness4/5

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

Front-loaded with the purpose, then scannable USE FOR / NOT FOR / EXAMPLE sections. The example uses CLI-style flag syntax (--lat) that is slightly mismatched with an MCP JSON call, a minor bit of noise, but overall there is no wasted prose.

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?

Seven parameters with full schema coverage and no output schema, so the description only needs to explain returns and scope, both of which it does (metres, minutes, ~10km local trips). Error and edge-case behavior for the dist/timeout limits is the only remaining gap.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The worked example goes beyond the schema by mapping real coordinate values to lat/lon/to_lat/to_lon and showing a concrete profile choice, giving the agent a usable invocation pattern rather than just field definitions.

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 first sentence states a specific verb+resource ('shortest walking, biking, or driving route between two coordinates') and immediately names the returned values (distance in metres, time in minutes). It also positions itself against the sibling eu-transit-router, so an agent can distinguish it without inspecting either schema.

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

Usage Guidelines5/5

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

Explicit USE FOR bullets (walking directions, bike time, sub-10km trips) and an explicit NOT FOR routing to eu-transit-router for intercity travel. It also tells the agent what to do when only place names are available: call geo-geocode first.

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