Skip to main content
Glama

Get directions

goplaces_directions
Read-onlyIdempotent

Get directions between two locations with distance, duration, and warnings. Specify endpoints by text, place ID, or coordinates for walking, driving, cycling, or transit routes.

Instructions

Get directions, distance, duration, warnings, and optional steps between two locations using Google Routes. Each endpoint can be specified by text, place ID, or latitude/longitude. Supports walk, drive, bicycle, transit, units, departure/arrival time, drive avoid modifiers, and one compare mode.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeNoPrimary travel mode. Defaults to drive; pass walk explicitly for a walking route.drive
unitsNoLocalized distance units.metric
regionNoOptional CLDR region code, for example 'US' or 'DE'.
to_latNoDestination latitude. Must be paired with to_lng.
to_lngNoDestination longitude. Must be paired with to_lat.
to_textNoDestination as an address or place name. Use only one destination form.
from_latNoOrigin latitude. Must be paired with from_lng.
from_lngNoOrigin longitude. Must be paired with from_lat.
languageNoOptional BCP-47 language code, for example 'en' or 'en-US'.
from_textNoOrigin as an address or place name. Use only one origin form.
waypointsNoUp to 25 intermediate stops, in order, as addresses or place names. Text only; place IDs are not accepted here.
avoid_tollsNoAvoid toll roads. Requires drive mode for the affected route.
to_place_idNoDestination Google place ID. Use only one destination form.
alternativesNoReturn alternative routes as well. Cannot be combined with waypoints.
arrival_timeNoOptional RFC3339 transit arrival time. Requires transit mode and is mutually exclusive with departure_time.
compare_modeNoOptional second travel mode to compare with mode.
avoid_ferriesNoAvoid ferries. Requires drive mode for the affected route.
from_place_idNoOrigin Google place ID. Use only one origin form.
include_stepsNoInclude turn-by-turn steps in the response.
transit_modesNoRestrict transit to these vehicle types. Requires transit mode.
avoid_highwaysNoAvoid highways. Requires drive mode for the affected route.
departure_timeNoOptional RFC3339 departure time, e.g. 2030-05-10T18:57:00-03:00. Mutually exclusive with arrival_time.
routing_preferenceNoTraffic handling for drive mode. Defaults to traffic_aware when a departure_time is given, because a traffic-unaware route ignores it.
transit_routing_preferenceNoTransit routing bias. Requires transit mode.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
legsNoPresent when waypoints were given.
modeNo
errorNoPresent only on failure; the result is also flagged isError.
stepsNoPresent when include_steps is true. Transit steps carry a transit object with line, headsign, stops, and times.
routesNoPresent instead of a single route when compare_mode is used.
summaryNo
maps_urlNo
warningsNo
end_addressNo
alternativesNo
distance_textNo
duration_textNo
start_addressNo
distance_metersNo
duration_secondsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds some behavioral context (returns warnings, optional steps, supports compare mode) but does not disclose rate limits, auth requirements, or other operational details beyond what the schema and 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?

Two sentences with zero waste. The purpose is front-loaded, followed by a compact list of capabilities. Every sentence earns its place.

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 24 parameters, an output schema, and rich annotations, the description provides a solid high-level overview of the tool's purpose and main features. It omits some parameter groups (e.g., waypoints, alternatives, routing preferences), but those are fully covered by the schema, and the output schema explains return values. Minor gaps like not mentioning intermediate stops keep it from a 5.

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 schema already documents every parameter in detail. The description synthesizes endpoint specification forms and lists supported modes, but adds no syntax or format details beyond what the schema provides, making it a baseline case of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies the verb ('Get directions'), the resource ('directions, distance, duration, warnings, and optional steps'), and the domain ('between two locations using Google Routes'). It does not explicitly distinguish the tool from related siblings such as goplaces_route_search or goplaces_route_matrix, so it falls short of a 5.

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?

Usage is only implied by the phrase 'between two locations' and the list of supported modes. There is no explicit guidance on when to choose this tool over alternatives like route_search or route_matrix, nor are exclusions or prerequisites stated.

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