Skip to content
THE MANUAL / v0.4.0

Tool reference ​

All 42 tools, with every parameter, default, constraint and example. The same interface is available through MCP and the CLI.

Calling conventions ​

The examples are MCP argument objects. For a raw MCP tools/call, use the tool name as name and the object as arguments. Hosts may prefix tool names. The equivalent CLI calls below use mcp-gmap-rs call TOOL --args JSON.

Only top-level parameters have CLI flags. Pass nested objects and arrays as JSON. A bare boolean flag means true; --flag false sets false. Unknown properties are rejected. Inspect your installed release with tools or schema TOOL.

Google authentication and language are process configuration, not tool parameters. Exact route coordinates avoid address resolution; named locations may also require an API key for Geocoding. See authentication and configuration.

Calls can incur Google charges. Composite and matrix results may contain per-item errors even when the tool succeeds. Preserve Google source links, review/photo authors and AI-summary disclosures. Examples illustrate inputs, not current coverage or results.

Types, required fields and schema bounds come from the executable's schema-derived reference. Defaults, result descriptions and cross-field restrictions are reviewed against the implementation. Google may impose additional coverage and quota limits.

Unknown top-level properties are rejected; native API body objects accept Google fields, which Google validates. Mutating operations are not automatically retried.

Tools ​

maps_geocode ​

Convert an address or landmark to coordinates.

Resolve an address or landmark to the first Geocoding match. Use this to obtain reusable coordinates and a place ID; it does not validate postal deliverability.

CLI command: geocode. Google access: API key required in this implementation.

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
address / --addressstring; at least 1 character(s)Yes—Address, city or landmark to geocode.

Behavior and restrictions ​

  • No match is a tool error, not an empty successful location.
  • This direct tool uses Geocoding v3; Places fallback is used by location-resolving composites, not by this call.

Result ​

An object with location.lat, location.lng, formatted_address and place_id. Only the first result is returned.

Example ​

MCP arguments:

json
{
  "address": "Eiffel Tower, Paris, France"
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_geocode --args '{"address":"Eiffel Tower, Paris, France"}'

maps_validate_address ​

Validate and standardize a postal address; returns Google's verdict, corrections, components and geocode. A verdict is evidence, not a delivery guarantee.

Validate postal components and return corrections, the standardized address and Google’s verdict. Keep the verdict and unresolved components visible to the caller.

CLI command: validate-address. Google access: API key or OAuth for the main API.

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
addressLines / --address-linesarray of string; 1–10 items; each item at least 1 character(s)Yes—One or more postal-address lines, in order.
administrativeArea / --administrative-areastring; at least 1 character(s)NoNot suppliedState, province or corresponding administrative area.
enableUspsCass / --enable-usps-cassbooleanNofalseRequest USPS CASS processing; this implementation requires regionCode US or PR when true.
locality / --localitystring; at least 1 character(s)NoNot suppliedCity or locality.
postalCode / --postal-codestring; at least 1 character(s)NoNot suppliedPostal/ZIP code.
regionCode / --region-codestring; pattern: ^[A-Z]{2}$NoNot supplied; Google may infer itTwo-letter uppercase country/region code; recommended to disambiguate the address.
sessionToken / --session-tokenstring; at least 1 character(s)NoNo session token; Google bills outside an Autocomplete sessionSame-project Autocomplete (New) session token. Reuse the prediction token in this concluding request; create a fresh token for the next session.

Behavior and restrictions ​

  • A validation verdict is not a delivery guarantee.
  • Region/API coverage varies. This tool does not submit validation feedback or automatically accept corrections.

Result ​

The complete validation response, typically including result.verdict, result.address, result.geocode and responseId; Google may omit unavailable fields.

Example ​

MCP arguments:

json
{
  "addressLines": [
    "5 Avenue Anatole France"
  ],
  "regionCode": "FR",
  "locality": "Paris",
  "postalCode": "75007"
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_validate_address --args '{"addressLines":["5 Avenue Anatole France"],"regionCode":"FR","locality":"Paris","postalCode":"75007"}'

maps_pollen ​

Get 1-5 days of pollen forecasts, indices and health recommendations for exact coordinates. Coverage varies by location and season.

Retrieve a short daily pollen forecast for exact coordinates. The response preserves pollen types, indices, plant information and provider recommendations.

CLI command: pollen. Google access: API key required in this implementation.

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
days / --daysinteger; 1–5No1Number of daily forecast records to request.
latitude / --latitudenumber; -90.0–90.0Yes—WGS84 latitude in decimal degrees; north is positive.
longitude / --longitudenumber; -180.0–180.0Yes—WGS84 longitude in decimal degrees; east is positive.
plantsDescription / --plants-descriptionbooleanNofalseInclude detailed plant descriptions and related information when available.

Behavior and restrictions ​

  • Requests use a page size of 5, sufficient for this tool’s maximum five-day request; no additional pages are fetched automatically.
  • Availability depends on location, season and Google coverage.

Result ​

The original Pollen response, including regionCode, dailyInfo and any nextPageToken. Each day can include pollen-type and plant information.

Example ​

MCP arguments:

json
{
  "latitude": 48.8584,
  "longitude": 2.2945,
  "days": 3,
  "plantsDescription": false
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_pollen --args '{"latitude":48.8584,"longitude":2.2945,"days":3,"plantsDescription":false}'

maps_area_insights ​

Count places within a circle, region or polygon using Places Aggregate. Optional place IDs are available only for counts of 100 or less; no automatic details requests.

Count matching places in a circle, region or polygon with Places Aggregate. This is an aggregate query rather than a count of a limited Places search page.

CLI command: area-insights. Google access: API key or OAuth for the main API.

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
area / --areaobjectYes—Exactly one of circle, region or customArea.
area.circleobjectNoNot suppliedCircular area; mutually exclusive with region/customArea.
area.circle.latLngobjectWhen parent is supplied—Circle center as exact coordinates.
area.circle.latLng.latitudenumber; -90.0–90.0When parent is supplied—WGS84 latitude in decimal degrees; north is positive.
area.circle.latLng.longitudenumber; -180.0–180.0When parent is supplied—WGS84 longitude in decimal degrees; east is positive.
area.circle.radiusinteger; 23–50000When parent is supplied—Circle radius in metres.
area.customAreaobjectNoNot suppliedCustom polygon area; mutually exclusive with circle/region.
area.customArea.polygonobjectWhen parent is supplied—Polygon boundary.
area.customArea.polygon.coordinatesarray of object; 4–1000 itemsWhen parent is supplied—Ordered ring of coordinate objects; first and last coordinates must match.
area.customArea.polygon.coordinates[].latitudenumber; -90.0–90.0When parent is supplied—WGS84 latitude in decimal degrees; north is positive.
area.customArea.polygon.coordinates[].longitudenumber; -180.0–180.0When parent is supplied—WGS84 longitude in decimal degrees; east is positive.
area.regionobjectNoNot suppliedAn administrative/geographic region identified by a Google place resource.
area.region.placestring; pattern: ^places/[A-Za-z0-9_-]+$When parent is supplied—Region resource in places/PLACE_ID format, not a free-form region name.
excludedTypes / --excluded-typesarray of string; 1–50 items; each item at least 1 character(s)NoNo excluded-type filterGoogle place types to exclude.
includePlaces / --include-placesbooleanNofalseRequest matching place resource IDs in addition to the count.
includedTypes / --included-typesarray of string; 1–50 items; each item at least 1 character(s)Yes—Google place types to include, such as restaurant or cafe.
maxRating / --max-ratingnumber; 1.0–5.0NoNo upper rating filterInclusive upper rating bound.
minRating / --min-ratingnumber; 1.0–5.0NoNo lower rating filterInclusive lower rating bound; cannot exceed maxRating.
operatingStatus / --operating-statusarray of string; 1–3 items; values: OPERATING_STATUS_OPERATIONAL, OPERATING_STATUS_PERMANENTLY_CLOSED, OPERATING_STATUS_TEMPORARILY_CLOSEDNoGoogle defaults to operational placesAllowed operating states.
priceLevels / --price-levelsarray of string; 1–5 items; values: PRICE_LEVEL_FREE, PRICE_LEVEL_INEXPENSIVE, PRICE_LEVEL_MODERATE, PRICE_LEVEL_EXPENSIVE, PRICE_LEVEL_VERY_EXPENSIVENoAll price levelsAllowed price levels.

Behavior and restrictions ​

  • Supply exactly one area form. Nested objects are JSON values on the CLI; their child parameters do not have independent flags.
  • Polygon rings must be closed. Google also checks polygon geometry, supported types, area and coverage.
  • Place IDs are available only for counts of 100 or less. The tool does not automatically request Place Details.

Result ​

Google’s response with count (normally an int64 string) and optional placeInsights[].place resources when IDs were requested and available.

Example ​

MCP arguments:

json
{
  "area": {
    "circle": {
      "latLng": {
        "latitude": 48.8584,
        "longitude": 2.2945
      },
      "radius": 500
    }
  },
  "includedTypes": [
    "restaurant"
  ],
  "minRating": 4
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_area_insights --args '{"area":{"circle":{"latLng":{"latitude":48.8584,"longitude":2.2945},"radius":500}},"includedTypes":["restaurant"],"minRating":4}'

maps_snap_to_roads ​

Snap an ordered GPS path of 2-100 points to roads. Keep consecutive points within about 300 metres for good results. Optional interpolation adds road geometry.

Match an ordered GPS trace to the most likely road geometry. Use Nearest Roads for independent points rather than a travelled path.

CLI command: snap-to-roads. Google access: API key required in this implementation.

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
interpolate / --interpolatebooleanNofalseAdd intermediate road geometry between supplied points.
path / --patharray of object; 2–100 itemsYes—GPS coordinate objects in travel order.
path[].latitudenumber; -90.0–90.0When parent is supplied—WGS84 latitude in decimal degrees; north is positive.
path[].longitudenumber; -180.0–180.0When parent is supplied—WGS84 longitude in decimal degrees; east is positive.

Behavior and restrictions ​

  • Consecutive input points should be within about 300 metres for good matching.
  • Interpolated points may not have an originalIndex. Speed limits are not requested by this tool.

Result ​

The original Roads response, including snappedPoints and any warningMessage. Points preserve road placeId, location and originalIndex when provided.

Example ​

MCP arguments:

json
{
  "path": [
    {
      "latitude": -35.27801,
      "longitude": 149.12958
    },
    {
      "latitude": -35.28032,
      "longitude": 149.12907
    }
  ],
  "interpolate": true
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_snap_to_roads --args '{"path":[{"latitude":-35.27801,"longitude":149.12958},{"latitude":-35.28032,"longitude":149.12907}],"interpolate":true}'

maps_nearest_roads ​

Find the nearest road segments for 1-100 independent GPS points; preserves Google's originalIndex and road place IDs.

Find nearby road segments for independent GPS points without interpreting them as one continuous trace.

CLI command: nearest-roads. Google access: API key required in this implementation.

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
points / --pointsarray of object; 1–100 itemsYes—Independent coordinate objects to match.
points[].latitudenumber; -90.0–90.0When parent is supplied—WGS84 latitude in decimal degrees; north is positive.
points[].longitudenumber; -180.0–180.0When parent is supplied—WGS84 longitude in decimal degrees; east is positive.

Behavior and restrictions ​

  • A point can match more than one road segment; retain originalIndex rather than assuming one output per input.
  • Speed limits are not requested by this tool.

Result ​

The original Roads response with snappedPoints, road placeId, location and originalIndex mapping back to input points.

Example ​

MCP arguments:

json
{
  "points": [
    {
      "latitude": -35.27801,
      "longitude": 149.12958
    },
    {
      "latitude": -35.28032,
      "longitude": 149.12907
    }
  ]
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_nearest_roads --args '{"points":[{"latitude":-35.27801,"longitude":149.12958},{"latitude":-35.28032,"longitude":149.12907}]}'

maps_reverse_geocode ​

Convert coordinates to a street address.

Convert exact coordinates to the first reverse-Geocoding result. Use the result’s components when a formatted address alone is insufficient.

CLI command: reverse-geocode. Google access: API key required in this implementation.

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
latitude / --latitudenumber; -90.0–90.0Yes—WGS84 latitude in decimal degrees; north is positive.
longitude / --longitudenumber; -180.0–180.0Yes—WGS84 longitude in decimal degrees; east is positive.

Behavior and restrictions ​

  • Only the first result is returned. No match is a tool error.

Result ​

The first native Geocoding result, including formatted_address, address_components, geometry and place_id when available.

Example ​

MCP arguments:

json
{
  "latitude": 48.8584,
  "longitude": 2.2945
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_reverse_geocode --args '{"latitude":48.8584,"longitude":2.2945}'

maps_search_places ​

Search Places (New) by text with optional location and rating filters.

Search Places (New) by text and optional location/rating/type filters. Use returned IDs for selective detail requests.

CLI command: search-places. Google access: API key or OAuth for the main API.

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
includedType / --included-typestring; at least 1 character(s)NoNo type filterGoogle place type, such as cafe.
locationBias / --location-biasobjectNoNo location biasOptional circular search bias; a bias is not a hard geographic restriction.
locationBias.latitudenumber; -90.0–90.0When parent is supplied—WGS84 latitude in decimal degrees; north is positive.
locationBias.longitudenumber; -180.0–180.0When parent is supplied—WGS84 longitude in decimal degrees; east is positive.
locationBias.radiusnumber; 0.1–50000.0No5000Bias radius in metres.
minRating / --min-ratingnumber; 0.0–5.0NoNo rating filterMinimum user rating requested from Google.
openNow / --open-nowbooleanNoNo opening-status restrictionRestrict to places currently open when true.
query / --querystring; at least 1 character(s)Yes—Natural-language place query.

Behavior and restrictions ​

  • This tool requests one page of 20 results and does not return or automatically follow a page token.
  • Missing opening/rating data depends on Google coverage; do not infer an exhaustive inventory from this search.

Result ​

An array of up to 20 Google Place objects with selected search fields, Maps/source links and attribution metadata.

Example ​

MCP arguments:

json
{
  "query": "coffee near Gare de Lyon, Paris",
  "openNow": true,
  "minRating": 4
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_search_places --args '{"query":"coffee near Gare de Lyon, Paris","openNow":true,"minRating":4}'

maps_search_nearby ​

Find places around an address or exact coordinate pair, filtered by type, rating, and opening status.

Find places inside a bounded radius around a resolved center. Unlike Text Search, this uses a hard circular location restriction.

CLI command: search-nearby. Google access: Places accepts API key or OAuth. Address/landmark centers also need an API key for Geocoding resolution.

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
center / --centerobjectYes—Center input and the indicator describing how to interpret it.
center.isCoordinatesbooleanNofalseTreat value as exact coordinates without geocoding.
center.valuestring; at least 1 character(s)When parent is supplied—Address/landmark, or a latitude,longitude string when isCoordinates is true.
keyword / --keywordstring; at least 1 character(s)NoNo type filterA Google place type passed as includedTypes, such as cafe; not an arbitrary text keyword.
minRating / --min-ratingnumber; 0.0–5.0NoNo rating filterMinimum rating applied locally to the returned places.
openNow / --open-nowbooleanNofalseKeep only results whose currentOpeningHours.openNow is true.
radius / --radiusnumber; 0.1–50000.0No1000Search radius in metres.

Behavior and restrictions ​

  • When filtering, missing opening status does not count as open and missing rating is treated as 0.
  • Address centers require location resolution; coordinates avoid that extra call.

Result ​

An array of up to 20 selected Place objects. Local opening/rating filters can reduce the array further.

Example ​

MCP arguments:

json
{
  "center": {
    "value": "48.8584,2.2945",
    "isCoordinates": true
  },
  "keyword": "cafe",
  "radius": 500
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_search_nearby --args '{"center":{"value":"48.8584,2.2945","isCoordinates":true},"keyword":"cafe","radius":500}'

maps_place_details ​

Get full place details, reviews and attribution. Optional photo URLs retain author attribution. Display source/disclosure metadata alongside content.

Expand a known place ID into selected details, reviews and optional photo URLs. Preserve author/source information and any AI disclosure text.

CLI command: place-details. Google access: API key or OAuth for the main API.

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
maxPhotos / --max-photosinteger; 0–10No0Maximum photo-media URL lookups to perform.
placeId / --place-idstring; at least 1 character(s)Yes—Google place ID, optionally prefixed with places/.
sessionToken / --session-tokenstring; at least 1 character(s)NoNo session token; Google bills outside an Autocomplete sessionSame-project Autocomplete (New) session token. Reuse the prediction token in this concluding request; create a fresh token for the next session.

Behavior and restrictions ​

  • Each selected photo can make an additional request; zero photos avoids those calls.
  • The tool uses a fixed details field mask, not every possible Google Place field. Unavailable fields may be absent.

Result ​

A native Google Place object for the requested field mask. When photos are requested, photoUrls carries media URLs plus photo-author attribution and source links.

Example ​

MCP arguments:

json
{
  "placeId": "ChIJLU7jZClu5kcR4PcOOO6p3I0",
  "maxPhotos": 1
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_place_details --args '{"placeId":"ChIJLU7jZClu5kcR4PcOOO6p3I0","maxPhotos":1}'

maps_directions ​

Get directions, route geometry, navigation instructions and travel duration.

Compute a route between two endpoints and expose both selected Google route data and normalized totals.

CLI command: directions. Google access: Routes/Places accept API key or OAuth. Named-location resolution also needs an API key for Geocoding; exact coordinate strings avoid that lookup.

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
arrival_time / --arrival-timestring; at least 1 character(s)NoNot suppliedDesired arrival as RFC 3339 with timezone; transit mode only.
avoid_highways / --avoid-highwaysbooleanNofalseAvoid highways; true is supported only for driving.
avoid_tolls / --avoid-tollsbooleanNofalseAvoid toll roads; true is supported only for driving.
departure_time / --departure-timestring; at least 1 character(s)NoNot suppliedDeparture instant as RFC 3339 including Z or an explicit UTC offset.
destination / --destinationstring; at least 1 character(s)Yes—Destination address/landmark or exact latitude,longitude string.
mode / --modestring; values: driving, walking, bicycling, transitNodrivingTravel mode. Driving uses traffic-aware routing.
origin / --originstring; at least 1 character(s)Yes—Origin address/landmark or exact latitude,longitude string.
polylineQuality / --polyline-qualitystring; values: OVERVIEW, HIGH_QUALITYNoHIGH_QUALITY when trafficSegments=true; otherwise Google defaults to OVERVIEWGeometry quality: OVERVIEW or HIGH_QUALITY. An explicit choice always wins, including OVERVIEW together with trafficSegments=true. Controls point density independently of traffic calculations.
trafficSegments / --traffic-segmentsbooleanNofalseBoolean opt-in for driving only. Requests TRAFFIC_ON_POLYLINE with ENCODED_POLYLINE geometry; defaults to HIGH_QUALITY unless polylineQuality is explicit. Traffic on polylines triggers the higher-priced Compute Routes Enterprise SKU; leave false unless segment detail is needed.

Behavior and restrictions ​

  • departure_time and arrival_time cannot both be supplied. arrival_time is accepted only for transit.
  • Avoidance flags require driving. Google applies additional travel-mode/time/region restrictions.
  • No available route is an explicit error.
  • With trafficSegments=true, Routes supplies NORMAL, SLOW or TRAFFIC_JAM intervals. Normalized route and leg segments use the corresponding route or leg polyline, with independent point indices. Google intervals are [start,end); each segment geometry retains the shared end boundary vertex to cover the final edge. Missing or invalid coverage is reported explicitly rather than invented as normal traffic.
  • segmentMetadata.retrievedAt is the local response-fetch time, not a provider traffic observation time; trafficObservedAt is null because Routes does not return it. roadCategory and speedLimit are null because this Routes response supplies neither. No implicit Roads API calls or client-side duration multipliers are applied; durations remain Google predictions.
  • Traffic segments are optional and driving-only in this executable. This requests traffic-aware polylines and triggers Compute Routes Enterprise billing. Traffic interval contract; current SKU triggers.
  • polylineQuality selects Google’s geometry detail: HIGH_QUALITY uses more points, increases response size and can increase latency. Explicit OVERVIEW remains valid with trafficSegments=true. If omitted, traffic segments default to HIGH_QUALITY; otherwise Google uses OVERVIEW. The executable does not synthesize or interpolate additional detail. Geometry quality is independent of extraComputations: setting HIGH_QUALITY alone does not enable TRAFFIC_ON_POLYLINE. Official PolylineQuality definition.

Primary sources: https://developers.google.com/maps/billing-and-pricing/sku-details/routes, https://developers.google.com/maps/documentation/routes/reference/rest/v2/TopLevel/computeRoutes#PolylineQuality, https://developers.google.com/maps/documentation/routes/traffic_on_polylines

Result ​

An object containing routes, summary, total_distance (value in metres), total_duration (value in seconds) and optional optimization indices. Route entries contain selected legs, steps, polyline and warnings. When trafficSegments is true, route and leg results additionally include normalized segments and segmentMetadata.

Example ​

MCP arguments:

json
{
  "origin": "48.8584,2.2945",
  "destination": "48.8606,2.3376",
  "mode": "walking"
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_directions --args '{"origin":"48.8584,2.2945","destination":"48.8606,2.3376","mode":"walking"}'

maps_distance_matrix ​

Compute travel distances and durations for multiple origins and destinations.

Compare travel distance and duration for every origin/destination pair. Check individual cells and errors rather than treating a successful response as complete.

CLI command: distance-matrix. Google access: API key or OAuth for the main API.

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
avoid_highways / --avoid-highwaysbooleanNofalseAvoid highways; true is supported only for driving.
avoid_tolls / --avoid-tollsbooleanNofalseAvoid toll roads; true is supported only for driving.
departure_time / --departure-timestring; at least 1 character(s)NoNot suppliedDeparture instant as RFC 3339 including Z or an explicit UTC offset.
destinations / --destinationsarray of string; 1–50 items; each item at least 1 character(s)Yes—Destination strings: addresses or exact latitude,longitude pairs.
mode / --modestring; values: driving, walking, bicycling, transitNodrivingTravel mode. Driving uses traffic-aware routing.
origins / --originsarray of string; 1–50 items; each item at least 1 character(s)Yes—Origin strings: addresses or exact latitude,longitude pairs.

Behavior and restrictions ​

  • At most 625 origin × destination pairs; transit is limited to 100 pairs.
  • At most 50 non-coordinate origin/destination strings in total. Per-array schema limits do not override these combined limits.
  • Toll/highway avoidance applies only to driving. This tool does not expose arrival_time.
  • A single matrix HTTP request may bill multiple elements.

Result ​

An object with origin_addresses, destination_addresses, row-major distances and durations, and an errors array. Successful cell values are metres/seconds; failed or missing cells remain null.

Example ​

MCP arguments:

json
{
  "origins": [
    "48.8584,2.2945"
  ],
  "destinations": [
    "48.8606,2.3376",
    "48.8530,2.3499"
  ],
  "mode": "walking"
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_distance_matrix --args '{"origins":["48.8584,2.2945"],"destinations":["48.8606,2.3376","48.8530,2.3499"],"mode":"walking"}'

maps_elevation ​

Get elevation in meters for geographic coordinates.

Get geographic height for exact coordinate points.

CLI command: elevation. Google access: API key required in this implementation.

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
locations / --locationsarray of object; 1–512 itemsYes—Coordinate objects for which to request elevation.
locations[].latitudenumber; -90.0–90.0When parent is supplied—WGS84 latitude in decimal degrees; north is positive.
locations[].longitudenumber; -180.0–180.0When parent is supplied—WGS84 longitude in decimal degrees; east is positive.

Behavior and restrictions ​

  • The tool returns Google’s reported data without converting elevation units.

Result ​

The native Elevation results array. Entries can contain elevation in metres, location and resolution.

Example ​

MCP arguments:

json
{
  "locations": [
    {
      "latitude": 48.8584,
      "longitude": 2.2945
    }
  ]
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_elevation --args '{"locations":[{"latitude":48.8584,"longitude":2.2945}]}'

maps_timezone ​

Get timezone, UTC/DST offsets and local time. timestamp is Unix milliseconds.

Resolve timezone identity and UTC/DST offsets at an instant, then derive a local timestamp.

CLI command: timezone. Google access: API key required in this implementation.

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
latitude / --latitudenumber; -90.0–90.0Yes—WGS84 latitude in decimal degrees; north is positive.
longitude / --longitudenumber; -180.0–180.0Yes—WGS84 longitude in decimal degrees; east is positive.
timestamp / --timestampinteger; 0–253402300799999NoCurrent UTC time in millisecondsUnix epoch milliseconds, not seconds.

Behavior and restrictions ​

  • The request converts milliseconds to whole seconds; sub-second precision is not preserved.
  • Local time uses the returned raw and DST offsets for the requested instant.

Result ​

Timezone response fields such as timeZoneId, timeZoneName, rawOffset and dstOffset in seconds, plus derived localTime in RFC 3339 format.

Example ​

MCP arguments:

json
{
  "latitude": 48.8584,
  "longitude": 2.2945,
  "timestamp": 1793448000000
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_timezone --args '{"latitude":48.8584,"longitude":2.2945,"timestamp":1793448000000}'

maps_weather ​

Get current weather, daily forecast or hourly forecast.

Request current conditions or one page of daily/hourly forecast data for exact coordinates.

CLI command: weather. Google access: API key or OAuth for the main API.

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
forecastDays / --forecast-daysinteger; 1–10No5Requested daily forecast length; used only with forecast_daily.
forecastHours / --forecast-hoursinteger; 1–240No24Requested hourly forecast length; used only with forecast_hourly.
latitude / --latitudenumber; -90.0–90.0Yes—WGS84 latitude in decimal degrees; north is positive.
longitude / --longitudenumber; -180.0–180.0Yes—WGS84 longitude in decimal degrees; east is positive.
type / --typestring; values: current, forecast_daily, forecast_hourlyNocurrentSelect current conditions, daily forecast or hourly forecast.

Behavior and restrictions ​

  • forecastDays is ignored for other types; forecastHours is ignored outside forecast_hourly.
  • This tool does not automatically follow pagination tokens. The requested horizon may exceed the records in one response page.
  • Coverage and forecast availability depend on Google.

Result ​

The native Weather response: current-condition fields, forecastDays, or forecastHours, depending on type. Preserve returned units, timestamps and any nextPageToken.

Example ​

MCP arguments:

json
{
  "latitude": 48.8584,
  "longitude": 2.2945,
  "type": "forecast_daily",
  "forecastDays": 3
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_weather --args '{"latitude":48.8584,"longitude":2.2945,"type":"forecast_daily","forecastDays":3}'

maps_air_quality ​

Get air quality indices, optional pollutant concentrations and health recommendations.

Get current air-quality indices with optional pollutant concentrations and provider health recommendations.

CLI command: air-quality. Google access: API key or OAuth for the main API.

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
includeHealthRecommendations / --include-health-recommendationsbooleanNotrueRequest Google’s health-recommendation computation.
includePollutants / --include-pollutantsbooleanNofalseRequest pollutant concentrations.
latitude / --latitudenumber; -90.0–90.0Yes—WGS84 latitude in decimal degrees; north is positive.
longitude / --longitudenumber; -180.0–180.0Yes—WGS84 longitude in decimal degrees; east is positive.

Behavior and restrictions ​

  • Recommendations are provider data, not a personalized medical assessment.
  • This tool exposes current conditions, not historical or forecast endpoints.

Result ​

The native Air Quality current-conditions response, including indices and optional healthRecommendations/pollutants when supplied by Google.

Example ​

MCP arguments:

json
{
  "latitude": 48.8584,
  "longitude": 2.2945,
  "includePollutants": true
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_air_quality --args '{"latitude":48.8584,"longitude":2.2945,"includePollutants":true}'

maps_static_map ​

Fetch a PNG map with markers and paths. MCP returns an inline image; CLI returns base64 JSON or writes --output.

Render a PNG map with optional markers and path specifications.

CLI command: static-map. Google access: API key required in this implementation.

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
center / --centerstring; at least 1 character(s)NoNot suppliedCenter as an address or latitude,longitude string.
maptype / --maptypestring; values: roadmap, satellite, terrain, hybridNoroadmapBase map style.
markers / --markersarray of string; 1–100 items; each item at least 1 character(s)NoNo markersRepeated Google Static Maps marker specifications, e.g. color:red|48.8584,2.2945.
path / --patharray of string; 1–100 items; each item at least 1 character(s)NoNo pathsRepeated Google Static Maps path specifications, e.g. color:blue|48.8584,2.2945|48.8606,2.3376.
size / --sizestring; pattern: ^[1-9][0-9]{0,2}x[1-9][0-9]{0,2}$No600x400Pixel dimensions WIDTHxHEIGHT; runtime limits each dimension to 1–640.
zoom / --zoominteger; 0–21NoOmitted; Google chooses or infers itExplicit zoom level.

Behavior and restrictions ​

  • At least one of center, markers or path is required.
  • The complete request URL must fit within 16,384 characters. The schema’s size pattern is broader than the runtime’s 640-pixel bound.
  • Marker/path styling follows Google Static Maps syntax. Google attribution remains in the rendered image.

Result ​

MCP returns inline image/png content. CLI returns {mimeType,base64} JSON, or raw PNG bytes when --output is supplied.

Example ​

MCP arguments:

json
{
  "center": "48.8584,2.2945",
  "zoom": 14,
  "size": "320x240",
  "markers": [
    "color:red|48.8584,2.2945"
  ]
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_static_map --args '{"center":"48.8584,2.2945","zoom":14,"size":"320x240","markers":["color:red|48.8584,2.2945"]}'

maps_batch_geocode ​

Geocode up to 50 addresses with per-address success or error and bounded concurrency.

Geocode a bounded list of addresses while preserving input order and each item’s success or failure.

CLI command: batch-geocode. Google access: API key required in this implementation.

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
addresses / --addressesarray of string; 1–50 items; each item at least 1 character(s)Yes—Address/landmark strings to resolve.

Behavior and restrictions ​

  • Uses bounded concurrency with at most five Google requests active per process.
  • Item failures do not force a nonzero CLI exit status; inspect success/error on every row.

Result ​

An array in input order. Each row has address, success and either data (the geocode object) or error.

Example ​

MCP arguments:

json
{
  "addresses": [
    "Paris, France",
    "London, UK"
  ]
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_batch_geocode --args '{"addresses":["Paris, France","London, UK"]}'

maps_explore_area ​

Resolve a location and explore categories with details for top results. Use specific landmarks for trip planning.

Resolve one location, search selected categories around it, and expand only the leading results in each category.

CLI command: explore-area. Google access: Places accepts API key or OAuth. Named locations also need an API key for Geocoding.

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
location / --locationstring; at least 1 character(s)Yes—Address/landmark or exact latitude,longitude string.
radius / --radiusnumber; 0.1–50000.0No1000Category-search radius in metres.
topN / --top-ninteger; 1–20No3Maximum places per category to expand with details.
types / --typesarray of string; 1–10 items; each item at least 1 character(s)Norestaurant, cafe, tourist_attractionGoogle place categories to search.

Behavior and restrictions ​

  • Each category searches up to 20 places; count is the returned page count, not an aggregate inventory.
  • Category and detail failures remain visible within successful top-level output.
  • This composite makes multiple Google requests; limit categories and topN to the task.

Result ​

An object with resolved location, radius and categories. Each category has type/count/top or an error; expanded places can contain details_error.

Example ​

MCP arguments:

json
{
  "location": "48.8584,2.2945",
  "types": [
    "cafe"
  ],
  "radius": 500,
  "topN": 1
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_explore_area --args '{"location":"48.8584,2.2945","types":["cafe"],"radius":500,"topN":1}'

maps_plan_route ​

Plan a route through 2-27 stops. Optimize 2-25 intermediate stops, except transit. Exact coordinates are preserved.

Plan a single route through ordered stops, optionally asking Google to reorder intermediate stops while keeping the endpoints fixed.

CLI command: plan-route. Google access: Routes/Places accept API key or OAuth. Named-location resolution also needs an API key for Geocoding; exact coordinate strings avoid that lookup.

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
avoid_highways / --avoid-highwaysbooleanNofalseAvoid highways; true is supported only for driving.
avoid_tolls / --avoid-tollsbooleanNofalseAvoid toll roads; true is supported only for driving.
departure_time / --departure-timestring; at least 1 character(s)NoNot suppliedDeparture instant as RFC 3339 including Z or an explicit UTC offset.
mode / --modestring; values: driving, walking, bicycling, transitNodrivingTravel mode. Driving uses traffic-aware routing.
optimize / --optimizebooleanNotrue, subject to those conditionsRequest intermediate-stop optimization when more than three total stops and mode is not transit.
polylineQuality / --polyline-qualitystring; values: OVERVIEW, HIGH_QUALITYNoHIGH_QUALITY when trafficSegments=true; otherwise Google defaults to OVERVIEWGeometry quality: OVERVIEW or HIGH_QUALITY. An explicit choice always wins, including OVERVIEW together with trafficSegments=true. Controls point density independently of traffic calculations.
stops / --stopsarray of string; 2–27 items; each item at least 1 character(s)Yes—Ordered addresses/landmarks or exact latitude,longitude strings; first/last stay endpoints.
trafficSegments / --traffic-segmentsbooleanNofalseBoolean opt-in for driving only. Requests TRAFFIC_ON_POLYLINE with ENCODED_POLYLINE geometry; defaults to HIGH_QUALITY unless polylineQuality is explicit. Traffic on polylines triggers the higher-priced Compute Routes Enterprise SKU; leave false unless segment detail is needed.

Behavior and restrictions ​

  • Transit supports only two endpoints and no intermediate stops.
  • Optimization takes effect only for four or more total stops (at least two intermediate stops).
  • This optimizes stop order for one route, not vehicle/task assignment across a fleet.
  • With trafficSegments=true, Routes supplies NORMAL, SLOW or TRAFFIC_JAM intervals. Normalized route and leg segments use the corresponding route or leg polyline, with independent point indices. Google intervals are [start,end); each segment geometry retains the shared end boundary vertex to cover the final edge. Missing or invalid coverage is reported explicitly rather than invented as normal traffic.
  • segmentMetadata.retrievedAt is the local response-fetch time, not a provider traffic observation time; trafficObservedAt is null because Routes does not return it. roadCategory and speedLimit are null because this Routes response supplies neither. No implicit Roads API calls or client-side duration multipliers are applied; durations remain Google predictions.
  • Traffic segments are optional and driving-only in this executable. This requests traffic-aware polylines and triggers Compute Routes Enterprise billing. Traffic interval contract; current SKU triggers.
  • polylineQuality selects Google’s geometry detail: HIGH_QUALITY uses more points, increases response size and can increase latency. Explicit OVERVIEW remains valid with trafficSegments=true. If omitted, traffic segments default to HIGH_QUALITY; otherwise Google uses OVERVIEW. The executable does not synthesize or interpolate additional detail. Geometry quality is independent of extraComputations: setting HIGH_QUALITY alone does not enable TRAFFIC_ON_POLYLINE. Official PolylineQuality definition.

Primary sources: https://developers.google.com/maps/billing-and-pricing/sku-details/routes, https://developers.google.com/maps/documentation/routes/reference/rest/v2/TopLevel/computeRoutes#PolylineQuality, https://developers.google.com/maps/documentation/routes/traffic_on_polylines

Result ​

An object with mode, effective optimized, ordered resolved stops, display legs, total_distance, total_duration, polyline and warnings. Leg durationSeconds is numeric seconds. When trafficSegments is true, route and leg results additionally include normalized segments and segmentMetadata.

Example ​

MCP arguments:

json
{
  "stops": [
    "48.8584,2.2945",
    "48.8606,2.3376",
    "48.8530,2.3499"
  ],
  "mode": "walking",
  "optimize": false
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_plan_route --args '{"stops":["48.8584,2.2945","48.8606,2.3376","48.8530,2.3499"],"mode":"walking","optimize":false}'

maps_compare_places ​

Search and compare places with detailed information and optional driving distance from userLocation.

Find and enrich a short list of places, optionally comparing driving distance from exact user coordinates.

CLI command: compare-places. Google access: Places and optional Routes accept API key or OAuth.

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
limit / --limitinteger; 1–20No5Maximum matching places to enrich.
query / --querystring; at least 1 character(s)Yes—Places text-search query.
userLocation / --user-locationobjectNoNo distance/time comparisonExact user coordinates for optional distance comparison.
userLocation.latitudenumber; -90.0–90.0When parent is supplied—WGS84 latitude in decimal degrees; north is positive.
userLocation.longitudenumber; -180.0–180.0When parent is supplied—WGS84 longitude in decimal degrees; east is positive.

Behavior and restrictions ​

  • Comparison travel is driving; this tool has no configurable travel-mode parameter.
  • Details and distance failures are preserved instead of dropping otherwise usable places.
  • Only the requested shortlist is enriched.

Result ​

An object with places and optional distance_error. Places can include details/details_error, distance, drive_time and per-place distance_errors.

Example ​

MCP arguments:

json
{
  "query": "cafes near Eiffel Tower, Paris",
  "userLocation": {
    "latitude": 48.8584,
    "longitude": 2.2945
  },
  "limit": 3
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_compare_places --args '{"query":"cafes near Eiffel Tower, Paris","userLocation":{"latitude":48.8584,"longitude":2.2945},"limit":3}'

maps_search_along_route ​

Find places along a route using its encoded polyline.

Compute a route and search Places using its encoded polyline, rather than approximating the journey with one circular search.

CLI command: search-along-route. Google access: Routes/Places accept API key or OAuth. Named-location resolution also needs an API key for Geocoding; exact coordinate strings avoid that lookup.

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
destination / --destinationstring; at least 1 character(s)Yes—Route destination address/landmark or exact latitude,longitude string.
maxResults / --max-resultsinteger; 1–20No5Maximum Places results requested in the response page.
mode / --modestring; values: driving, walking, bicycling, transitNowalkingTravel mode for the route used by the search.
origin / --originstring; at least 1 character(s)Yes—Route origin address/landmark or exact latitude,longitude string.
textQuery / --text-querystring; at least 1 character(s)Yes—Places query for stops along the route, such as cafes or charging stations.

Behavior and restrictions ​

  • The default mode is walking, unlike directions, matrix and plan-route, which default to driving.
  • No automatic pagination or Place Details expansion is performed.
  • This tool does not expose the departure/arrival or avoidance parameters of directions.

Result ​

An object with places, optional routingSummaries, and the computed route including selected Google route data and normalized totals.

Example ​

MCP arguments:

json
{
  "textQuery": "cafes",
  "origin": "48.8584,2.2945",
  "destination": "48.8606,2.3376",
  "mode": "walking",
  "maxResults": 3
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_search_along_route --args '{"textQuery":"cafes","origin":"48.8584,2.2945","destination":"48.8606,2.3376","mode":"walking","maxResults":3}'

maps_local_rank_tracker ​

Track search rank across a geographic grid for 1-3 keywords; returns ARP, ATRP, SoLV and per-point errors.

Measure a target place’s appearance within the first 20 Text Search results at each point of a geographic grid.

CLI command: local-rank-tracker. Google access: API key or OAuth for the main API.

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
center / --centerobjectYes—Exact center of the scan grid.
center.latitudenumber; -90.0–90.0When parent is supplied—WGS84 latitude in decimal degrees; north is positive.
center.longitudenumber; -180.0–180.0When parent is supplied—WGS84 longitude in decimal degrees; east is positive.
gridSize / --grid-sizeinteger; 3–7No3Number of rows and columns; all integer values 3–7 are accepted.
gridSpacing / --grid-spacingnumber; 100.0–10000.0No1000Distance in metres between neighboring grid points.
keyword / --keywordstring; at least 1 character(s)NoNot suppliedSingle search keyword; use keyword or keywords.
keywords / --keywordsarray of string; 1–3 items; each item at least 1 character(s)NoNot suppliedOne to three search keywords; takes precedence if both keyword forms are supplied.
placeId / --place-idstring; at least 1 character(s)Yes—Target place ID, optionally prefixed with places/.

Behavior and restrictions ​

  • At least one of keyword or keywords is required; individual schema rows do not express that alternative.
  • Search requests scale as keyword count × gridSize² (up to 147 before retries).
  • Failed points are excluded from rank metrics, not treated as valid misses. Metrics can be null when no usable observations exist.
  • A search rank is not the target’s user-review rating. Results are samples from biased text searches, not guarantees of a user’s Google Maps ranking.

Result ​

An object with target, grid_size, grid_spacing_m and per-keyword metrics/grid. ARP averages found ranks; ATRP uses rank 21 for successful queries where the target was absent; SoLV is the percentage of successful points ranked in the top 3. failed_points and found_in expose coverage.

Example ​

MCP arguments:

json
{
  "keyword": "cafe",
  "placeId": "ChIJLU7jZClu5kcR4PcOOO6p3I0",
  "center": {
    "latitude": 48.8584,
    "longitude": 2.2945
  },
  "gridSize": 3,
  "gridSpacing": 500
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_local_rank_tracker --args '{"keyword":"cafe","placeId":"ChIJLU7jZClu5kcR4PcOOO6p3I0","center":{"latitude":48.8584,"longitude":2.2945},"gridSize":3,"gridSpacing":500}'

maps_speed_limits ​

Get posted automobile speed limits for up to 100 GPS points or road-segment place IDs. Restricted Google Asset Tracking license/access is required; enabling Roads alone does not grant access. Each returned limit can incur a separate charge. Data is not real-time or guaranteed accurate.

Get posted automobile speed limits for road segments using a GPS path or IDs returned by Roads snapping/nearest-road calls. This restricted Google feature requires Asset Tracking access; enabling the Roads API alone is insufficient.

CLI command: speed-limits. Google access: API key required in this implementation, including when OAuth mode is selected. Roads Speed Limits entitlement is separate from credentials.

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
path / --patharray of object; 1–100 itemsNoNot suppliedOne to 100 GPS coordinates; mutually exclusive with roadPlaceIds. Google snaps this path before looking up segment limits.
path[].latitudenumber; -90.0–90.0When parent is suppliedRequired for every path pointWGS84 latitude in decimal degrees, from -90 to 90.
path[].longitudenumber; -180.0–180.0When parent is suppliedRequired for every path pointWGS84 longitude in decimal degrees, from -180 to 180.
roadPlaceIds / --road-place-idsarray of string; 1–100 items; each item at least 1 character(s)NoNot suppliedOne to 100 road-segment place IDs from maps_snap_to_roads or maps_nearest_roads; ordinary business/place IDs may have no speed-limit data. Mutually exclusive with path.
units / --unitsstring; values: KPH, MPHNoKPHReturn kilometers per hour (KPH) or miles per hour (MPH).

Behavior and restrictions ​

  • Restricted access: Google documents an Asset Tracking license requirement. Transitioned Premium Plan projects with Asset Tracking capabilities may retain access. An enabled API or ordinary billing account does not establish entitlement. https://developers.google.com/maps/documentation/roads/speed-limits
  • Each returned speedLimits entry triggers the Roads Speed Limits SKU; one HTTP request can incur multiple billable entries. Request the smallest useful batch.
  • For variable limits Google returns the maximum automobile limit. Data is not real-time and can be missing, estimated, inaccurate or outdated; consult posted signs and applicable safety requirements.
  • A 403 retains the sanitized Google reason and adds an access hint. API enablement, key restrictions and permissions can also cause rejection; the executable does not label every 403 a license failure.

Primary sources: https://developers.google.com/maps/documentation/roads/speed-limits

Result ​

The complete native Roads response, including speedLimits entries (placeId, speedLimit, units), optional snappedPoints for path requests, warnings and other Google metadata.

Example ​

MCP arguments:

json
{
  "roadPlaceIds": [
    "ChIJs5ydyTiuEmsR0fRSlU0C7k0"
  ],
  "units": "KPH"
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_speed_limits --args '{"roadPlaceIds":["ChIJs5ydyTiuEmsR0fRSlU0C7k0"],"units":"KPH"}'

maps_autocomplete ​

Get Places API (New) place and optional query predictions, with session tokens, language and geographic filters. Returns the full native Google JSON. Session billing requires a fresh token and a qualifying concluding Details or Address Validation request in the same project.

Get Places API (New) predictions while a user types. Supports place and query predictions, geographic bias/restriction, regional/type filters, cursor position and caller-managed billing session tokens.

CLI command: autocomplete. Google access: API key or OAuth (Places/cloud-platform scope) for the main API.

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
includeFutureOpeningBusinesses / --include-future-opening-businessesbooleanNofalseInclude businesses that will open in the future.
includePureServiceAreaBusinesses / --include-pure-service-area-businessesbooleanNofalseInclude businesses that visit/deliver to customers and have no public business location.
includeQueryPredictions / --include-query-predictionsbooleanNofalseInclude query predictions as well as place predictions.
includedPrimaryTypes / --included-primary-typesarray of string; 0–5 items; each item at least 1 character(s)NoAll typesUp to five primary place types. The special (cities) or (regions) collection must be the sole entry.
includedRegionCodes / --included-region-codesarray of string; 0–15 itemsNoAll regionsUp to 15 two-letter CLDR region codes; intersected with locationRestriction when both are supplied. An empty array does not restrict results.
input / --inputstring; at least 1 character(s)Yes—Non-empty query text, including partial place names or addresses.
inputOffset / --input-offsetinteger; 0–4294967295NoEnd of inputZero-based Unicode character cursor offset; must not exceed the number of characters in input.
languageCode / --language-codestring; at least 1 character(s)NoConfigured GOOGLE_MAPS_LANGUAGEPreferred IETF BCP-47 response language. Mixed-language predictions may still occur.
locationBias / --location-biasobjectNoGoogle IP bias if neither geographic option is suppliedPrefer results around exactly one circle or rectangle; results may fall outside it. Cannot coexist with locationRestriction.
locationBias.circleobjectNoNot suppliedCircular area; mutually exclusive with rectangle.
locationBias.circle.centerobjectWhen parent is suppliedRequired with circleWGS84 center coordinate.
locationBias.circle.center.latitudenumber; -90.0–90.0When parent is suppliedRequired with centerCenter latitude in decimal degrees.
locationBias.circle.center.longitudenumber; -180.0–180.0When parent is suppliedRequired with centerCenter longitude in decimal degrees.
locationBias.circle.radiusnumber; 0.0–50000.0When parent is suppliedRequired with circleRadius in meters, at most 50,000; must be positive for locationRestriction.
locationBias.rectangleobjectNoNot suppliedClosed latitude/longitude viewport; mutually exclusive with circle. Longitude bounds may cross the antimeridian.
locationBias.rectangle.highobjectWhen parent is suppliedRequired with rectangleNortheast bound.
locationBias.rectangle.high.latitudenumber; -90.0–90.0When parent is suppliedRequired with boundWGS84 latitude in decimal degrees; low must not exceed high.
locationBias.rectangle.high.longitudenumber; -180.0–180.0When parent is suppliedRequired with boundWGS84 longitude in decimal degrees; low greater than high indicates antimeridian crossing.
locationBias.rectangle.lowobjectWhen parent is suppliedRequired with rectangleSouthwest bound.
locationBias.rectangle.low.latitudenumber; -90.0–90.0When parent is suppliedRequired with boundWGS84 latitude in decimal degrees; low must not exceed high.
locationBias.rectangle.low.longitudenumber; -180.0–180.0When parent is suppliedRequired with boundWGS84 longitude in decimal degrees; low greater than high indicates antimeridian crossing.
locationRestriction / --location-restrictionobjectNoGoogle IP bias if neither geographic option is suppliedRestrict results to exactly one circle or rectangle. Cannot coexist with locationBias.
locationRestriction.circleobjectNoNot suppliedCircular area; mutually exclusive with rectangle.
locationRestriction.circle.centerobjectWhen parent is suppliedRequired with circleWGS84 center coordinate.
locationRestriction.circle.center.latitudenumber; -90.0–90.0When parent is suppliedRequired with centerCenter latitude in decimal degrees.
locationRestriction.circle.center.longitudenumber; -180.0–180.0When parent is suppliedRequired with centerCenter longitude in decimal degrees.
locationRestriction.circle.radiusnumber; 0.0–50000.0When parent is suppliedRequired with circleRadius in meters, at most 50,000; must be positive for locationRestriction.
locationRestriction.rectangleobjectNoNot suppliedClosed latitude/longitude viewport; mutually exclusive with circle. Longitude bounds may cross the antimeridian.
locationRestriction.rectangle.highobjectWhen parent is suppliedRequired with rectangleNortheast bound.
locationRestriction.rectangle.high.latitudenumber; -90.0–90.0When parent is suppliedRequired with boundWGS84 latitude in decimal degrees; low must not exceed high.
locationRestriction.rectangle.high.longitudenumber; -180.0–180.0When parent is suppliedRequired with boundWGS84 longitude in decimal degrees; low greater than high indicates antimeridian crossing.
locationRestriction.rectangle.lowobjectWhen parent is suppliedRequired with rectangleSouthwest bound.
locationRestriction.rectangle.low.latitudenumber; -90.0–90.0When parent is suppliedRequired with boundWGS84 latitude in decimal degrees; low must not exceed high.
locationRestriction.rectangle.low.longitudenumber; -180.0–180.0When parent is suppliedRequired with boundWGS84 longitude in decimal degrees; low greater than high indicates antimeridian crossing.
origin / --originobjectNoDistance omittedReference coordinate for returned geodesic distanceMeters.
origin.latitudenumber; -90.0–90.0When parent is suppliedRequired with originWGS84 latitude in decimal degrees.
origin.longitudenumber; -180.0–180.0When parent is suppliedRequired with originWGS84 longitude in decimal degrees.
regionCode / --region-codestring; pattern: ^[A-Za-z]{2}$NoNot suppliedTwo-letter CLDR region used for formatting/ranking; does not restrict results to that region.
sessionToken / --session-tokenstring; at least 1 character(s); pattern: ^[A-Za-z0-9_-]+$NoNo session grouping; per-request billingCaller-generated URL-safe token of at most 36 ASCII characters; a fresh UUID v4 is recommended for each session. Forward the same token to the concluding Place Details or Address Validation call.

Behavior and restrictions ​

  • Official native request fields and supported place types: https://developers.google.com/maps/documentation/places/web-service/reference/rest/v1/places/autocomplete
  • Tokens are caller-managed: the executable does not create or conclude sessions automatically. All requests in a session must use credentials from the same Google Cloud project; terminate with a qualifying Place Details or Address Validation request and use a fresh token next time. Missing/reused tokens can lead to per-request billing.
  • Circle radii are at most 50,000m; restriction circles require a positive radius. Rectangle latitude bounds must be ordered; antimeridian-crossing longitude ranges are supported.
  • Retain any Google Maps/provider attribution when displaying results. Regional/EEA service terms and field availability may differ.

Primary sources: https://developers.google.com/maps/documentation/places/web-service/reference/rest/v1/places/autocomplete

Result ​

Complete native suggestions response, including placePrediction/queryPrediction, text match offsets, structured formatting, place IDs, optional distanceMeters and any response metadata. No field mask removes content.

Example ​

MCP arguments:

json
{
  "input": "coffee near Paris",
  "sessionToken": "550e8400-e29b-41d4-a716-446655440000",
  "includedRegionCodes": [
    "FR"
  ],
  "locationBias": {
    "circle": {
      "center": {
        "latitude": 48.8566,
        "longitude": 2.3522
      },
      "radius": 5000
    }
  },
  "includeQueryPredictions": true
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_autocomplete --args '{"input":"coffee near Paris","sessionToken":"550e8400-e29b-41d4-a716-446655440000","includedRegionCodes":["FR"],"locationBias":{"circle":{"center":{"latitude":48.8566,"longitude":2.3522},"radius":5000}},"includeQueryPredictions":true}'

maps_geolocate ​

Estimate device location and an accuracy radius from a native Google Geolocation body containing cell towers or WiFi access points. Requires an API key. IP fallback identifies this server's egress location, not the user; set body.considerIp=false to disable fallback.

Estimate device location from observed cellular towers or WiFi access points using the complete native Google Geolocation JSON body.

CLI command: geolocate. Google access: API key required in this implementation. The documented www.googleapis.com endpoint receives the key as a query parameter even for POST.

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
body / --bodyobjectYes—Native Google request object. Supports homeMobileCountryCode, homeMobileNetworkCode, radioType (gsm/cdma/wcdma/lte/nr), carrier, considerIp, cellTowers and wifiAccessPoints, including radio-specific cellId/newRadioCellId and signal fields. See the linked Google request reference for the complete nested schema. An empty object permits server-IP fallback.

Behavior and restrictions ​

  • Complete radio and WiFi field descriptions, ranges and examples: https://developers.google.com/maps/documentation/geolocation/requests-geolocation
  • Google defaults considerIp to true. With no usable radio observations, fallback locates the executable/server egress IP, not the person operating the agent. Set body.considerIp=false to prohibit fallback.
  • WiFi positioning requires at least two physically distinct stationary access points. Google excludes locally administered/reserved MAC address ranges; mobile hotspots and invalid observations may not yield a result.
  • The body is intentionally extensible for native radio payloads; validation of its detailed protocol-specific fields is delegated to Google. The outer tool schema rejects unknown wrapper parameters.
  • A location estimate is approximate and can fail with NOT_FOUND; inspect accuracy before using the coordinates.

Primary sources: https://developers.google.com/maps/documentation/geolocation/requests-geolocation

Result ​

Google location.lat/location.lng and accuracy (uncertainty radius in meters), plus any additional native response fields.

Example ​

MCP arguments:

json
{
  "body": {
    "considerIp": false,
    "wifiAccessPoints": [
      {
        "macAddress": "00:25:9c:cf:1c:ac",
        "signalStrength": -43
      },
      {
        "macAddress": "00:25:9c:cf:1c:ad",
        "signalStrength": -55
      }
    ]
  }
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_geolocate --args '{"body":{"considerIp":false,"wifiAccessPoints":[{"macAddress":"00:25:9c:cf:1c:ac","signalStrength":-43},{"macAddress":"00:25:9c:cf:1c:ad","signalStrength":-55}]}}'

maps_solar ​

Retrieve Solar building insights, regional data layers, or a GeoTIFF asset by ID. Coverage, imagery quality and EEA terms vary; expanded-coverage experiments are pre-GA. Data-layer URLs are temporary and returned without credentials. GeoTIFF binary size is bounded by the executable's response limit.

Use all three principal Solar methods: nearby building insights, regional raster data-layer metadata, and bounded GeoTIFF downloads by asset ID.

CLI command: solar. Google access: API key or OAuth (cloud-platform scope). Service-account callers also need API enablement and quota-project serviceusage.services.use.

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
additionalInsights / --additional-insightsarray of string; 0–1 items; values: DETECTED_ARRAYSNoNo additional insightsOptional DETECTED_ARRAYS for building_insights to retrieve detected rooftop solar arrays.
exactQualityRequired / --exact-quality-requiredbooleanNofalseRequire the exact selected imagery quality instead of accepting higher quality. Valid for insights/data layers.
experiments / --experimentsarray of string; 0–1 items; values: EXPANDED_COVERAGENoNo experimentsOptional EXPANDED_COVERAGE experiment for insights/data layers; Google classifies these requests as pre-GA.
id / --idstring; at least 1 character(s)No— for geo_tiffOpaque asset ID taken from the id query parameter of a returned Solar data-layer URL. Required only for geo_tiff; pass an ID, not a URL.
location / --locationobjectNoNot suppliedCoordinate of the building search or regional data-layer center; required for building_insights and data_layers.
location.latitudenumber; -90.0–90.0When parent is suppliedRequired with locationWGS84 latitude in decimal degrees.
location.longitudenumber; -180.0–180.0When parent is suppliedRequired with locationWGS84 longitude in decimal degrees.
operation / --operationstring; values: building_insights, data_layers, geo_tiffYes—building_insights, data_layers or geo_tiff. Each operation accepts only its relevant parameters.
pixelSizeMeters / --pixel-size-metersnumber; values: 0.1, 0.25, 0.5, 1.0No0.1Minimum data-layer pixel scale, one of 0.1, 0.25, 0.5 or 1.0 meters. Individual layers may have coarser native resolution.
radiusMeters / --radius-metersnumber; unbounded–1000NoNot suppliedPositive regional radius, required for data_layers. At most 1,000m; values over 100 must be <= pixelSizeMeters × 1,000, and values over 175 require a view without monthly flux or hourly shade.
requiredQuality / --required-qualitystring; values: HIGH, MEDIUM, BASENoHIGH (Google default)Minimum imagery quality HIGH, MEDIUM or BASE for insights/data layers. BASE uses enhanced satellite imagery; geographic availability varies.
view / --viewstring; values: DSM_LAYER, IMAGERY_LAYERS, IMAGERY_AND_ANNUAL_FLUX_LAYERS, IMAGERY_AND_ALL_FLUX_LAYERS, FULL_LAYERSNoFULL_LAYERS (Google default)Data-layer subset: DSM_LAYER, IMAGERY_LAYERS, IMAGERY_AND_ANNUAL_FLUX_LAYERS, IMAGERY_AND_ALL_FLUX_LAYERS or FULL_LAYERS.

Behavior and restrictions ​

Primary sources: https://developers.google.com/maps/comms/eea/solar, https://developers.google.com/maps/documentation/solar/coverage, https://developers.google.com/maps/documentation/solar/reference/rest/v1/buildingInsights/findClosest, https://developers.google.com/maps/documentation/solar/reference/rest/v1/dataLayers/get, https://developers.google.com/maps/documentation/solar/reference/rest/v1/geoTiff/get

Result ​

building_insights/data_layers return the full native Google JSON including imagery dates, quality, solar potential and temporary raster URLs. Credentials are removed from returned URLs. geo_tiff returns bounded binary data with its actual MIME type and retained HTTP cache/attribution metadata; CLI JSON uses base64.

Example ​

MCP arguments:

json
{
  "operation": "data_layers",
  "location": {
    "latitude": 37.444,
    "longitude": -122.16
  },
  "radiusMeters": 100,
  "view": "IMAGERY_AND_ANNUAL_FLUX_LAYERS"
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_solar --args '{"operation":"data_layers","location":{"latitude":37.444,"longitude":-122.16},"radiusMeters":100,"view":"IMAGERY_AND_ANNUAL_FLUX_LAYERS"}'

maps_aerial_view ​

Look up Aerial View playback URLs or free metadata by US postal address or video ID. lookup is billable; metadata omits playback URLs. Coverage is limited to supported US locations. Returns Google's original metadata and short-lived URLs; videos must not be downloaded, stored or cached.

Retrieve an existing Aerial View video’s short-lived playback URLs or metadata without downloading the video.

CLI command: aerial-view. Google access: API key required in this implementation, including when OAuth mode is selected.

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
address / --addressstring; at least 1 character(s)NoNot suppliedSupported US postal address. Supply exactly one of address or videoId.
operation / --operationstring; values: lookup, metadataNolookuplookup retrieves playback URLs and metadata (billable); metadata retrieves available video data excluding playback URLs (free-to-call Google method).
videoId / --video-idstring; at least 1 character(s)NoNot suppliedPreviously returned Aerial View video ID. Supply exactly one of videoId or address.

Behavior and restrictions ​

  • Aerial View accepts only supported US postal addresses where Google can render 3D videos. Missing videos return NOT_FOUND; use the separate maps_render_aerial_video action to request a render.
  • Use metadata to check state without requesting billable playback URLs. lookup itself is a billable event; poll metadata at a reasonable interval while a render is processing.
  • Playback URIs expire quickly; obtain fresh URIs for each display. Google prohibits downloading, storing or caching these videos. This tool returns URLs without fetching them. Video IDs may be stored under the documented caching exception. https://developers.google.com/maps/documentation/aerial-view/lookup-video
  • Keep Google Maps attribution visible during playback. EEA terms/functionality may differ. https://developers.google.com/maps/documentation/aerial-view/policies

Primary sources: https://developers.google.com/maps/documentation/aerial-view/lookup-video, https://developers.google.com/maps/documentation/aerial-view/policies

Result ​

The native Google response, including processing/active state, available video metadata and, for active lookup responses, playback URIs grouped by format/resolution. Metadata lookup omits playback URIs.

Example ​

MCP arguments:

json
{
  "operation": "metadata",
  "address": "600 Montgomery St, San Francisco, CA 94111"
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_aerial_view --args '{"operation":"metadata","address":"600 Montgomery St, San Francisco, CA 94111"}'

maps_render_aerial_video ​

Explicitly request asynchronous rendering of an Aerial View video for a supported US postal address. This mutates Google's render queue; an existing video returns metadata. Does not wait for completion or download video. Poll maps_aerial_view with operation metadata and then lookup for playback URLs.

Explicitly queue an asynchronous Aerial View video render for a supported US postal address; kept separate from read-only lookup so agents can recognize the upstream mutation.

CLI command: render-aerial-video. Google access: API key required in this implementation, including when OAuth mode is selected.

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
address / --addressstring; at least 1 character(s)Yes—Supported US postal address to render.

Behavior and restrictions ​

  • This action changes Google’s render queue. It is not automatically retried after a transient failure, does not wait for completion, and never downloads the resulting video.
  • Check progress using maps_aerial_view operation metadata with the address or returned videoId; use lookup only when playback URLs are needed.
  • US/3D coverage, quotas and Google service terms apply; API enablement does not guarantee that an address can be rendered. https://developers.google.com/maps/documentation/aerial-view/reference/rest/v1/videos/renderVideo
  • Do not download, store or cache Aerial View videos; display current short-lived playback URLs with required attribution.

Primary sources: https://developers.google.com/maps/documentation/aerial-view/reference/rest/v1/videos/renderVideo

Result ​

The native render response with state and any available video metadata. PROCESSING means the render is queued/in progress; an existing video can return ACTIVE metadata immediately.

Example ​

MCP arguments:

json
{
  "address": "600 Montgomery St, San Francisco, CA 94111"
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_render_aerial_video --args '{"address":"600 Montgomery St, San Francisco, CA 94111"}'

maps_map_tiles ​

Map Tiles sessions, 2D/3D imagery, viewport attribution and Street View tiles. Licensed for visualization only: do not use imagery for machine interpretation, analysis, extraction or offline maps. Preserve attribution and cache directives.

Create Map Tiles sessions and retrieve 2D, photorealistic 3D, and Street View resources for a map viewer. This is a retrieval interface, not a renderer. Google licenses Map Tiles for visualization only, prohibiting machine interpretation, image analysis, object detection, geodata extraction and offline use.

CLI command: map-tiles. Google access: API key or OAuth with cloud-platform scope and a billed quota project. Enable Map Tiles API. Service accounts are supported by Google for Map Tiles; quota-project Service Usage permissions are required. See https://developers.google.com/maps/documentation/tile/get-api-key .

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
east / --eastnumber; -180.0–180.0NoNot supplied; required for the operations describedRequired viewport eastern longitude. A negative east with positive west can cross the antimeridian.
fov / --fovnumber; 30.0–120.0No90Thumbnail horizontal field of view, 30..120 degrees.
height / --heightinteger; 16–250No250Thumbnail height, 16..250 pixels.
latitude / --latitudenumber; -90.0–90.0NoNot supplied; required for the operations describedFor streetview_metadata, latitude of the search center; requires longitude and excludes panoId.
locations / --locationsarray of object; 1–100 itemsNoNot supplied; required for the operations describedFor streetview_pano_ids, one to 100 native location objects, each containing lat and lng.
locations[].latnumber; -90.0–90.0When parent is suppliedNot supplied; required for the operations describedWGS84 search-center latitude.
locations[].lngnumber; -180.0–180.0When parent is suppliedNot supplied; required for the operations describedWGS84 search-center longitude.
longitude / --longitudenumber; -180.0–180.0NoNot supplied; required for the operations describedFor streetview_metadata, longitude of the search center; requires latitude and excludes panoId.
north / --northnumber; -90.0–90.0NoNot supplied; required for the operations describedRequired viewport northern latitude in WGS84 degrees; must exceed south.
operation / --operationstring; values: create_session, tile_2d, viewport, root_3d, resource_3d, streetview_pano_ids, streetview_metadata, streetview_thumbnail, streetview_tileYes—create_session, tile_2d, viewport, root_3d, resource_3d, streetview_pano_ids, streetview_metadata, streetview_thumbnail or streetview_tile. Selects the endpoint and required arguments.
panoId / --pano-idstring; at least 1 character(s)NoNot supplied; required for the operations describedRequired for streetview_tile/thumbnail, or an alternative to latitude+longitude for streetview_metadata. IDs are transient and should not be relied on beyond one user session.
pitch / --pitchnumber; -90.0–90.0No0Thumbnail vertical camera direction, -90..90 degrees.
radius / --radiusnumber; 0.0–100000.0No50 metersStreet View search radius in meters for pano_ids or metadata coordinate search. This implementation accepts 0..100000. Cannot accompany a metadata panoId.
resourceUrl / --resource-urlstring; at least 1 character(s)NoNot supplied; required for the operations describedFor resource_3d, an absolute Google-issued https://tile.googleapis.com/v1/3dtiles/... URL from a tileset. No custom origin, port, userinfo, fragment or encoded path segments. Returned API-key query parameters are discarded and configured credentials are applied.
session / --sessionstring; at least 1 character(s)NoNot supplied; required for the operations describedThe returned createSession session token. Required for every 2D and Street View request, but not 3D. Follow the response expiry rather than assuming a fixed lifetime.
sessionOptions / --session-optionsobjectNoNot supplied; required for the operations describedRequired for create_session. Native createSession options; mapType, language and region are mandatory.
sessionOptions.highDpibooleanNofalseIncrease pixel dimensions with 2x/4x scale; has no effect at 1x.
sessionOptions.imageFormatstring; values: jpeg, pngNoGoogle chooses the best formatjpeg or png tile encoding. JPEG does not support transparent overlays.
sessionOptions.languagestring; at least 1 character(s)When parent is suppliedNot supplied; required for the operations describedIETF language tag such as en-US.
sessionOptions.layerTypesarray of string; 1–3 items; values: layerRoadmap, layerStreetview, layerTrafficNoNo additional layersOne to three values from layerRoadmap, layerStreetview and layerTraffic. terrain requires layerRoadmap.
sessionOptions.mapTypestring; values: roadmap, satellite, terrain, streetviewWhen parent is suppliedNot supplied; required for the operations describedroadmap, satellite, terrain or streetview. terrain requires layerTypes containing layerRoadmap.
sessionOptions.overlaybooleanNofalseRender requested layerTypes without base imagery when true.
sessionOptions.regionstring; pattern: ^[A-Z]{2}$When parent is suppliedNot supplied; required for the operations describedTwo uppercase CLDR region letters, such as US; the physical location of the user.
sessionOptions.scalestring; values: scaleFactor1x, scaleFactor2x, scaleFactor4xNoscaleFactor1xscaleFactor1x, scaleFactor2x or scaleFactor4x controls map element size.
sessionOptions.stylesarray of object; 1–100 itemsNoGoogle default stylingNative Google map-style JSON objects. Valid only for roadmap. See https://developers.google.com/maps/documentation/tile/style-reference .
south / --southnumber; -90.0–90.0NoNot supplied; required for the operations describedRequired viewport southern latitude in WGS84 degrees.
west / --westnumber; -180.0–180.0NoNot supplied; required for the operations describedRequired viewport western longitude.
width / --widthinteger; 16–600No600Thumbnail width, 16..600 pixels.
x / --xinteger; 0–4194303NoNot supplied; required for the operations describedTile column for tile_2d or streetview_tile. 2D requires x < 2^zoom; Street View bounds depend on panorama dimensions in metadata.
y / --yinteger; 0–4194303NoNot supplied; required for the operations describedTile row for tile_2d or streetview_tile. 2D requires y < 2^zoom; Street View bounds depend on panorama dimensions in metadata.
yaw / --yawnumber; -360.0–360.0No0Thumbnail horizontal camera direction, -360..360 degrees.
zoom / --zoominteger; 0–22NoNot supplied; required for the operations describedInteger zoom: 0..22 for tile_2d/viewport; 0..5 for streetview_tile. Availability varies; use viewport metadata for the maximum available zoom.

Behavior and restrictions ​

  • Operation contracts: create_session needs sessionOptions; tile_2d needs session/zoom/x/y; viewport needs session/zoom/north/south/east/west; root_3d takes no other fields; resource_3d needs resourceUrl; streetview_pano_ids needs session/locations; streetview_metadata needs session plus panoId OR latitude+longitude; streetview_thumbnail needs session/panoId; streetview_tile needs session/panoId/zoom/x/y. Unused operation fields are rejected.
  • create_session obtains a Google session and is not retried automatically. Panorama lookups are read-only POST requests. A downstream viewer must implement stitching/3D rendering; this tool does not include a web or native renderer.
  • Map Tiles policy prohibits unauthorized prefetching, indexing, storage and caching; respect Cache-Control, ETag and your agreement. Use only for map visualization. See https://developers.google.com/maps/documentation/tile/policies . Do not submit imagery to agents for image interpretation or geodata extraction.
  • Display the Google Maps logo and provider attribution. Use viewport copyright for 2D maps, and streetview_metadata copyright plus its Report a problem link for Street View. A 3D renderer must display tile copyright attribution. Do not crop or hide credits.
  • Coverage, EEA terms/functionality, billing and quotas vary. Native session expiry is authoritative. Panorama IDs are short-lived. No tile cache, bulk area download, offline map or image-analysis operation is implemented.
  • Primary contracts: https://developers.google.com/maps/documentation/tile/session_tokens ; https://developers.google.com/maps/documentation/tile/2d-tiles-overview ; https://developers.google.com/maps/documentation/tile/streetview ; https://developers.google.com/maps/documentation/tile/3d-tiles .

Primary sources: https://developers.google.com/maps/documentation/tile/2d-tiles-overview, https://developers.google.com/maps/documentation/tile/3d-tiles, https://developers.google.com/maps/documentation/tile/get-api-key, https://developers.google.com/maps/documentation/tile/policies, https://developers.google.com/maps/documentation/tile/session_tokens, https://developers.google.com/maps/documentation/tile/streetview, https://developers.google.com/maps/documentation/tile/style-reference

Result ​

Native Google JSON for sessions, viewport, panorama lookup/metadata, 3D root and child JSON tilesets; attribution, copyrights, reportProblemLink and session expiry are preserved. Tiles, thumbnails and non-JSON 3D resources return binary content with MIME type plus cache-control/ETag metadata. MCP inlines supported images; other resources use base64 JSON. CLI --output writes the original bytes.

Example ​

MCP arguments:

json
{
  "operation": "root_3d"
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_map_tiles --args '{"operation":"root_3d"}'

maps_streetview ​

Get Street View Static metadata or a JPEG image by location or panorama ID. Preserve the Google attribution embedded in imagery and obey Street View usage policies.

Inspect Street View panorama metadata or retrieve a static JPEG image at a location or panorama ID. Metadata can establish imagery availability before a billed image request.

CLI command: streetview. Google access: API key required for Street View Static in this implementation; OAuth-only credentials cannot call it. Enable Street View Static API. Google recommends a digital signature, required in some account configurations.

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
fov / --fovnumber; 1.0–120.0No90Image horizontal field of view, 1..120 degrees.
heading / --headingnumber; 0.0–360.0NoGoogle points toward the supplied locationImage camera compass heading in degrees, 0..360.
height / --heightinteger; 1–640No400Image height in pixels, 1..640. Used only by image.
location / --locationstring; at least 1 character(s)NoNot supplied; required for the operations describedAddress, latitude/longitude string (for example 48.8584,2.2945), or place_id:PLACE_ID. Exactly one of location and panoId is required.
operation / --operationstring; values: metadata, imageYes—metadata or image. Metadata returns JSON; image returns JPEG bytes.
panoId / --pano-idstring; at least 1 character(s)NoNot supplied; required for the operations describedSpecific panorama ID; mutually exclusive with location. Panorama IDs can change, so retain the original search location to refresh them.
pitch / --pitchnumber; -90.0–90.0No0Image vertical camera angle, -90..90 degrees.
radius / --radiusinteger; 0–100000No50Search radius in meters. This implementation accepts integer 0..100000.
returnErrorCode / --return-error-codebooleanNotrue in this implementationFor image, return an HTTP error instead of the gray no-imagery placeholder.
signature / --signaturestring; at least 1 character(s)NoNot suppliedOptional URL signature for the exact encoded request. Google recommends signing and requires it for some accounts. This tool forwards a supplied signature; it does not generate one. For signed requests the executable appends signature last, after the API key. Sign the exact encoded unsigned path/query including generated defaults. Image order: location, radius, source, pano, size, heading, fov, pitch, return_error_code, key (omitted optional fields are skipped); metadata omits image fields. Spaces encode as +. Defaults are size=640x400 and return_error_code=true.
source / --sourcestring; values: default, google, outdoorNodefaultSearch source: default, google or outdoor. Availability depends on the collection and region.
width / --widthinteger; 1–640No640Image width in pixels, 1..640. Used only by image. Larger images requiring special Google access are outside this implementation.

Behavior and restrictions ​

Primary sources: https://developers.google.com/maps/documentation/streetview/metadata, https://developers.google.com/maps/documentation/streetview/policies, https://developers.google.com/maps/documentation/streetview/request-streetview

Result ​

Native panorama metadata JSON, including status, date, location, pano_id and copyright when available; or JPEG bytes with MIME type and safe HTTP cache metadata. A missing image is an error by default. CLI --output saves bytes; MCP exposes an image plus metadata.

Example ​

MCP arguments:

json
{
  "operation": "metadata",
  "location": "Eiffel Tower, Paris, France"
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_streetview --args '{"operation":"metadata","location":"Eiffel Tower, Paris, France"}'

maps_streetview_publish ​

Manage the authenticated user's Street View photos and photo sequences, including bounded byte upload and publishing. Requires end-user OAuth consent with streetviewpublish scope; API keys and service accounts alone cannot authorize this tool. Create/update/delete operations change public imagery.

Manage photos and photo sequences belonging to the consenting Google user. Supports the complete documented v1 REST method set plus bounded photo-byte upload. Publishing and deletion are explicit caller-controlled operations and are never retried automatically.

CLI command: streetview-publish. Google access: End-user OAuth only, with https://www.googleapis.com/auth/streetviewpublish scope granted by the user. Use explicit authorized_user credentials in GOOGLE_APPLICATION_CREDENTIALS and OAuth mode; a service-account key, implicit ADC or API key alone is rejected for this tool. Configure the OAuth client consent flow separately; this executable refreshes authorized-user credentials but does not host a browser consent callback.

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
dataBase64 / --data-base64string; at least 4 character(s)NoNot supplied; required for the operations describedStandard padded base64 of media bytes for upload. Decoded size must be 1 byte to 8 MiB. This is an implementation bound, not Google’s product limit.
filter / --filterstring; at least 1 character(s)NoNot supplied; required for the operations describedNative Google filter expression for list, list_sequences or get_sequence; endpoint-specific grammar applies. See the official method reference.
inputType / --input-typestring; values: VIDEO, XDMNoNot supplied; required for the operations describedRequired for create_sequence: VIDEO or XDM.
languageCode / --language-codestring; at least 1 character(s)NoGoogle defaultPreferred language tag for list, get or batch_get photo metadata.
mimeType / --mime-typestring; values: image/jpeg, application/octet-stream, video/mp4Noimage/jpegMedia Content-Type for upload: image/jpeg, video/mp4 or application/octet-stream.
operation / --operationstring; values: list, get, start_upload, upload, create, update, delete, batch_get, batch_update, batch_delete, list_sequences, get_sequence, start_sequence_upload, create_sequence, delete_sequenceYes—list, get, start_upload, upload, create, update, delete, batch_get, batch_update, batch_delete, list_sequences, get_sequence, start_sequence_upload, create_sequence or delete_sequence.
pageSize / --page-sizeinteger; 1–100NoGoogle service defaultRequested page size, 1..100, for list or list_sequences. Google may return fewer items.
pageToken / --page-tokenstring; at least 1 character(s)NoNot supplied; required for the operations describedOpaque nextPageToken from a previous list or list_sequences response. Pagination is explicit; the tool does not fetch every page.
photo / --photoobjectNoNot supplied; required for the operations describedNative Google Photo JSON for create/update. create requires uploadReference.uploadUrl from start_upload after successful byte upload; update requires photoId separately and updateMask. Photo schema: https://developers.google.com/streetview/publish/reference/rest/v1/photo .
photoId / --photo-idstring; at least 1 character(s)NoNot supplied; required for the operations describedGoogle photo ID for get, update or delete. Pass the ID only, without resource paths or URL parameters.
photoIds / --photo-idsarray of string; 1–100 items; each item at least 1 character(s)NoNot supplied; required for the operations describedOne to 100 photo IDs for batch_get or batch_delete.
photoSequence / --photo-sequenceobjectNoNot supplied; required for the operations describedNative Google PhotoSequence JSON for create_sequence. Requires uploadReference.uploadUrl; include required GPS/CAMM/IMU and capture metadata for the media format. Schema: https://developers.google.com/streetview/publish/reference/rest/v1/photoSequence/create .
sequenceId / --sequence-idstring; at least 1 character(s)NoNot supplied; required for the operations describedGoogle sequence ID for get_sequence or delete_sequence. The create operation name carries the sequence ID.
updateMask / --update-maskstring; at least 1 character(s)NoNot supplied; required for the operations describedRequired comma-separated native Google FieldMask for update, for example pose.heading or pose.latLngPair.
updatePhotoRequests / --update-photo-requestsarray of object; 1–100 itemsNoNot supplied; required for the operations describedOne to 100 native UpdatePhotoRequest objects for batch_update. Each needs photo.photoId.id and updateMask. Schema: https://developers.google.com/streetview/publish/reference/rest/v1/photos/batchUpdate .
uploadUrl / --upload-urlstring; at least 1 character(s)NoNot supplied; required for the operations describedExact HTTPS UploadRef URL returned by start_upload or start_sequence_upload. Only streetviewpublish.googleapis.com/media/user/{account}/photo/{reference} (or photoSequence) is accepted; no redirects, custom origins, userinfo, fragments or encoded path segments.
view / --viewstring; values: BASIC, INCLUDE_DOWNLOAD_URLNoBASICBASIC or INCLUDE_DOWNLOAD_URL for list, get, batch_get or get_sequence. Download URLs are sensitive user-resource URLs; this tool does not fetch them.

Behavior and restrictions ​

  • Photo lifecycle: start_upload -> upload the returned URL with dataBase64 -> create with photo.uploadReference.uploadUrl and required metadata. Uploading bytes alone does not publish a photo. Images must satisfy Google’s 360-degree Photo Sphere/XMP and publishing acceptance criteria: https://developers.google.com/streetview/publish/first-app .
  • Photo updates use PUT and updateMask; updating photo pixels is unsupported by Google. delete and batch_delete remove the user’s published photos. No write, publish, upload or delete is part of doctor or live smoke checks.
  • Sequence lifecycle: start_sequence_upload -> upload -> create_sequence(inputType, photoSequence) -> get_sequence. Actual large video uploads commonly exceed this CLI/MCP 8 MiB limit; resumable/chunked uploads are not implemented. Use Google’s upload flow externally when larger media is necessary, then pass its UploadRef to create_sequence. Metadata/list/get/delete sequence endpoints remain available.
  • Native objects use Google’s official schemas rather than duplicating complex GPS, pose, IMU, connections and place fields. Unknown top-level tool arguments are rejected; endpoint-specific nested semantics are validated by Google. Every batch_update entry must include photo.photoId.id and updateMask.
  • All documented v1 REST endpoints are implemented: photo create/delete/get/startUpload/update; photos list/batchGet/batchUpdate/batchDelete; photoSequence create/delete/get/startUpload; photoSequences list. Reference: https://developers.google.com/streetview/publish/reference/rest . This does not mean every accepted native nested field was tested live.
  • Upload requests are fixed-origin, bounded, non-retrying POSTs; all mutations disable automatic retries because ambiguous network failures could otherwise duplicate public changes. Review operation results explicitly.
  • Google ownership, privacy, copyright, 360-imagery acceptance, processing and quota restrictions apply. End-user consent and ownership cannot be replaced by service-account IAM permissions. See https://developers.google.com/streetview/publish/authorizing .
  • Publish operations have not been live-tested with the supplied service-account credential: a real consenting user credential is required, and public mutations are deliberately excluded from smoke tests.

Primary sources: https://developers.google.com/streetview/publish/authorizing, https://developers.google.com/streetview/publish/first-app, https://developers.google.com/streetview/publish/reference/rest, https://developers.google.com/streetview/publish/reference/rest/v1/photo, https://developers.google.com/streetview/publish/reference/rest/v1/photoSequence/create, https://developers.google.com/streetview/publish/reference/rest/v1/photos/batchUpdate

Result ​

Unmodified native Google Photo, list/pagination, UploadRef, batch result, or long-running Operation JSON as appropriate; successful empty upload/delete responses become {}. Photos retain publication status and ownership metadata. Sequence operations can remain pending; call get_sequence to inspect progress. No automatic polling, mutation or publishing occurs.

Example ​

MCP arguments:

json
{
  "operation": "list",
  "pageSize": 10,
  "view": "BASIC"
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_streetview_publish --args '{"operation":"list","pageSize":10,"view":"BASIC"}'

maps_datasets ​

Manage geospatial datasets for Google Maps data-driven styling, including asynchronous imports from an existing Cloud Storage object.

Manage geospatial datasets for Google Maps data-driven styling, including asynchronous imports from an existing Cloud Storage object.

CLI command: datasets. Google access: OAuth 2.0 only, using a service account or ADC and https://www.googleapis.com/auth/cloud-platform. API keys are not accepted. Configure the resource project and quota-project permissions separately.

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
dataset / --datasetobjectNoRequired for create/updateNative Dataset JSON for create/update; Google validates the official schema. Create requires a unique displayName and usage:["USAGE_DATA_DRIVEN_STYLING"]. Update forwards metadata and injects the matching resource name.
gcsSource / --gcs-sourceobjectNoRequired for importCloud Storage source for import; the caller must already have access to the object. No local files are read by this tool.
gcsSource.fileFormatstring; values: FILE_FORMAT_GEOJSON, FILE_FORMAT_KML, FILE_FORMAT_CSVWhen parent is suppliedRequired when gcsSource is suppliedSource encoding: FILE_FORMAT_GEOJSON, FILE_FORMAT_KML or FILE_FORMAT_CSV.
gcsSource.inputUristring; at least 1 character(s)When parent is suppliedRequired when gcsSource is suppliedExisting gs://bucket/object URI. The caller needs storage.objects.get, for example Storage Object Viewer.
name / --namestring; pattern: ^projects/[A-Za-z0-9][A-Za-z0-9._:-]*/datasets/[A-Za-z0-9_-]+(@active)?$NoRequired for resource operationsprojects/{project}/datasets/{dataset}; required except list/create. Only get also accepts @active to inspect the latest completed version.
operation / --operationstring; values: list, get, create, update, delete, import, download, fetch_errorsYesRequiredSelect list, get, create, update, delete, import, download or fetch_errors. Create/update/delete/import modify cloud resources.
pageSize / --page-sizeinteger; 1–500Nolist: 100; fetch_errors: Google default 50Maximum datasets/errors to return in one page; wrapper accepts 1–500.
pageToken / --page-tokenstring; at least 1 character(s)NoFirst pageToken from the preceding list/fetch_errors result. Keep other request arguments unchanged.
parent / --parentstring; pattern: ^projects/[A-Za-z0-9][A-Za-z0-9._:-]*$NoRequired for list/createprojects/{project ID or number}; required for list and create.
tag / --tagstring; values: activeNoLatest version regardless of processing stateFor list, active returns each dataset’s latest completed version and skips datasets with none.
updateMask / --update-maskstring; at least 1 character(s)NoGoogle defaults to * (full metadata replacement)Comma-separated native metadata field paths for update, for example description,displayName.
versionDescription / --version-descriptionstring; at least 1 character(s)NoOmittedDescription for the new imported data version. Used only by import.

Behavior and restrictions ​

  • Official REST resource and native Dataset schema. Permissions include mapsplatformdatasets.datasets.list/get/create/update/delete/import/export, according to the operation.
  • GCS import creates a new version asynchronously. Call get explicitly to inspect status; fetch_errors retrieves processing errors. The tool never polls automatically.
  • Google’s current public v1 REST API does not document listVersions. Use get (latest), get with @active, and returned versionId; complete version history enumeration is not claimed.
  • Download media requires mapsplatformdatasets.datasets.export. CLI --output writes downloaded bytes.
  • Maps Datasets API has no usage charge, but requires a configured Cloud project; Google Maps display and Cloud Storage may have their own charges and terms. Data-driven styling is the supported usage. Local multipart upload is not exposed; use an existing GCS object.

Primary sources: https://developers.google.com/maps/documentation/datasets/create, https://developers.google.com/maps/documentation/datasets/overview, https://developers.google.com/maps/documentation/datasets/reference/rest/v1/media/download, https://developers.google.com/maps/documentation/datasets/reference/rest/v1/projects.datasets

Result ​

Native Dataset/list/error JSON, import version resource name, or downloaded source bytes with MIME type and cache headers. get preserves status.state, status.errorMessage and versionId; importing does not mean processing has completed.

Example ​

MCP arguments:

json
{
  "operation": "list",
  "parent": "projects/my-project",
  "pageSize": 20
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_datasets --args '{"operation":"list","parent":"projects/my-project","pageSize":20}'

maps_route_optimization ​

Optimize delivery or service fleets with the actual Route Optimization API and an intact native ShipmentModel, including capacities, time windows and cost constraints.

Optimize delivery or service fleets with the actual Route Optimization API and an intact native ShipmentModel, including capacities, time windows and cost constraints.

CLI command: route-optimization. Google access: OAuth 2.0 only, using a service account or ADC and https://www.googleapis.com/auth/cloud-platform. API keys are not accepted. Configure the resource project and quota-project permissions separately.

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
name / --namestring; pattern: ^projects/[A-Za-z0-9][A-Za-z0-9._:-]*(/locations/[A-Za-z0-9_-]+)?/operations/[A-Za-z0-9_-]+$NoRequired for get_operationExact projects/{project}[/locations/{location}]/operations/{ID} returned by Google. Used only for get_operation.
operation / --operationstring; values: optimize, validate, batch, optimize_long_running, optimize_uri, get_operationYesRequiredoptimize solves synchronously; validate sets solvingMode=VALIDATE_ONLY; batch creates a GCS-backed job; optimize_long_running and optimize_uri create experimental jobs; get_operation reads one status.
parent / --parentstring; pattern: ^projects/[A-Za-z0-9][A-Za-z0-9._:-]*(/locations/[A-Za-z0-9_-]+)?$NoRequired except get_operationprojects/{project ID}; optionally /locations/-. Synchronous and long-running optimization reject regional location IDs. Batch/URI accept the native location form.
request / --requestobjectNoRequired except get_operationComplete native request object, without parent. For optimize/validate/optimize_long_running supply model with shipments/vehicles and all needed native constraints; Google validates the full schema. Batch requires 1–100 modelConfigs with inputConfig.gcsSource.uri, outputConfig.gcsDestination.uri and JSON or PROTO_TEXT dataFormat. URI requires input.uri/output.uri as gs:// paths ending .json or .txtpb.

Behavior and restrictions ​

  • Native optimizeTours request/ShipmentModel reference. validate still calls Google; it does not solve the fleet model.
  • IAM setup: roles/routeoptimization.viewer permits OptimizeTours and reading operations; roles/routeoptimization.editor also permits batch jobs. Permissions include routeoptimization.locations.use, routeoptimization.operations.create/get. The API must be enabled on the project.
  • Batch jobs read inputs and write outputs in Cloud Storage. Supply explicit object URIs and storage permissions; jobs can continue after the CLI/MCP request ends. No files are uploaded and no automatic polling occurs.
  • Long-running and URI variants are experimental; URI uses the documented case-sensitive :OptimizeToursUri endpoint. Google may change pre-GA behavior.
  • Operation cancel, delete and list are currently unsupported by Google. This tool therefore exposes get_operation only; no cancellation guarantee is made.
  • Billing depends on shipments and the Single Vehicle Routing or Fleet Routing SKU. This is separate from Routes API waypoint optimization. Transport timeouts do not cancel jobs.

Primary sources: https://developers.google.com/maps/documentation/route-optimization/cloud-setup, https://developers.google.com/maps/documentation/route-optimization/reference/rest/v1/operations, https://developers.google.com/maps/documentation/route-optimization/reference/rest/v1/projects/batchOptimizeTours, https://developers.google.com/maps/documentation/route-optimization/reference/rest/v1/projects/optimizeTours, https://developers.google.com/maps/documentation/route-optimization/usage-and-billing, https://github.com/googleapis/googleapis/blob/master/google/maps/routeoptimization/v1/route_optimization_service.proto

Result ​

Native OptimizeToursResponse or long-running Operation JSON. Polling preserves done:false, metadata, and completed response/error objects without hiding failed-operation status.

Example ​

MCP arguments:

json
{
  "operation": "validate",
  "parent": "projects/my-project",
  "request": {
    "model": {
      "shipments": [],
      "vehicles": [
        {
          "startLocation": {
            "latitude": 48.85,
            "longitude": 2.35
          }
        }
      ]
    },
    "maxValidationErrors": 10
  }
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_route_optimization --args '{"operation":"validate","parent":"projects/my-project","request":{"model":{"shipments":[],"vehicles":[{"startLocation":{"latitude":48.85,"longitude":2.35}}]},"maxValidationErrors":10}}'

maps_air_quality_forecast ​

Retrieve hourly air quality forecasts for an explicit time or interval, up to 96 hours ahead.

Retrieve hourly air quality forecasts for an explicit time or interval, up to 96 hours ahead.

CLI command: air-quality-forecast. Google access: API key or OAuth 2.0 bearer token with cloud-platform scope; enable the named API and billing. With OAuth, the quota-project principal needs serviceusage.services.use.

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
customLocalAqis / --custom-local-aqisarray of object; 1–250 itemsNoGoogle selects local indexesOverride the local index selected for particular ISO country/region codes.
customLocalAqis[].aqistring; at least 1 character(s)When parent is suppliedRequired for each overrideSupported local AQI code, for example us_epa. Google validates supported combinations.
customLocalAqis[].regionCodestring; pattern: ^[A-Za-z]{2}$When parent is suppliedRequired for each overrideTwo-letter country/region code receiving the AQI override.
dateTime / --date-timestring; at least 20 character(s)NoChoose a time selectorSingle RFC3339 UTC Z timestamp; Google rounds it down to the preceding hour. Mutually exclusive with period and hours.
extraComputations / --extra-computationsarray of string; 1–5 items; values: LOCAL_AQI, HEALTH_RECOMMENDATIONS, POLLUTANT_ADDITIONAL_INFO, DOMINANT_POLLUTANT_CONCENTRATION, POLLUTANT_CONCENTRATIONNoNo extra computationsRequest LOCAL_AQI, HEALTH_RECOMMENDATIONS, POLLUTANT_ADDITIONAL_INFO, DOMINANT_POLLUTANT_CONCENTRATION and/or POLLUTANT_CONCENTRATION.
languageCode / --language-codestring; at least 1 character(s)NoGoogle: enIETF language code for available localized text; Google chooses the closest supported language.
location / --locationobjectYesRequiredLocation whose conditions are requested.
location.latitudenumber; -90.0–90.0When parent is suppliedRequired when location is suppliedLatitude in degrees, -90 through 90.
location.longitudenumber; -180.0–180.0When parent is suppliedRequired when location is suppliedLongitude in degrees, -180 through 180.
pageSize / --page-sizeinteger; 1–96NoGoogle: forecast 24; history 72Maximum hourly records in this page; wrapper caps forecast at 96 and history at Google’s maximum of 168.
pageToken / --page-tokenstring; at least 1 character(s)NoFirst pagenextPageToken from a preceding request; keep other request fields unchanged.
period / --periodobjectNoChoose a time selectorInclusive hourly time interval; ordered and bounded to 96 forecast hours or 720 historical hours. Mutually exclusive with dateTime and hours.
period.endTimestring; at least 20 character(s)When parent is suppliedRequired when period is suppliedInclusive interval end in valid RFC3339 UTC notation ending Z.
period.startTimestring; at least 20 character(s)When parent is suppliedRequired when period is suppliedInterval start in valid RFC3339 UTC notation ending Z.
uaqiColorPalette / --uaqi-color-palettestring; values: RED_GREEN, INDIGO_PERSIAN_DARK, INDIGO_PERSIAN_LIGHTNoGoogle default paletteUniversal AQI palette: RED_GREEN, INDIGO_PERSIAN_DARK or INDIGO_PERSIAN_LIGHT. Local index palettes remain fixed.
universalAqi / --universal-aqibooleanNoGoogle: trueInclude the Universal Air Quality Index.

Behavior and restrictions ​

  • Forecast request reference. Choose dateTime or period.
  • Exactly one time selector is required. Timestamp syntax and interval order/maximum span are validated locally; Google validates current availability and geographic coverage.
  • One page is returned per call. Follow nextPageToken explicitly; all native indexes, concentrations, recommendations and region metadata are preserved.
  • Air Quality policies apply, including attribution, display and caching requirements. Coverage and local index availability vary by country.

Primary sources: https://developers.google.com/maps/documentation/air-quality/policies, https://developers.google.com/maps/documentation/air-quality/reference/rest/v1/forecast/lookup

Result ​

Google’s native hourlyForecasts, regionCode and nextPageToken, including optional pollutant and health fields.

Example ​

MCP arguments:

json
{
  "location": {
    "latitude": 48.85,
    "longitude": 2.35
  },
  "dateTime": "2026-11-01T12:00:00Z",
  "pageSize": 24
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_air_quality_forecast --args '{"location":{"latitude":48.85,"longitude":2.35},"dateTime":"2026-11-01T12:00:00Z","pageSize":24}'

maps_air_quality_history ​

Retrieve historical air quality information from the previous 30 days.

Retrieve historical air quality information from the previous 30 days.

CLI command: air-quality-history. Google access: API key or OAuth 2.0 bearer token with cloud-platform scope; enable the named API and billing. With OAuth, the quota-project principal needs serviceusage.services.use.

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
customLocalAqis / --custom-local-aqisarray of object; 1–250 itemsNoGoogle selects local indexesOverride the local index selected for particular ISO country/region codes.
customLocalAqis[].aqistring; at least 1 character(s)When parent is suppliedRequired for each overrideSupported local AQI code, for example us_epa. Google validates supported combinations.
customLocalAqis[].regionCodestring; pattern: ^[A-Za-z]{2}$When parent is suppliedRequired for each overrideTwo-letter country/region code receiving the AQI override.
dateTime / --date-timestring; at least 20 character(s)NoChoose a time selectorSingle RFC3339 UTC Z timestamp; Google rounds it down to the preceding hour. Mutually exclusive with period and hours.
extraComputations / --extra-computationsarray of string; 1–5 items; values: LOCAL_AQI, HEALTH_RECOMMENDATIONS, POLLUTANT_ADDITIONAL_INFO, DOMINANT_POLLUTANT_CONCENTRATION, POLLUTANT_CONCENTRATIONNoNo extra computationsRequest LOCAL_AQI, HEALTH_RECOMMENDATIONS, POLLUTANT_ADDITIONAL_INFO, DOMINANT_POLLUTANT_CONCENTRATION and/or POLLUTANT_CONCENTRATION.
hours / --hoursinteger; 1–720NoChoose exactly one of hours/dateTime/periodNumber of previous hours to retrieve, 1–720 (30 days). Mutually exclusive with dateTime and period.
languageCode / --language-codestring; at least 1 character(s)NoGoogle: enIETF language code for available localized text; Google chooses the closest supported language.
location / --locationobjectYesRequiredLocation whose conditions are requested.
location.latitudenumber; -90.0–90.0When parent is suppliedRequired when location is suppliedLatitude in degrees, -90 through 90.
location.longitudenumber; -180.0–180.0When parent is suppliedRequired when location is suppliedLongitude in degrees, -180 through 180.
pageSize / --page-sizeinteger; 1–168NoGoogle: forecast 24; history 72Maximum hourly records in this page; wrapper caps forecast at 96 and history at Google’s maximum of 168.
pageToken / --page-tokenstring; at least 1 character(s)NoFirst pagenextPageToken from a preceding request; keep other request fields unchanged.
period / --periodobjectNoChoose a time selectorInclusive hourly time interval; ordered and bounded to 96 forecast hours or 720 historical hours. Mutually exclusive with dateTime and hours.
period.endTimestring; at least 20 character(s)When parent is suppliedRequired when period is suppliedInclusive interval end in valid RFC3339 UTC notation ending Z.
period.startTimestring; at least 20 character(s)When parent is suppliedRequired when period is suppliedInterval start in valid RFC3339 UTC notation ending Z.
uaqiColorPalette / --uaqi-color-palettestring; values: RED_GREEN, INDIGO_PERSIAN_DARK, INDIGO_PERSIAN_LIGHTNoGoogle default paletteUniversal AQI palette: RED_GREEN, INDIGO_PERSIAN_DARK or INDIGO_PERSIAN_LIGHT. Local index palettes remain fixed.
universalAqi / --universal-aqibooleanNoGoogle: trueInclude the Universal Air Quality Index.

Behavior and restrictions ​

  • History request reference.
  • Exactly one time selector is required. Timestamp syntax and interval order/maximum span are validated locally; Google validates current availability and geographic coverage.
  • One page is returned per call. Follow nextPageToken explicitly; all native indexes, concentrations, recommendations and region metadata are preserved.
  • Air Quality policies apply, including attribution, display and caching requirements. Coverage and local index availability vary by country.

Primary sources: https://developers.google.com/maps/documentation/air-quality/policies, https://developers.google.com/maps/documentation/air-quality/reference/rest/v1/history/lookup

Result ​

Google’s native hoursInfo, regionCode and nextPageToken, including optional pollutant and health fields.

Example ​

MCP arguments:

json
{
  "location": {
    "latitude": 48.85,
    "longitude": 2.35
  },
  "hours": 24,
  "pageSize": 12
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_air_quality_history --args '{"location":{"latitude":48.85,"longitude":2.35},"hours":24,"pageSize":12}'

maps_air_quality_heatmap ​

Download a real air quality heatmap image tile for an index or pollutant.

Download a real air quality heatmap image tile for an index or pollutant.

CLI command: air-quality-heatmap. Google access: API key or OAuth 2.0 bearer token with cloud-platform scope; enable the named API and billing. With OAuth, the quota-project principal needs serviceusage.services.use.

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
mapType / --map-typestring; values: UAQI_RED_GREEN, UAQI_INDIGO_PERSIAN, PM25_INDIGO_PERSIAN, GBR_DEFRA, DEU_UBA, CAN_EC, FRA_ATMO, US_AQIYesRequiredUAQI_RED_GREEN, UAQI_INDIGO_PERSIAN, PM25_INDIGO_PERSIAN, GBR_DEFRA, DEU_UBA, CAN_EC, FRA_ATMO or US_AQI.
x / --xinteger; 0–65535YesRequiredTile column; 0 through 2^zoom−1. Bounds are checked before contacting Google.
y / --yinteger; 0–65535YesRequiredTile row; 0 through 2^zoom−1. Bounds are checked before contacting Google.
zoom / --zoominteger; 0–16YesRequiredWeb Mercator zoom, 0–16; level zero has one tile.

Behavior and restrictions ​

  • Heatmap tile reference. Tile availability depends on index/country coverage.
  • Air Quality policies require the applicable attribution and restrict content storage/display. Preserve response cache headers; the wrapper does not grant a content license.

Primary sources: https://developers.google.com/maps/documentation/air-quality/policies, https://developers.google.com/maps/documentation/air-quality/reference/rest/v1/mapTypes.heatmapTiles/lookupHeatmapTile

Result ​

Binary tile bytes with Google’s MIME/cache headers; MCP returns an inline image, and CLI can write --output.

Example ​

MCP arguments:

json
{
  "mapType": "UAQI_RED_GREEN",
  "zoom": 2,
  "x": 2,
  "y": 1
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_air_quality_heatmap --args '{"mapType":"UAQI_RED_GREEN","zoom":2,"x":2,"y":1}'

maps_pollen_heatmap ​

Download a real tree, grass or weed pollen index heatmap tile.

Download a real tree, grass or weed pollen index heatmap tile.

CLI command: pollen-heatmap. Google access: API key authentication. Enable Pollen API and billing; service-account OAuth is not supported for this API by this executable.

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
mapType / --map-typestring; values: TREE_UPI, GRASS_UPI, WEED_UPIYesRequiredTREE_UPI, GRASS_UPI or WEED_UPI.
x / --xinteger; 0–65535YesRequiredTile column; 0 through 2^zoom−1. Bounds are checked before contacting Google.
y / --yinteger; 0–65535YesRequiredTile row; 0 through 2^zoom−1. Bounds are checked before contacting Google.
zoom / --zoominteger; 0–16YesRequiredWeb Mercator zoom, 0–16; level zero has one tile.

Behavior and restrictions ​

  • Pollen heatmap reference. Availability varies by supported countries and season.
  • Pollen policies govern attribution, Google Maps display and caching. Enabled API access does not remove content license restrictions.

Primary sources: https://developers.google.com/maps/documentation/pollen/policies, https://developers.google.com/maps/documentation/pollen/reference/rest/v1/mapTypes.heatmapTiles/lookupHeatmapTile

Result ​

Binary PNG tile with MIME/cache metadata; CLI --output saves it and MCP returns an image.

Example ​

MCP arguments:

json
{
  "mapType": "TREE_UPI",
  "zoom": 2,
  "x": 2,
  "y": 1
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_pollen_heatmap --args '{"mapType":"TREE_UPI","zoom":2,"x":2,"y":1}'

maps_weather_history ​

Retrieve up to 24 previous hours of weather history with explicit pagination.

Retrieve up to 24 previous hours of weather history with explicit pagination.

CLI command: weather-history. Google access: API key or OAuth 2.0 bearer token with cloud-platform scope; enable the named API and billing. With OAuth, the quota-project principal needs serviceusage.services.use.

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
hours / --hoursinteger; 1–24NoGoogle: 24Number of previous hours starting from the last hour, 1–24.
languageCode / --language-codestring; at least 1 character(s)NoGoogle: enIETF BCP-47 response language.
location / --locationobjectYesRequiredLocation whose conditions are requested.
location.latitudenumber; -90.0–90.0When parent is suppliedRequired when location is suppliedLatitude in degrees, -90 through 90.
location.longitudenumber; -180.0–180.0When parent is suppliedRequired when location is suppliedLongitude in degrees, -180 through 180.
pageSize / --page-sizeinteger; 1–24NoHistory: Google 24; others: Google defaultMaximum records in this page. History accepts 1–24; alerts/minute forecast use a wrapper limit of 1–1000.
pageToken / --page-tokenstring; at least 1 character(s)NoFirst pageToken from the previous response; keep the other arguments unchanged.
unitsSystem / --units-systemstring; values: METRIC, IMPERIALNoGoogle: METRICMETRIC or IMPERIAL.

Behavior and restrictions ​

Primary sources: https://developers.google.com/maps/documentation/weather/policies, https://developers.google.com/maps/documentation/weather/reference/rest/v1/history.hours/lookup

Result ​

Native historyHours, timeZone and nextPageToken with all hourly conditions.

Example ​

MCP arguments:

json
{
  "location": {
    "latitude": 48.85,
    "longitude": 2.35
  },
  "hours": 12,
  "pageSize": 6
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_weather_history --args '{"location":{"latitude":48.85,"longitude":2.35},"hours":12,"pageSize":6}'

maps_weather_alerts ​

Retrieve public weather alerts intersecting a location, including native severity and issuing-authority information.

Retrieve public weather alerts intersecting a location, including native severity and issuing-authority information.

CLI command: weather-alerts. Google access: API key or OAuth 2.0 bearer token with cloud-platform scope; enable the named API and billing. With OAuth, the quota-project principal needs serviceusage.services.use.

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
languageCode / --language-codestring; at least 1 character(s)NoGoogle: enIETF BCP-47 response language where available.
location / --locationobjectYesRequiredLocation whose conditions are requested.
location.latitudenumber; -90.0–90.0When parent is suppliedRequired when location is suppliedLatitude in degrees, -90 through 90.
location.longitudenumber; -180.0–180.0When parent is suppliedRequired when location is suppliedLongitude in degrees, -180 through 180.
pageSize / --page-sizeinteger; 1–1000NoHistory: Google 24; others: Google defaultMaximum records in this page. History accepts 1–24; alerts/minute forecast use a wrapper limit of 1–1000.
pageToken / --page-tokenstring; at least 1 character(s)NoFirst pageToken from the previous response; keep the other arguments unchanged.

Behavior and restrictions ​

  • Public alerts reference. Coverage, delivery latency and available alert fields depend on the issuing authority.
  • Weather policies apply. Preserve alert provider attribution and do not treat absence of returned alerts as a safety guarantee.

Primary sources: https://developers.google.com/maps/documentation/weather/policies, https://developers.google.com/maps/documentation/weather/reference/rest/v1/publicAlerts/lookup

Result ​

Google’s native weatherAlerts collection, authority/area details and nextPageToken when available.

Example ​

MCP arguments:

json
{
  "location": {
    "latitude": 48.85,
    "longitude": 2.35
  },
  "pageSize": 5
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_weather_alerts --args '{"location":{"latitude":48.85,"longitude":2.35},"pageSize":5}'

maps_weather_minute_forecast ​

EXPERIMENTAL: retrieve high-resolution precipitation forecasts over a six-hour timeframe.

EXPERIMENTAL: retrieve high-resolution precipitation forecasts over a six-hour timeframe.

CLI command: weather-minute-forecast. Google access: API key or OAuth 2.0 bearer token with cloud-platform scope; enable the named API and billing. With OAuth, the quota-project principal needs serviceusage.services.use.

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
location / --locationobjectYesRequiredLocation whose conditions are requested.
location.latitudenumber; -90.0–90.0When parent is suppliedRequired when location is suppliedLatitude in degrees, -90 through 90.
location.longitudenumber; -180.0–180.0When parent is suppliedRequired when location is suppliedLongitude in degrees, -180 through 180.
pageSize / --page-sizeinteger; 1–1000NoHistory: Google 24; others: Google defaultMaximum records in this page. History accepts 1–24; alerts/minute forecast use a wrapper limit of 1–1000.
pageToken / --page-tokenstring; at least 1 character(s)NoFirst pageToken from the previous response; keep the other arguments unchanged.
unitsSystem / --units-systemstring; values: METRIC, IMPERIALNoGoogle: METRICMETRIC or IMPERIAL units for precipitation amounts.

Behavior and restrictions ​

  • Experimental/pre-GA: limited support and incompatible changes are possible. See the minute forecast guide and additional terms and weather-map guide.
  • Google requires attribution and limits caching of minute forecasts/map tiles to one hour, after which the cached content must be deleted.
  • Google prohibits using this Weather content to recreate a Google service/product, including an app or model whose primary purpose is providing weather information. These upstream restrictions apply to downstream consumers too.
  • Minute forecasts and map tiles may not be synchronized. One explicit page per call; availability depends on location and upstream access.

Primary sources: https://developers.google.com/maps/documentation/weather/minute-forecast, https://developers.google.com/maps/documentation/weather/weather-map

Result ​

Native overallPredictionTimeframe, timeZone, segments and nextPageToken; segments preserve type, probability, quantities and intensity.

Example ​

MCP arguments:

json
{
  "location": {
    "latitude": 37.60451,
    "longitude": -80.59044
  },
  "pageSize": 5
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_weather_minute_forecast --args '{"location":{"latitude":37.60451,"longitude":-80.59044},"pageSize":5}'

maps_weather_map ​

EXPERIMENTAL: download a precipitation nowcast image tile for the United States or Europe.

EXPERIMENTAL: download a precipitation nowcast image tile for the United States or Europe.

CLI command: weather-map. Google access: API key or OAuth 2.0 bearer token with cloud-platform scope; enable the named API and billing. With OAuth, the quota-project principal needs serviceusage.services.use.

Parameters ​

Parameter / CLI flagType and schema limitsRequiredDefault when omittedDescription
mapType / --map-typestring; values: US_PRECIPITATION_CURRENT, EU_PRECIPITATION_CURRENTYesRequiredUS_PRECIPITATION_CURRENT or EU_PRECIPITATION_CURRENT; geographically limited nowcast products.
x / --xinteger; 0–65535YesRequiredTile column; 0 through 2^zoom−1. Bounds are checked before contacting Google.
y / --yinteger; 0–65535YesRequiredTile row; 0 through 2^zoom−1. Bounds are checked before contacting Google.
zoom / --zoominteger; 0–16YesRequiredWeb Mercator zoom, 0–16; level zero has one tile.

Behavior and restrictions ​

  • Experimental/pre-GA: limited support and incompatible changes are possible. See the minute forecast guide and additional terms and weather-map guide.
  • Google requires attribution and limits caching of minute forecasts/map tiles to one hour, after which the cached content must be deleted.
  • Google prohibits using this Weather content to recreate a Google service/product, including an app or model whose primary purpose is providing weather information. These upstream restrictions apply to downstream consumers too.
  • US/EU coverage is limited to the regions shown in Google’s guide. Tile grid bounds do not imply that data exists for a location.

Primary sources: https://developers.google.com/maps/documentation/weather/minute-forecast, https://developers.google.com/maps/documentation/weather/weather-map

Result ​

Binary PNG tile preserving upstream MIME/cache headers; CLI --output writes bytes and MCP renders an image.

Example ​

MCP arguments:

json
{
  "mapType": "US_PRECIPITATION_CURRENT",
  "zoom": 12,
  "x": 1025,
  "y": 1688
}

Equivalent CLI call:

sh
mcp-gmap-rs call maps_weather_map --args '{"mapType":"US_PRECIPITATION_CURRENT","zoom":12,"x":1025,"y":1688}'