Skip to main content
Glama
AIWerk

Google Maps MCP Server

by AIWerk

maps_directions

Read-only

Get turn-by-turn directions with multiple travel modes, waypoints, live traffic, and route preferences. Optimize waypoint order or request alternative routes for efficient travel.

Instructions

Compute a route with turn-by-turn steps between two points, with optional waypoints. Supports DRIVE, WALK, BICYCLE, TWO_WHEELER and TRANSIT, live traffic for the motorised modes, toll/highway/ferry avoidance, alternative routes and waypoint order optimisation. Origin, destination and waypoints each accept an address, "latitude,longitude", or "place_id:...". Set include_steps=false when only total time and distance matter.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
unitsNoUnits in the instructions, default METRIC.
originYesStart of the route. Address ("Bern main station"), coordinates ("46.9480,7.4474") or a place ID ("place_id:ChIJ...").
waypointsNoOptional stops along the way, in order. Each one: Address ("Bern main station"), coordinates ("46.9480,7.4474") or a place ID ("place_id:ChIJ...").
avoid_tollsNoAvoid toll roads (motorised modes only).
destinationYesEnd of the route. Address ("Bern main station"), coordinates ("46.9480,7.4474") or a place ID ("place_id:ChIJ...").
region_codeNoCLDR region code, e.g. "CH".
travel_modeNoTravel mode, default DRIVE.
alternativesNoReturn alternative routes as well.
arrival_timeNoRFC 3339 UTC arrival timestamp. TRANSIT only, and mutually exclusive with departure_time.
avoid_ferriesNoAvoid ferries (motorised modes only).
include_stepsNoInclude turn-by-turn steps, default true. Set false for totals only, which is cheaper.
language_codeNoISO 639 language code for the instructions, e.g. "de".
transit_modesNoTRANSIT only, restrict the vehicle types considered.
avoid_highwaysNoAvoid highways (motorised modes only).
departure_timeNoRFC 3339 UTC timestamp, e.g. "2026-08-13T07:30:00Z". Must be in the future.
routing_preferenceNoTraffic handling for DRIVE and TWO_WHEELER, default TRAFFIC_AWARE. TRAFFIC_AWARE_OPTIMAL is slower and costs more. Ignored for the other modes.
optimize_waypoint_orderNoLet the API reorder the waypoints for the shortest total route.
transit_routing_preferenceNoTRANSIT only, what to optimise for.
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the read-only safety profile is covered. The description adds behavioral context about live traffic being available for motorised modes, and notes that setting include_steps=false is 'cheaper'—useful cost/performance information beyond the 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, front-loads the core purpose, and packs in essential capabilities without fluff. Every sentence earns its place, making it concise and well-structured for an 18-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the high complexity (18 parameters, no output schema), the description partially covers what the tool returns—turn-by-turn steps or total time and distance—but does not describe the full response structure, alternative route behavior, or other return fields. While input semantics are well covered, the return value gap makes it incomplete.

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 adds some clarification about accepted formats for origin/destination/waypoints and that include_steps=false gives totals, but much of this is already present in the schema. It does not provide significant additional meaning beyond structured 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 description clearly states the tool computes a route with turn-by-turn steps, listing supported travel modes and key features like live traffic and avoidance options. This specific verb+resource distinguishes it from sibling tools such as maps_distance_matrix or maps_geocode.

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 description gives clear context for the tool's main use (route computation with optional waypoints and modes) but does not explicitly mention when to use it over alternatives like maps_distance_matrix. The note 'Set include_steps=false when only total time and distance matter' is a parameter-level hint, not a tool-level alternative.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AIWerk/mcp-server-google-maps'

If you have feedback or need assistance with the MCP directory API, please join our Discord server