Google Maps
Server Details
The Google Maps MCP server is a fully-managed server provided by the Maps Grounding Lite API that connects AI applications to Google Maps Platform services. It provides three main tools for building LLM applications: searching for places, looking up weather information, and computing routes with details like distance and travel time. The server acts as a proxy that translates Google Maps data into a format that AI applications can understand, enabling agents to accurately answer real-world location and travel queries.
- Status
- Healthy
- Uptime
- 100.0% over 78 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 5 tools
Most tools have clearly distinct purposes: routing, weather, URL resolution, name resolution, and place search. The main overlap is between search_places and resolve_names, since both can map location names or addresses to Place IDs; descriptions help agents choose discovery vs. canonical resolution, but misselection remains possible.
All tool names follow a consistent snake_case verb_noun pattern: compute_routes, lookup_weather, resolve_maps_urls, resolve_names, search_places. The convention is predictable throughout.
Five tools is well-scoped for a focused Google Maps server, with each tool covering a distinct capability: place search, name resolution, URL resolution, route computation, and weather lookup. No tool appears redundant or out of place.
Core read-only maps workflows are covered: search, canonical resolution, routing, and weather. Minor gaps exist, such as explicit reverse geocoding or a standalone place-details operation, but search_places can retrieve attributes through query text, so agents can generally work around them.
Available Tools
5 toolscompute_routesARead-onlyInspect
Computes travel routes between an origin and a destination, optionally through intermediate stops. Returns the distance and duration for each route.
Input Requirements (CRITICAL):
originanddestination(objects - MANDATORY): Each must be provided using exactly one of:address(string, e.g.,'Eiffel Tower, Paris'). Named places, landmarks, and businesses are resolved directly, so do NOT callsearch_placesfirst just to geocode a waypoint. Include any city, region, or country the user mentioned.lat_lng(object,{"latitude": number, "longitude": number}).place_id(string, e.g.,'ChIJOwE_Id1w5EAR4Q27FkL6T_0'), for example fromsearch_places.
intermediate_waypoints(array of objects - OPTIONAL): Up to 10 stops to pass through, in order, between the origin and destination. Same format asorigin. Not supported withTRANSIT. Only include stops the user asked for.travel_mode(enum - OPTIONAL):DRIVE(default),WALK,BICYCLE, orTRANSIT.Timing (OPTIONAL - set at most ONE): RFC 3339 timestamps with a UTC offset, e.g.,
'2026-09-19T08:00:00-07:00'. Defaults to departing now. ForTRANSIT, the time can be up to 7 days in the past or up to 100 days in the future. For other modes, the time can be up to 365 days in the future and must not be in the past.departure_time: Use when the user says when they will leave (e.g., "tomorrow at 8am").arrival_time: Use when the user says when they must arrive (e.g., "be there by 9am").
routing_preference(enum - OPTIONAL):ROUTING_PREFERENCE_TRAFFIC_UNAWARE(default): ignores live traffic, incidents, and closures. Lowest latency.ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL: uses live traffic conditions when available. Not supported forWALKorBICYCLE. Set this ONLY when the user asks about traffic, congestion, or a traffic-adjusted ETA. It incurs higher cost and latency.
location_bias(object - OPTIONAL):{"latitude": number, "longitude": number}used to disambiguate place names in waypoint addresses. If a name is ambiguous (e.g., "Springfield") and the user gave no region, keep the name as given inaddressand setlocation_biastoward the intended area instead of guessing a region.compute_alternative_routes(boolean - OPTIONAL): Set totrueonly when the user asks for route options or alternatives. Defaults tofalse, which returns only the recommended route.include_polyline(boolean - OPTIONAL): Set totrueonly when the route geometry (encoded_polyline) is needed. Defaults tofalse.
Instructions for Tool Call:
If the origin or the destination is missing, you MUST ask the user for clarification before calling the tool.
For "How far is A from B?" questions, use B as the
originand A as thedestination.
Example Tool Call: {"origin":{"address":"Eiffel Tower"},"destination":{"place_id":"ChIJt_5xIthw5EARoJ71mGq7t74"},"intermediate_waypoints":[{"address":"Louvre Museum"}],"travel_mode":"DRIVE","departure_time":"2026-09-19T08:00:00+02:00"}
Instructions for Response:
When alternative routes are requested, routes are ordered from most to least recommended.
If
routesis empty, tell the user no route was found. Do not guess a route.Only state facts returned by the tool. Do NOT invent turn-by-turn directions, transit lines, stations, platforms, or transfers.
The grounded output must be attributed to the source using each route's
attributionfield when available.
| Name | Required | Description | Default |
|---|---|---|---|
| origin | Yes | Required. Origin waypoint. | |
| travelMode | No | Optional. Specifies the mode of transportation. | |
| arrivalTime | No | Optional. Indicates that the route should be computed based on arrival time. Only one of this field or departureTime should be set. | |
| destination | Yes | Required. Destination waypoint. | |
| locationBias | No | Optional. A location to bias the search results toward, for example to disambiguate waypoint text queries. | |
| departureTime | No | Optional. Indicates that the route should be computed based on departure time. Only one of this field or arrivalTime should be set. | |
| includePolyline | No | Optional. Whether to include the encoded polyline in the response routes. Defaults to `false`. When set to `true`, `Route.encoded_polyline` is returned. | |
| routingPreference | No | Optional. Determines how traffic data is used to compute the route. `ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL` is not supported when `travel_mode` is `WALK` or `BICYCLE`. For `TRANSIT`, it enables realtime transit data, such as delays and cancellations. | |
| intermediateWaypoints | No | Optional. Intermediate stops between the origin and destination to pass through in order. At most 10 intermediate waypoints are supported. Intermediate waypoints are not supported when `travel_mode` is `TRANSIT`. | |
| computeAlternativeRoutes | No | Optional. Whether to compute alternative routes in addition to the recommended route. Defaults to false, in which case only the recommended route is returned. When set to true, up to all available routes are returned, though alternatives may not be available for every request. |
Output Schema
| Name | Required | Description |
|---|---|---|
| routes | No | Contains routes between the requested origin and destination, ordered from most recommended to least recommended. Only one route is returned unless `ComputeRoutesRequest.compute_alternative_routes` is set to true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the read-only/non-destructive annotations, the description discloses cost and latency implications of traffic-aware routing, timing windows (7 days past/100 days future for transit, 365 days future for other modes), default behaviors, and response handling for empty routes. It additionally sets response guardrails against inventing turn-by-turn details and requires attribution.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but well-organized with a purpose sentence, numbered input requirements, an example, and response instructions, so it stays navigable. Some content duplicates schema documentation (waypoint exclusivity, max 10 stops, enum behavior), which is useful but not strictly necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters, nested waypoint objects, and an output schema, the description covers everything an agent needs: mandatory origin/destination formats, optional parameter trade-offs, timing constraints, and response behavior. Return-value details are appropriately left to the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema coverage is 100%, the description adds decision semantics the schema lacks: set routing_preference to traffic-aware only on explicit traffic questions, use departure_time vs arrival_time based on user phrasing, set compute_alternative_routes and include_polyline only when specifically requested, and use location_bias to disambiguate names rather than guessing a region.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence states a specific verb and resource ('Computes travel routes between an origin and a destination') and adds what is returned ('distance and duration'). It also distinguishes itself from the sibling search_places by warning not to call search_places first just to geocode a waypoint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance for every optional parameter: departure_time vs arrival_time, when to enable traffic-aware routing ('ONLY when the user asks about traffic'), when to request alternatives or polyline, and when to ask the user for clarification. It also notes unsupported combinations (intermediate stops with TRANSIT, traffic-aware with WALK/BICYCLE).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_weatherARead-onlyInspect
Retrieves comprehensive weather data including current conditions, hourly, and daily forecasts.
Specific Data Available: Temperature (Current, Feels Like, Max/Min, Heat Index), Wind (Speed, Gusts, Direction), Celestial Events (Sunrise/Sunset, Moon Phase), Precipitation (Type, Probability, Quantity/QPF), Atmospheric Conditions (UV Index, Humidity, Cloud Cover, Thunderstorm Probability), and Geocoded Location Address.
Location & Location Rules (CRITICAL):
The location for which weather data is requested is specified using the location field.
This field is a 'oneof' structure, meaning you MUST provide a value for ONLY ONE
of the three location sub-fields below to ensure an accurate weather data lookup.
Geographic Coordinates (lat_lng)
Use it when you are provided with exact lat/lng coordinates.
Example: {"location": {"lat_lng": {"latitude": 34.0522, "longitude": -118.2437}}} // Los Angeles
Place ID (place_id)
An unambiguous string identifier (Google Maps Place ID).
The place_id can be fetched from the search_places tool.
Example: {"location": {"place_id": "ChIJLU7jZClu5kcR4PcOOO6p3I0"}} // Eiffel Tower
Address String (address)
A free-form string that requires specificity for geocoding.
City & Region: Always include region/country (e.g., "London, UK", not "London").
Street Address: Provide the full address (e.g., "1600 Pennsylvania Ave NW, Washington, DC").
Postal/Zip Codes: MUST be accompanied by a country name (e.g., "90210, USA", NOT "90210").
Example: {"location": {"address": "1600 Pennsylvania Ave NW, Washington, DC"}}
Usage Modes:
Current Weather: Provide
locationonly. Do not specifydateandhour.Hourly Forecast: Provide
location,date, andhour(0-23). Use for specific times (e.g., "at 5 PM") or terms like "next few hours" or "later today". If the user specifies minute, round down to the nearest hour. Hourly forecast beyond 120 hours from now is not supported. Historical hourly weather is supported up to 24 hours in the past.Daily Forecast: Provide
locationanddate. Do not specifyhour. Use for general day requests (e.g., "weather for tomorrow", "weather on Friday", "weather on 12/25"). If today's date is not in the context, you should clarify it with the user. Daily forecast beyond 10 days including today is not supported. Historical weather is not supported.
Parameter Constraints:
Timezones: All
dateandhourinputs must be relative to the location's local time zone, not the user's time zone.Date Format: Inputs must be separated into
{year, month, day}integers.Units: Defaults to
METRIC. Setunits_systemtoIMPERIALfor Fahrenheit/Miles if the user implies US standards or explicitly requests it.The grounded output must be attributed to the source using the information from the
attributionfield when available.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Optional. The date of the required weather information. Note: This date is relative to the local timezone of the location specified in the location field. The date must be between 24 hours in the past and the next 10 days. | |
| hour | No | Optional. The hour of the requested weather information, in 24-hour format (0-23). This value is relative to the local timezone of the location specified in the location field. Hourly forecast beyond 120 hours from now is not supported. Historical hourly weather is supported up to 24 hours in the past. | |
| location | Yes | Required. The location to get the weather conditions for. | |
| unitsSystem | No | Optional. The units system to use for the returned weather conditions. If not provided, the returned weather conditions will be in the metric system (default = METRIC). | |
| capabilities | No | Optional. The environmental capabilities to include in the response. | |
| languageCode | No | Optional. The BCP-47 language code for localized text in the response (e.g. "en", "ja", "fr-CA"). Defaults to "en" if not specified. | |
| weatherOptions | No | Optional. Options specific to weather requests. `weather_options.units_system` is supported in tandem with top-level `units_system` (tag 4) to preserve backwards compatibility for existing callers; returns INVALID_ARGUMENT if both specify conflicting unit systems. Ignored if `WEATHER` is not requested in `capabilities`. | |
| airQualityOptions | No | Optional. Options specific to air quality requests. Ignored if `AIR_QUALITY` is not requested in `capabilities`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| wind | No | The wind conditions |
| pollen | No | Pollen information at the requested location. |
| uvIndex | No | The maximum ultraviolet (UV) index. define optional because it is not always available |
| weather | No | Weather conditions at the requested location. |
| timeZone | No | Resolved IANA timezone string for the location (e.g., "America/New_York", "Asia/Tokyo"). |
| heatIndex | No | The hourly heat index temperature. |
| sunEvents | No | The events related to the sun (e.g. sunrise, sunset). |
| airQuality | No | Air quality information at the requested location. |
| cloudCover | No | The percentage of the sky covered by clouds (values from 0 to 100). define optional because it is not always available |
| moonEvents | No | The events related to the moon (e.g. moonrise, moonset). |
| airPressure | No | The hourly air pressure conditions. |
| attribution | No | Required attribution to show with the weather. |
| temperature | No | The hourly temperature |
| maxHeatIndex | No | The maximum heat index temperature throughout the day. |
| precipitation | No | The precipitation probability and amount of precipitation accumulated |
| maxTemperature | No | The maximum (high) temperature throughout the day. |
| minTemperature | No | The minimum (low) temperature throughout the day. |
| relativeHumidity | No | The percent of relative humidity (values from 0 to 100). define optional because it is not always available |
| returnedLocation | No | Required. The location where the weather information is returned. This location is identical to the location in the request, but can be different from it if the requested location is a free text address that looks up to a coarse location (e.g. "Mountain View, CA"). |
| weatherCondition | No | The weather condition |
| feelsLikeTemperature | No | The hourly measure of how the temperature feels like. |
| feelsLikeMaxTemperature | No | The maximum (high) feels-like temperature throughout the day. |
| feelsLikeMinTemperature | No | The minimum (low) feels-like temperature throughout the day. |
| thunderstormProbability | No | The thunderstorm probability (values from 0 to 100). define optional because it is not always available |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered; the description goes well beyond them by disclosing forecast horizon limits, the timezone-relativity rule for date/hour, the default unit system, and the attribution obligation on grounded output. Those are operational constraints an agent cannot infer from the annotations or schema alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but strongly front-loaded and organized under bold headings, with the critical location rule called out first after the data summary. Some content is redundant with the schema (units default, date format) and the data-availability list is verbose, but nothing is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return-value explanation is correctly omitted, and the location/time/units semantics are thoroughly covered. The notable gap is that the schema also supports WEATHER / AIR_QUALITY / POLLEN capabilities and localized output via languageCode, none of which the description acknowledges, leaving an agent unaware it could request air quality or pollen from this endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description earns extra credit by explaining the oneof exclusivity of the location sub-fields, the specificity required for a free-form address (region/country, full street address, zip must carry country), and the {year, month, day} shape plus local-timezone semantics for date/hour. It loses a point for never mentioning the `capabilities`, `airQualityOptions`, or `languageCode` parameters, and its examples use `lat_lng`/`place_id` while the schema uses `latLng`/`placeId`.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Retrieves) and resource (weather data) and enumerates the concrete data classes returned (temperature, wind, celestial, precipitation, atmospheric, geocoded address). This is plainly distinct from the sibling tools (compute_routes, resolve_maps_urls, resolve_names, search_places), so an agent can route without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The Usage Modes section gives explicit when-to-use rules keyed on which parameters to supply: location only for current, location+date+hour for hourly, location+date for daily, with the natural-language phrasing that maps to each ('at 5 PM', 'next few hours', 'weather on Friday'). It also names the boundary conditions (hourly >120h unsupported, historical hourly up to 24h back, daily >10 days unsupported, historical daily unsupported) and points to search_places as the source for place_id.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_maps_urlsARead-onlyInspect
Resolves a list of Google Maps URLs into canonical Google Maps Place IDs.
When to call this tool (CRITICAL):
Use this tool when the user provides one or more Google Maps sharing links or URLs (e.g. 'https://maps.app.goo.gl/...', 'https://www.google.com/maps/place/...', or 'https://maps.google.com/...') and you need to extract the underlying canonical Place IDs.
You can specify up to 20 URLs to resolve in a single batch request.
Input Requirements (CRITICAL):
urls(array of strings - MANDATORY): The list of Google Maps URLs to resolve. Each URL must be a valid, single-place Google Maps URL.
Save to Google Maps:
The response includes a
save_to_maps_urlfield: a single Google Maps link containing all successfully resolved places.When the user wants to save, share, or open the resolved places as a list in Google Maps (e.g. collecting places shared in a conversation), present this link to the user. Do NOT construct this link yourself.
Error Handling (CRITICAL):
This is a batch processing tool. A request might return "mixed results" (e.g. some URLs resolve successfully while others fail).
The output list of
entitiesis guaranteed to map 1:1 with the inputurlsindices. A failed URL resolution will result in an emptyEntitymessage (no fields are set) at its corresponding index in theentitieslist.You MUST check the
failed_requestsmap field in the response to identify which specific URL index failed. The key offailed_requestsrepresents the 0-based index of the failed URL in the request. Do not assume the entire batch call failed because of a partial failure.
| Name | Required | Description | Default |
|---|---|---|---|
| urls | Yes | Required. The Google Maps URLs to be resolved. Each URL should be a valid Google Maps URL, for example, https://maps.app.goo.gl/..., https://www.google.com/maps/place/..., or https://maps.google.com/.... Currently, only URLs pointing to a single place are supported. You may specify up to 20 URLs. |
Output Schema
| Name | Required | Description |
|---|---|---|
| entities | No | Output only. The list of resolved entities from the Google Maps URLs. Guaranteed to map 1:1 with the request `urls` indices. An empty message at index `i` (where no `entity` is set) indicates the resolution failed for that URL. If the resolution failed, please check the `failed_requests` field for the error status. |
| saveToMapsUrl | No | Output only. A link to save all successfully resolved entities in Google Maps. |
| failedRequests | No | Output only. A map communicating partial failures for the Google Maps URLs. The key is the index of the failed request in the `urls` field. The value is the error status detailing why the resolution failed. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/non-destructive annotations, the description discloses high-value non-obvious behavior: this is a batch tool that can return mixed results, entities map 1:1 by index, failed entries appear as empty Entity messages, and failed_requests keys map to 0-based input indices. It also warns not to treat partial failure as total failure and not to hand-construct the save link.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Headers and bold labels front-load the critical routing and error-handling guidance, and the error section is well-structured. It loses a point for the 'Input Requirements' block, which duplicates schema content verbatim rather than earning its space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even though an output schema exists, the description supplies the interpretation an agent needs for correct use of that output (index alignment, empty Entity on failure, failed_requests keyed by index) plus the save_to_maps_url workflow. Nothing needed to call or consume the result is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and there is a single parameter, so the schema already documents format, examples, and the 20-URL cap. The description's 'Input Requirements' block largely restates that schema text, adding no syntax or semantics beyond it — baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb, resource, and output ('Resolves a list of Google Maps URLs into canonical Google Maps Place IDs'), so the transformation is unambiguous. It is clearly differentiable from siblings like resolve_names, search_places, and compute_routes without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'When to call this tool (CRITICAL)' section gives a concrete trigger (user provides maps.app.goo.gl / google.com/maps/place links) and states the batch limit. It does not explicitly name sibling alternatives or when NOT to use it (e.g. vs. search_places for non-URL queries), leaving that to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_namesARead-onlyInspect
Resolves a batch list of specific location queries (landmark names or exact addresses) into canonical Google Maps Place IDs.
Input Requirements (CRITICAL):
queries(array of objects - MANDATORY): A list of location queries to resolve. You may specify up to 20 queries.Each query object must have:
text(string - MANDATORY): The text query representing a specific place name or address to resolve.Examples:
'Googleplex, Mountain View, CA','1600 Amphitheatre Pkwy, Mountain View, CA','Eiffel Tower, Paris'.
location_bias(object - OPTIONAL): Use this to prioritize results near a specific geographic area.Format:
{"viewport": {"low": {"latitude": [value], "longitude": [value]}, "high": {"latitude": [value], "longitude": [value]}}}
region_code(string - OPTIONAL): The Unicode CLDR region code (two-letter country code, e.g.,US,CA) of the user to bias the results.
Instructions for Tool Call:
Specificity (CRITICAL): Queries must represent a specific place name or address. General searches like
'restaurants'or chain names like'Starbucks'are not supported.Do NOT call this tool if the downstream tools you plan to invoke already accept raw address or place name strings directly.
Save to Google Maps:
The response includes a
save_to_maps_urlfield: a single Google Maps link containing all successfully resolved places.When the user wants to save, share, or open the resolved places as a list in Google Maps, present this link to the user. Do NOT construct this link yourself.
Error Handling (CRITICAL):
This is a batch processing tool. A request might return "mixed results" (e.g. some queries resolve successfully while others fail).
The output list of
resultsis guaranteed to map 1:1 with the inputqueriesindices. A failed query will result in an emptyResultmessage (noentityis set) at its corresponding index in theresultslist.You MUST check the
failed_requestsmap field in the response to identify which specific query index failed. The key offailed_requestsrepresents the 0-based index of the failed query in the request. Do not assume the entire batch call failed because of a partial failure.
| Name | Required | Description | Default |
|---|---|---|---|
| queries | Yes | Required. A list of location queries to be resolved. You may specify up to 20 queries. | |
| regionCode | No | Optional. An optional region code to bias the resolution results. If specified, the resolution results will be biased towards the entities that are in or near the specified region. This should be a CLDR region code. For example, "US" or "CA". Including `location_bias` or `region_code` often provides better results by narrowing the search space. If both `location_bias` and `region_code` are specified, `location_bias` takes precedence over `region_code`. | |
| locationBias | No | Optional. An optional region to bias the resolution results. If specified, the resolution results will be biased towards the entities that are closer to this region. Including `location_bias` or `region_code` often provides better results by narrowing the search space. If both `location_bias` and `region_code` are specified, `location_bias` takes precedence over `region_code`. |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | No | Output only. The list of resolved entities from the location queries. Guaranteed to map 1:1 with the request `queries` indices. An empty string at index `i` indicates the resolution failed for that query. If the resolution failed, please check the `failed_requests` field for the error status. |
| saveToMapsUrl | No | Output only. A link to save all successfully resolved entities in Google Maps. |
| failedRequests | No | Output only. A map communicating partial failures. The key is the index of the failed request in the `queries` field. The value is the error status detailing why the resolution failed. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false), and the description adds real operational behavior beyond them: batch semantics, up to 20 queries, guaranteed 1:1 index mapping, and partial-failure handling via the failed_requests map. The save_to_maps_url instruction is also useful, though some of the return-value detail overlaps with the existing output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and the headed sections are easy to scan, but the body is long and heavily redundant: it restates field names, examples, and limits that the schema already documents at 100% coverage, so several sentences do not earn their place for an agent that can read the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a batch tool with an output schema, the description supplies everything needed to call it correctly and interpret results: mandatory vs optional inputs, the query cap, the 1:1 results-to-queries mapping, how to detect per-index failures, and how to surface save_to_maps_url. Nothing material is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, and the description largely mirrors the schema rather than extending it — the query examples, the 20-query limit, and the specificity rule all already appear in the LocationQuery and queries schema descriptions. The location_bias format example and the location_bias-over-region_code precedence note are the main additions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb (Resolves), input (batch list of location queries) and output (canonical Google Maps Place IDs), and the specificity constraint ('General searches like restaurants or chain names like Starbucks are not supported') implicitly separates it from search_places. Siblings such as resolve_maps_urls are never named, so the differentiation is inferential rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear when-to-use context plus a genuine when-not rule: 'Do NOT call this tool if the downstream tools you plan to invoke already accept raw address or place name strings directly,' and it warns that vague queries are unsupported. It stops short of naming the specific sibling to use instead (search_places, resolve_maps_urls), so the routing is implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_placesARead-onlyInspect
Call this tool when the user's request is to find places, businesses, addresses, locations, points of interest, or any other Google Maps related search.
Input Requirements (CRITICAL):
text_query(string - MANDATORY): The primary search query. This must clearly define what the user is looking for.Examples:
'restaurants in New York','coffee shops near Golden Gate Park','SF MoMA','1600 Amphitheatre Pkwy, Mountain View, CA, USA','pets friendly parks in Manhattan, New York','date night restaurants in Chicago','accessible public libraries in Los Angeles'.For specific place details: Include the requested attribute (e.g.,
'Google Store Mountain View opening hours','SF MoMa phone number','Shoreline Park Mountain View address').
location_bias(object - OPTIONAL): Use this to prioritize results near a specific geographic area.Format:
{"location_bias": {"circle": {"center": {"latitude": [value], "longitude": [value]}, "radius_meters": [value (optional)]}}}Usage:
To bias to a 5km radius:
{"location_bias": {"circle": {"center": {"latitude": 34.052235, "longitude": -118.243683}, "radius_meters": 5000}}}To bias strongly to the center point:
{"location_bias": {"circle": {"center": {"latitude": 34.052235, "longitude": -118.243683}}}}(omittingradius_meters).
language_code(string - OPTIONAL): The language to show the search results summary in.Format: A two-letter language code (ISO 639-1), optionally followed by an underscore and a two-letter country code (ISO 3166-1 alpha-2), e.g.,
en,ja,en_US,zh_CN,es_MX. If the language code is not provided, the results will be in English.
region_code(string - OPTIONAL): The Unicode CLDR region code of the user. This parameter is used to display the place details, like region-specific place name, if available. The parameter canaffect results based on applicable law.Format: A two-letter country code (ISO 3166-1 alpha-2), e.g.,
US,CA.
Instructions for Tool Call:
Location Information (CRITICAL): The search must contain sufficient location information. If the location is ambiguous (e.g., just "pizza places"), you must specify it in the
text_query(e.g., "pizza places in New York") or use thelocation_biasparameter. Include city, state/province, and region/country name if needed for disambiguation.Always provide the most specific and contextually rich
text_querypossible.Only use
location_biasif coordinates are explicitly provided or if inferring a location from a user's known context is appropriate and necessary for better results.The grounded output must be attributed to the source using the information from the
attributionfield when available.
| Name | Required | Description | Default |
|---|---|---|---|
| pageSize | No | Optional. The maximum number of places to return, up to 5. The service may return fewer than this value. The default value is 5. | |
| textQuery | Yes | Required. The text query. | |
| regionCode | No | Optional. The Unicode country/region code (CLDR) of the location where the request is coming from. This parameter is used to display the place details, like region-specific place name, if available. The parameter can affect results based on applicable law. For example, "US" for United States. For more information, see https://www.unicode.org/cldr/charts/latest/supplemental/territory_language_information.html. Note that 3-digit region codes are not currently supported. | |
| languageCode | No | Optional. The language to request that the summary is returned in. If the language code is unspecified or unrecognized, the summary with a preference for English will be returned. For example, "en" for English. Current list of supported languages: https://developers.google.com/maps/faq#languagesupport. | |
| locationBias | No | An optional region to bias the search results to. If an explicit location is in `text_query`, it will be used to bias the search results instead of this field. | |
| includeExtendedDetails | No | Optional. Includes extended place details in the response. Set this field to `true` when the user request requires rich qualitative insights, real-time dynamics, or specialized entity attributes: - Qualitative reviews, customer sentiment, and feedback. - Specific offerings like menu items, dishes, food specialties, beverages, or business highlights. - Qualitative atmosphere, interior decor, aesthetic, ambience, or mood. - Real-time data and specialized facility specs, visitor policies/tips, wait times. Leave `false` (default) for standard discovery searches (e.g., cuisines, store types), location/address lookups, contact info, operating hours, and standard metadata/amenities. Enabling this field will incur higher latency. |
Output Schema
| Name | Required | Description |
|---|---|---|
| places | No | Output only. The list of places that are mentioned in the summary. |
| summary | No | Output only. A natural language summary of the search results. The summary may contain zero-based citations like "[0]", "[1]", "[2]" etc. These citations map to the corresponding places in the `places` field. |
| contentToken | No | Output only. An encrypted token that encapsulates the search context and can be passed to Google Maps visual rendering services, SDKs, or the Maps Agentic UI Toolkit (A2UI) to display interactive UI components for the returned search results. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, non-destructive), so the description adds the operational rules that matter: the search must contain sufficient location context or results degrade, and grounded output must be attributed using the `attribution` field. It also warns that verbose-detail requests add latency, though the schema description already states this. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The trigger condition is correctly front-loaded, but the body is long and heavily formatted with duplicated guidance (location requirements appear in both the numbered list and the 'Instructions' section). Several paragraphs restate schema text verbatim (language_code/region_code formats), diluting the parts that carry new information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need no explanation, and the description covers the main decision points: query formulation, location disambiguation, and when to request extended details. The one gap is that pageSize (maximum 5) is never acknowledged in the description, and the parameter-name mismatch above slightly undermines otherwise solid completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so the baseline is 3, but the description actively introduces naming that does not match the schema: it refers to `text_query`, `location_bias`, `language_code`, `region_code` instead of textQuery/locationBias/languageCode/regionCode, and its location_bias example uses `radius_meters` where the schema defines `radiusMeters`. An agent copying that example would emit invalid arguments. The text_query example list is genuinely helpful, but the mismatched keys are a net risk rather than added meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence names a specific verb and resource ('find places, businesses, addresses, locations, points of interest') and scopes it to Google Maps search, which no sibling (compute_routes, lookup_weather, resolve_names, resolve_maps_urls) covers. An agent can route a 'find X near Y' request here without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit trigger condition ('when the user's request is to find places...'), a rule that location must be resolvable either in text_query or via location_bias, and a constraint that location_bias should only be used with explicit coordinates or well-known user context. It never names a sibling tool as an alternative, so the boundary with resolve_names / resolve_maps_urls is left implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
lookup_weather2 fields changed- changed
Output schema / $defs / WeatherCondition / properties / type / enumPrevious value: -[ - "TYPE_UNSPECIFIED", - "CLEAR", - "MOSTLY_CLEAR", - "PARTLY_CLOUDY", - "MOSTLY_CLOUDY", - "CLOUDY", - "WINDY", - "WIND_AND_RAIN", - "LIGHT_RAIN_SHOWERS", - "CHANCE_OF_SHOWERS", - "SCATTERED_SHOWERS", - "RAIN_SHOWERS", - "HEAVY_RAIN_SHOWERS", - "LIGHT_TO_MODERATE_RAIN", - "MODERATE_TO_HEAVY_RAIN", - "RAIN", - "LIGHT_RAIN", - "HEAVY_RAIN", - "RAIN_PERIODICALLY_HEAVY", - "LIGHT_SNOW_SHOWERS", - "CHANCE_OF_SNOW_SHOWERS", - "SCATTERED_SNOW_SHOWERS", - "SNOW_SHOWERS", - "HEAVY_SNOW_SHOWERS", - "LIGHT_TO_MODERATE_SNOW", - "MODERATE_TO_HEAVY_SNOW", - "SNOW", - "LIGHT_SNOW", - "HEAVY_SNOW", - "SNOWSTORM", - "SNOW_PERIODICALLY_HEAVY", - "HEAVY_SNOW_STORM", - "BLOWING_SNOW", - "RAIN_AND_SNOW", - "HAIL", - "HAIL_SHOWERS", - "THUNDERSTORM", - "THUNDERSHOWER", - "LIGHT_THUNDERSTORM_RAIN", - "SCATTERED_THUNDERSTORMS", - "HEAVY_THUNDERSTORM" -]New value: +[ + "TYPE_UNSPECIFIED", + "CLEAR", + "MOSTLY_CLEAR", + "PARTLY_CLOUDY", + "MOSTLY_CLOUDY", + "CLOUDY", + "WINDY", + "WIND_AND_RAIN", + "LIGHT_RAIN_SHOWERS", + "CHANCE_OF_SHOWERS", + "SCATTERED_SHOWERS", + "RAIN_SHOWERS", + "HEAVY_RAIN_SHOWERS", + "LIGHT_TO_MODERATE_RAIN", + "MODERATE_TO_HEAVY_RAIN", + "RAIN", + "LIGHT_RAIN", + "HEAVY_RAIN", + "RAIN_PERIODICALLY_HEAVY", + "LIGHT_SNOW_SHOWERS", + "CHANCE_OF_SNOW_SHOWERS", + "SCATTERED_SNOW_SHOWERS", + "SNOW_SHOWERS", + "HEAVY_SNOW_SHOWERS", + "LIGHT_TO_MODERATE_SNOW", + "MODERATE_TO_HEAVY_SNOW", + "SNOW", + "LIGHT_SNOW", + "HEAVY_SNOW", + "SNOWSTORM", + "SNOW_PERIODICALLY_HEAVY", + "HEAVY_SNOW_STORM", + "BLOWING_SNOW", + "RAIN_AND_SNOW", + "HAIL", + "HAIL_SHOWERS", + "THUNDERSTORM", + "THUNDERSHOWER", + "LIGHT_THUNDERSTORM_RAIN", + "SCATTERED_THUNDERSTORMS", + "HEAVY_THUNDERSTORM", + "CLEAR_AFTER_FOG_IN_THE_MORNING", + "CLEAR_BUT_LATER_TURNING_CLOUDY", + "CLEAR_BUT_LATER_TURNING_TO_RAIN_AND_SNOW_MAIN_CONSTITUENT_RAIN", + "CLEAR_BUT_LATER_TURNING_TO_SNOW_AND_RAIN_MAIN_CONSTITUENT_SNOW", + "CLEAR_BUT_THUNDERSTORMS_LATER", + "CLEAR_IN_THE_MORNING_BUT_CLOUDY_IN_THE_EVENING", + "CLEAR_IN_THE_MORNING_WITH_BRIEF_RAIN_IN_THE_EVENING", + "CLEAR_MORNING_WITH_BRIEF_RAIN", + "CLEAR_WITH_BRIEF_RAIN", + "CLEAR_WITH_BRIEF_RAIN_AND_SNOW_RAIN_AS_MAIN_CONSTITUENT", + "CLEAR_WITH_BRIEF_RAIN_LATER", + "CLEAR_WITH_BRIEF_SNOW", + "CLEAR_WITH_BRIEF_SNOW_AND_RAIN_SNOW_AS_MAIN_CONSTITUENT", + "CLEAR_WITH_BRIEF_SNOW_LATER", + "CLEAR_WITH_PERIODIC_CLOUDS_LATER", + "CLEAR_WITH_PERIODIC_RAIN", + "CLEAR_WITH_PERIODIC_RAIN_ACCOMPANIED_BY_THUNDER", + "CLEAR_WITH_PERIODIC_RAIN_AND_SNOW_RAIN_AS_MAIN_CONSTITUENT", + "CLEAR_WITH_PERIODIC_RAIN_LATER", + "CLEAR_WITH_PERIODIC_SNOW", + "CLEAR_WITH_PERIODIC_SNOW_AND_RAIN_SNOW_AS_MAIN_CONSTITUENT", + "CLEAR_WITH_PERIODIC_SNOW_LATER", + "CLEAR_WITH_RAIN_AFTER_MIDNIGHT", + "CLEAR_WITH_RAIN_IN_THE_NIGHT", + "CLEAR_WITH_RAIN_LATER", + "CLEAR_WITH_SNOW_ALONG_THE_MOUNTAINS", + "CLEAR_WITH_SNOW_LATER", + "CLEAR_WITH_THUNDERSTORMS_ALONG_THE_MOUNTAINS", + "CLEAR_WITH_THUNDERSTORMS_IN_THE_AFTERNOON", + "CLOUDY_BUT_CLEAR_LATER", + "CLOUDY_BUT_LATER_TURNING_TO_RAIN_AND_SNOW_MAIN_CONSTITUENT_RAIN", + "CLOUDY_BUT_LATER_TURNING_TO_SNOW_AND_RAIN_MAIN_CONSTITUENT_SNOW", + "CLOUDY_BUT_PERIODICALLY_CLEAR_LATER", + "CLOUDY_BUT_THUNDERSTORMS_LATER", + "CLOUDY_MORNING_WITH_BRIEF_RAIN", + "CLOUDY_PERIODICALLY_CLEAR", + "CLOUDY_SNOWING_IN_THE_EVENING", + "CLOUDY_SNOWING_IN_THE_NIGHT", + "CLOUDY_WITH_BRIEF_RAIN", + "CLOUDY_WITH_BRIEF_RAIN_AND_SNOW_RAIN_AS_MAIN_CONSTITUENT", + "CLOUDY_WITH_BRIEF_RAIN_LATER", + "CLOUDY_WITH_BRIEF_SNOW", + "CLOUDY_WITH_BRIEF_SNOW_AND_RAIN_SNOW_AS_MAIN_CONSTITUENT", + "CLOUDY_WITH_BRIEF_SNOW_LATER", + "CLOUDY_WITH_BRIEF_THUNDERSTORM", + "CLOUDY_WITH_FOG_ON_THE_OCEAN_AND_AT_THE_SEASHORE", + "CLOUDY_WITH_PERIODIC_RAIN", + "CLOUDY_WITH_PERIODIC_RAIN_ACCOMPANIED_BY_THUNDER", + "CLOUDY_WITH_PERIODIC_RAIN_AND_SNOW_RAIN_AS_MAIN_CONSTITUENT", + "CLOUDY_WITH_PERIODIC_RAIN_LATER", + "CLOUDY_WITH_PERIODIC_SNOW", + "CLOUDY_WITH_PERIODIC_SNOW_ACCOMPANIED_BY_THUNDER", + "CLOUDY_WITH_PERIODIC_SNOW_AND_RAIN_SNOW_AS_MAIN_CONSTITUENT", + "CLOUDY_WITH_PERIODIC_SNOW_LATER", + "CLOUDY_WITH_RAIN_AFTER_MIDNIGHT", + "CLOUDY_WITH_RAIN_FROM_ABOUT_NOON", + "CLOUDY_WITH_RAIN_FROM_EVENING", + "CLOUDY_WITH_RAIN_LATER", + "CLOUDY_WITH_SNOW_FROM_AROUND_NOON", + "CLOUDY_WITH_SNOW_LATER", + "FOG", + "RAINSNOW_MIX_LATER_BECOMING_CLEAR_RAIN_AS_MAIN", + "RAINSNOW_MIX_RAIN_AS_MAIN", + "RAINY_BUT_PERIODICALLY_CLEAR", + "RAIN_ACCOMPANIED_BY_LIGHTNING", + "RAIN_ACCOMPANIED_BY_WINDSTORM", + "RAIN_CLEAR_AT_NIGHT", + "RAIN_CLEAR_FROM_AROUND_EVENING", + "RAIN_CLEAR_FROM_AROUND_NOON", + "RAIN_LATER_BECOMING_CLEAR", + "RAIN_LATER_BECOMING_CLOUDY", + "RAIN_LATER_BECOMING_SNOW", + "RAIN_LATER_WITH_PERIODIC_SNOW", + "RAIN_SNOW_AT_NIGHT", + "RAIN_SNOW_IN_THE_EVENING", + "RAIN_TEMPORARILY_BECOMING_SLEET", + "RAIN_THAT_PERIODICALLY_STOPS", + "RAIN_WITH_BRIEF_SNOW", + "RAIN_WITH_PERIODIC_SNOW", + "SNOWRAIN_MIX_LATER_BECOMING_CLEAR_SNOW_AS_MAIN", + "SNOWRAIN_MIX_LATER_BECOMING_CLOUDY_SNOW_AS_MAIN", + "SNOWRAIN_MIX_SNOW_AS_MAIN", + "SNOW_ACCOMPANIED_BY_LIGHTNING", + "SNOW_BECOMING_SLEET", + "SNOW_LATER_CLEAR", + "SNOW_LATER_CLOUDY", + "SNOW_LATER_RAIN", + "SNOW_PERIODICALLY_CLEAR", + "SNOW_THAT_PERIODICALLY_STOPS", + "SNOW_TURNING_TO_RAIN_AROUND_NOON", + "SNOW_TURNING_TO_RAIN_IN_THE_EVENING", + "SNOW_TURNING_TO_RAIN_IN_THE_NIGHT", + "SNOW_WITH_BRIEF_RAIN", + "SNOW_WITH_BRIEF_SLEET", + "SNOW_WITH_PERIODIC_RAIN", + "VERY_HOT", + "SLEET", + "HEAVY_RAIN_TO_RAINSTORM" +] - changed
Output schema / $defs / WeatherCondition / properties / type / x-google-enum-descriptionsPrevious value: -[ - "The weather condition is unspecified.", - "No clouds.", - "Periodic clouds.", - "Party cloudy (some clouds).", - "Mostly cloudy (more clouds than sun).", - "Cloudy (all clouds, no sun).", - "High wind.", - "High wind with precipitation.", - "Light intermittent rain.", - "Chance of intermittent rain.", - "Intermittent rain.", - "Showers are considered to be rainfall that has a shorter duration than rain, and is characterized by suddenness in terms of start and stop times, and rapid changes in intensity.", - "Intense showers.", - "Rain (light to moderate in quantity).", - "Rain (moderate to heavy in quantity).", - "Moderate rain.", - "Light rain.", - "Heavy rain.", - "Rain periodically heavy.", - "Light snow that is falling at varying intensities for brief periods of time.", - "Chance of snow showers.", - "Snow that is falling at varying intensities for brief periods of time.", - "Snow showers.", - "Heavy snow showers.", - "Light to moderate snow.", - "Moderate to heavy snow.", - "Moderate snow.", - "Light snow.", - "Heavy snow.", - "Snow with possible thunder and lightning.", - "Snow, at times heavy.", - "Heavy snow with possible thunder and lightning.", - "Snow with intense wind.", - "Rain and snow mix.", - "Hail.", - "Hail that is falling at varying intensities for brief periods of time.", - "Thunderstorm.", - "A shower of rain accompanied by thunder and lightning.", - "Light thunderstorm rain.", - "Thunderstorms that has rain in various intensities for brief periods of time.", - "Heavy thunderstorm." -]New value: +[ + "The weather condition is unspecified.", + "No clouds.", + "Periodic clouds.", + "Party cloudy (some clouds).", + "Mostly cloudy (more clouds than sun).", + "Cloudy (all clouds, no sun).", + "High wind.", + "High wind with precipitation.", + "Light intermittent rain.", + "Chance of intermittent rain.", + "Intermittent rain.", + "Showers are considered to be rainfall that has a shorter duration than rain, and is characterized by suddenness in terms of start and stop times, and rapid changes in intensity.", + "Intense showers.", + "Rain (light to moderate in quantity).", + "Rain (moderate to heavy in quantity).", + "Moderate rain.", + "Light rain.", + "Heavy rain.", + "Rain periodically heavy.", + "Light snow that is falling at varying intensities for brief periods of time.", + "Chance of snow showers.", + "Snow that is falling at varying intensities for brief periods of time.", + "Snow showers.", + "Heavy snow showers.", + "Light to moderate snow.", + "Moderate to heavy snow.", + "Moderate snow.", + "Light snow.", + "Heavy snow.", + "Snow with possible thunder and lightning.", + "Snow, at times heavy.", + "Heavy snow with possible thunder and lightning.", + "Snow with intense wind.", + "Rain and snow mix.", + "Hail.", + "Hail that is falling at varying intensities for brief periods of time.", + "Thunderstorm.", + "A shower of rain accompanied by thunder and lightning.", + "Light thunderstorm rain.", + "Thunderstorms that has rain in various intensities for brief periods of time.", + "Heavy thunderstorm.", + "Clear after fog in the morning.", + "Clear but later turning cloudy.", + "Clear but later turning to rain and snow, with rain as the main constituent.", + "Clear but later turning to snow and rain, with snow as the main constituent.", + "Clear but thunderstorms later.", + "Clear in the morning but cloudy in the evening.", + "Clear in the morning with brief rain in the evening.", + "Clear morning with brief rain.", + "Clear with brief rain.", + "Clear with brief rain and snow, with rain as the main constituent.", + "Clear with brief rain later.", + "Clear with brief snow.", + "Clear with brief snow and rain, with snow as the main constituent.", + "Clear with brief snow later.", + "Clear with periodic clouds later.", + "Clear with periodic rain.", + "Clear with periodic rain accompanied by thunder.", + "Clear with periodic rain and snow, with rain as the main constituent.", + "Clear with periodic rain later.", + "Clear with periodic snow.", + "Clear with periodic snow and rain, with snow as the main constituent.", + "Clear with periodic snow later.", + "Clear with rain after midnight.", + "Clear with rain in the night.", + "Clear with rain later.", + "Clear with snow along the mountains.", + "Clear with snow later.", + "Clear with thunderstorms along the mountains.", + "Clear with thunderstorms in the afternoon.", + "Cloudy but clear later.", + "Cloudy but later turning to rain and snow, with rain as the main constituent.", + "Cloudy but later turning to snow and rain, with snow as the main constituent.", + "Cloudy but periodically clear later.", + "Cloudy but thunderstorms later.", + "Cloudy morning with brief rain.", + "Cloudy, periodically clear.", + "Cloudy, with snow in the evening.", + "Cloudy, with snow at night.", + "Cloudy with brief rain.", + "Cloudy with brief rain and snow, with rain as the main constituent.", + "Cloudy with brief rain later.", + "Cloudy with brief snow.", + "Cloudy with brief snow and rain, with snow as the main constituent.", + "Cloudy with brief snow later.", + "Cloudy with brief thunderstorm.", + "Cloudy with fog on the ocean and at the seashore.", + "Cloudy with periodic rain.", + "Cloudy with periodic rain accompanied by thunder.", + "Cloudy with periodic rain and snow, with rain as the main constituent.", + "Cloudy with periodic rain later.", + "Cloudy with periodic snow.", + "Cloudy with periodic snow accompanied by thunder.", + "Cloudy with periodic snow and rain, with snow as the main constituent.", + "Cloudy with periodic snow later.", + "Cloudy with rain after midnight.", + "Cloudy with rain from about noon.", + "Cloudy with rain from evening.", + "Cloudy with rain later.", + "Cloudy with snow from around noon.", + "Cloudy with snow later.", + "Fog.", + "Rain-snow mix, later becoming clear, with rain as the main constituent.", + "Rain-snow mix, with rain as the main constituent.", + "Rainy but periodically clear.", + "Rain accompanied by lightning.", + "Rain accompanied by windstorm.", + "Rain, clearing at night.", + "Rain, clearing from around evening.", + "Rain, clearing from around noon.", + "Rain, later becoming clear.", + "Rain, later becoming cloudy.", + "Rain, later becoming snow.", + "Rain, later with periodic snow.", + "Rain and snow at night.", + "Rain and snow in the evening.", + "Rain, temporarily becoming sleet.", + "Rain that periodically stops.", + "Rain with brief snow.", + "Rain with periodic snow.", + "Snow-rain mix, later becoming clear, with snow as the main constituent.", + "Snow-rain mix, later becoming cloudy, with snow as the main constituent.", + "Snow-rain mix, with snow as the main constituent.", + "Snow accompanied by lightning.", + "Snow, becoming sleet.", + "Snow, later clearing.", + "Snow, later becoming cloudy.", + "Snow, later becoming rain.", + "Snow, periodically clearing.", + "Snow that periodically stops.", + "Snow turning to rain around noon.", + "Snow turning to rain in the evening.", + "Snow turning to rain at night.", + "Snow with brief rain.", + "Snow with brief sleet.", + "Snow with periodic rain.", + "Very hot.", + "Sleet.", + "Heavy rain to rainstorm." +]
2 tool updates
- Changed
compute_routes5 fields changed- changed
Input schema / $defs / Waypoint / properties / address / descriptionPrevious value: -"Human readable address or a plus code. See https://plus.codes for details."New value: +"Human readable address or a plus code. See https://plus.codes for details. Only one of the following fields should be set: this field, latLng, placeId." - changed
Input schema / $defs / Waypoint / properties / latLng / descriptionPrevious value: -"A point specified using geographic coordinates."New value: +"A point specified using geographic coordinates. Only one of the following fields should be set: this field, placeId, address." - changed
Input schema / $defs / Waypoint / properties / placeId / descriptionPrevious value: -"The Place ID associated with the waypoint."New value: +"The Place ID associated with the waypoint. Only one of the following fields should be set: this field, latLng, address." - changed
Input schema / properties / arrivalTime / descriptionPrevious value: -"Optional. Indicates that the route should be computed based on arrival time."New value: +"Optional. Indicates that the route should be computed based on arrival time. Only one of this field or departureTime should be set." - changed
Input schema / properties / departureTime / descriptionPrevious value: -"Optional. Indicates that the route should be computed based on departure time."New value: +"Optional. Indicates that the route should be computed based on departure time. Only one of this field or arrivalTime should be set."
- Changed
lookup_weather6 fields changed- changed
Input schema / $defs / Location / properties / address / descriptionPrevious value: -"Human readable address or a plus code. See https://plus.codes for details."New value: +"Human readable address or a plus code. See https://plus.codes for details. Only one of the following fields should be set: this field, latLng, placeId." - changed
Input schema / $defs / Location / properties / latLng / descriptionPrevious value: -"A point specified using geographic coordinates."New value: +"A point specified using geographic coordinates. Only one of the following fields should be set: this field, placeId, address." - changed
Input schema / $defs / Location / properties / placeId / descriptionPrevious value: -"The Place ID associated with the location ."New value: +"The Place ID associated with the location . Only one of the following fields should be set: this field, latLng, address." - changed
Output schema / $defs / Location / properties / address / descriptionPrevious value: -"Human readable address or a plus code. See https://plus.codes for details."New value: +"Human readable address or a plus code. See https://plus.codes for details. Only one of the following fields should be set: this field, latLng, placeId." - changed
Output schema / $defs / Location / properties / latLng / descriptionPrevious value: -"A point specified using geographic coordinates."New value: +"A point specified using geographic coordinates. Only one of the following fields should be set: this field, placeId, address." - changed
Output schema / $defs / Location / properties / placeId / descriptionPrevious value: -"The Place ID associated with the location ."New value: +"The Place ID associated with the location . Only one of the following fields should be set: this field, latLng, address."
2 tool updates
- Changed
compute_routes11 fields changed- added
Input schema / properties / arrivalTimeAdded value: +{ + "description": "Optional. Indicates that the route should be computed based on arrival time.", + "format": "date-time", + "type": "string" +} - added
Input schema / properties / computeAlternativeRoutesAdded value: +{ + "description": "Optional. Whether to compute alternative routes in addition to the recommended route. Defaults to false, in which case only the recommended route is returned. When set to true, up to all available routes are returned, though alternatives may not be available for every request.", + "type": "boolean" +} - added
Input schema / properties / departureTimeAdded value: +{ + "description": "Optional. Indicates that the route should be computed based on departure time.", + "format": "date-time", + "type": "string" +} - added
Input schema / properties / includePolylineAdded value: +{ + "description": "Optional. Whether to include the encoded polyline in the response routes. Defaults to `false`. When set to `true`, `Route.encoded_polyline` is returned.", + "type": "boolean" +} - added
Input schema / properties / intermediateWaypointsAdded value: +{ + "description": "Optional. Intermediate stops between the origin and destination to pass through in order. At most 10 intermediate waypoints are supported. Intermediate waypoints are not supported when `travel_mode` is `TRANSIT`.", + "items": { + "$ref": "#/$defs/Waypoint" + }, + "type": "array" +} - added
Input schema / properties / locationBiasAdded value: +{ + "$ref": "#/$defs/LatLng", + "description": "Optional. A location to bias the search results toward, for example to disambiguate waypoint text queries." +} - added
Input schema / properties / routingPreferenceAdded value: +{ + "description": "Optional. Determines how traffic data is used to compute the route. `ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL` is not supported when `travel_mode` is `WALK` or `BICYCLE`. For `TRANSIT`, it enables realtime transit data, such as delays and cancellations.", + "enum": [ + "ROUTING_PREFERENCE_UNSPECIFIED", + "ROUTING_PREFERENCE_TRAFFIC_UNAWARE", + "ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL" + ], + "type": "string", + "x-google-enum-descriptions": [ + "No routing preference specified. Defaults to `ROUTING_PREFERENCE_TRAFFIC_UNAWARE`.", + "Computes routes without taking live traffic conditions into consideration. Suitable when traffic conditions don't matter or are not applicable. Using this value produces the lowest latency.", + "Calculates routes taking live traffic conditions into consideration, when traffic data is available. For `TRANSIT`, uses realtime transit data, such as delays and cancellations, when available. This value will trigger the Pro tier and incur higher billing cost and latency. This is only available for allowlisted customers. If not allowlisted, the request will fall back to `ROUTING_PREFERENCE_TRAFFIC_UNAWARE`." + ] +} - changed
Input schema / properties / travelMode / enumPrevious value: -[ - "ROUTE_TRAVEL_MODE_UNSPECIFIED", - "DRIVE", - "WALK" -]New value: +[ + "ROUTE_TRAVEL_MODE_UNSPECIFIED", + "DRIVE", + "WALK", + "BICYCLE", + "TRANSIT" +] - changed
Input schema / properties / travelMode / x-google-enum-descriptionsPrevious value: -[ - "No travel mode specified. Defaults to `DRIVE`.", - "Travel by passenger car.", - "Travel by walking. NOTE: `WALK` routes are in beta and might sometimes be missing clear sidewalks or pedestrian paths. You must display this warning to the user for all walking that you display in your app." -]New value: +[ + "No travel mode specified. Defaults to `DRIVE`.", + "Travel by passenger car.", + "Travel by walking. NOTE: `WALK` routes are in beta and might sometimes be missing clear sidewalks or pedestrian paths. You must display this warning to the user for all walking that you display in your app.", + "Travel by bicycle.", + "Travel by public transit." +] - added
Output schema / $defs / Route / properties / encodedPolylineAdded value: +{ + "description": "An encoded polyline of the route. See https://developers.google.com/maps/documentation/utilities/polylinealgorithm", + "type": "string" +} - added
Output schema / $defs / Route / properties / retrievalTokenAdded value: +{ + "description": "A token that can be used to retrieve this specific route in downstream tools, such as SearchAlongRoute. Valid for 10 minutes.", + "type": "string" +}
- Changed
lookup_weather24 fields changed- added
Input schema / $defs / AirQualityOptionsAdded value: +{ + "description": "Options specific to air quality requests.", + "properties": { + "includePollutantConcentration": { + "description": "Optional. If true, includes detailed pollutant concentrations and additional information (sources and effects) in the air quality response.", + "type": "boolean" + }, + "indexRegionCode": { + "description": "Optional. Two-letter ISO 3166-1 alpha-2 country/region code (e.g. \"US\", \"FR\", \"CN\") used to select the preferred local Air Quality Index (AQI) scale alongside the Universal AQI (UAQI). If not specified, defaults to the region of the requested location.", + "type": "string" + } + }, + "type": "object" +} - added
Input schema / $defs / WeatherOptionsAdded value: +{ + "description": "Options specific to weather requests.", + "properties": { + "unitsSystem": { + "description": "Optional. The units system to use for the returned weather conditions. If not provided, the returned weather conditions will be in the metric system (default = METRIC).", + "enum": [ + "UNITS_SYSTEM_UNSPECIFIED", + "IMPERIAL", + "METRIC" + ], + "type": "string", + "x-google-enum-descriptions": [ + "The units system is unspecified.", + "The imperial units system (e.g. Fahrenheit, miles, etc).", + "The metric units system (e.g. Celsius, kilometers, etc)." + ] + } + }, + "type": "object" +} - added
Input schema / properties / airQualityOptionsAdded value: +{ + "$ref": "#/$defs/AirQualityOptions", + "description": "Optional. Options specific to air quality requests. Ignored if `AIR_QUALITY` is not requested in `capabilities`." +} - added
Input schema / properties / capabilitiesAdded value: +{ + "description": "Optional. The environmental capabilities to include in the response.", + "items": { + "enum": [ + "CAPABILITY_UNSPECIFIED", + "WEATHER", + "AIR_QUALITY", + "POLLEN" + ], + "type": "string", + "x-google-enum-descriptions": [ + "Unspecified capability.", + "Weather conditions (temperature, precipitation, wind, UV, etc.).", + "Air quality information (AQI, pollutants, and health recommendations).", + "Pollen information (tree, grass, weed, and plant species allergen levels)." + ] + }, + "type": "array" +} - added
Input schema / properties / languageCodeAdded value: +{ + "description": "Optional. The BCP-47 language code for localized text in the response (e.g. \"en\", \"ja\", \"fr-CA\"). Defaults to \"en\" if not specified.", + "type": "string" +} - added
Input schema / properties / weatherOptionsAdded value: +{ + "$ref": "#/$defs/WeatherOptions", + "description": "Optional. Options specific to weather requests. `weather_options.units_system` is supported in tandem with top-level `units_system` (tag 4) to preserve backwards compatibility for existing callers; returns INVALID_ARGUMENT if both specify conflicting unit systems. Ignored if `WEATHER` is not requested in `capabilities`." +} - added
Output schema / $defs / AdditionalInfoAdded value: +{ + "description": "Sources and health effects of a pollutant.", + "properties": { + "effects": { + "description": "Potential health effects of exposure to the pollutant.", + "type": "string" + }, + "sources": { + "description": "Main emission sources of the pollutant.", + "type": "string" + } + }, + "type": "object" +} - added
Output schema / $defs / AirQualityHourlyResultAdded value: +{ + "description": "Hourly air quality information.", + "properties": { + "dateTime": { + "description": "The timestamp for this hourly air quality entry.", + "format": "date-time", + "type": "string" + }, + "healthRecommendations": { + "$ref": "#/$defs/HealthRecommendations", + "description": "Health recommendations for different population groups." + }, + "indexes": { + "description": "Air quality indexes (e.g. Universal AQI and local AQI).", + "items": { + "$ref": "#/$defs/AirQualityIndex" + }, + "type": "array" + }, + "pollutants": { + "description": "Detailed pollutant information, populated when `air_quality_options.include_pollutant_concentration` is true.", + "items": { + "$ref": "#/$defs/Pollutant" + }, + "type": "array" + } + }, + "type": "object" +} - added
Output schema / $defs / AirQualityIndexAdded value: +{ + "description": "Represents an Air Quality Index (AQI) measurement.", + "properties": { + "category": { + "description": "Textual air quality category (e.g. \"Good air quality\", \"Moderate air quality\").", + "type": "string" + }, + "displayName": { + "description": "The index's display name (e.g. \"Universal AQI\", \"US EPA AQI\").", + "type": "string" + }, + "dominantPollutant": { + "description": "The code of the dominant pollutant (e.g. \"pm25\", \"o3\").", + "type": "string" + }, + "value": { + "description": "Numeric AQI value.", + "format": "int32", + "type": "integer" + }, + "valueDisplay": { + "description": "Formatted string representation of the AQI value.", + "type": "string" + } + }, + "type": "object" +} - added
Output schema / $defs / AirQualityResultDataAdded value: +{ + "description": "Air quality payload for the requested location.", + "properties": { + "attribution": { + "$ref": "#/$defs/Attribution", + "description": "Required attribution to show with the air quality data." + }, + "hourlyResults": { + "description": "Hourly air quality data for the requested time (contains 1 entry for Current Conditions or single-hour queries, up to 24 entries for a past or future date-only query, or current + remaining hours when date is today).", + "items": { + "$ref": "#/$defs/AirQualityHourlyResult" + }, + "type": "array" + } + }, + "type": "object" +} - added
Output schema / $defs / ConcentrationAdded value: +{ + "description": "Concentration measurement of a pollutant.", + "properties": { + "unit": { + "description": "Measurement unit of the concentration.", + "enum": [ + "UNIT_UNSPECIFIED", + "PARTS_PER_BILLION", + "MICROGRAMS_PER_CUBIC_METER" + ], + "type": "string", + "x-google-enum-descriptions": [ + "Unspecified concentration unit.", + "Parts per billion (ppb).", + "Micrograms per cubic meter (µg/m³)." + ] + }, + "value": { + "description": "Numeric concentration value.", + "format": "float", + "type": "number" + } + }, + "type": "object" +} - added
Output schema / $defs / DailyPollenForecastAdded value: +{ + "description": "Pollen forecast for a single calendar day.", + "properties": { + "categories": { + "description": "Broad pollen category breakdown (Tree, Grass, Weed).", + "items": { + "$ref": "#/$defs/PollenCategoryInfo" + }, + "type": "array" + }, + "date": { + "$ref": "#/$defs/Date", + "description": "Civil calendar date of the forecast." + }, + "plantSpecies": { + "description": "Granular plant species breakdown.", + "items": { + "$ref": "#/$defs/PlantSpeciesInfo" + }, + "type": "array" + } + }, + "type": "object" +} - added
Output schema / $defs / DateAdded value: +{ + "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", + "properties": { + "day": { + "description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.", + "format": "int32", + "type": "integer" + }, + "month": { + "description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.", + "format": "int32", + "type": "integer" + }, + "year": { + "description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" +} - added
Output schema / $defs / HealthRecommendationsAdded value: +{ + "description": "Health recommendations tailored to specific population groups.", + "properties": { + "athletes": { + "description": "Guidance for athletes and active outdoor individuals.", + "type": "string" + }, + "children": { + "description": "Guidance for children.", + "type": "string" + }, + "elderly": { + "description": "Guidance for the elderly population.", + "type": "string" + }, + "generalPopulation": { + "description": "Guidance for the general population.", + "type": "string" + }, + "heartDiseasePopulation": { + "description": "Guidance for individuals with cardiovascular or heart disease.", + "type": "string" + }, + "lungDiseasePopulation": { + "description": "Guidance for individuals with lung disease or respiratory conditions.", + "type": "string" + }, + "pregnantWomen": { + "description": "Guidance for pregnant women.", + "type": "string" + } + }, + "type": "object" +} - added
Output schema / $defs / PlantSpeciesInfoAdded value: +{ + "description": "Information for a specific allergenic plant species.", + "properties": { + "code": { + "description": "Machine-readable species code (e.g. \"BIRCH\", \"JAPANESE_CEDAR\", \"RAGWEED\").", + "type": "string" + }, + "crossReactions": { + "description": "Known cross-reactive allergens (e.g. \"Alder, Hazel, Beech, and Oak pollen\").", + "type": "string" + }, + "displayName": { + "description": "Localized display name of the plant species (e.g. \"Birch\").", + "type": "string" + }, + "family": { + "description": "Botanical family name (e.g. \"Betulaceae (the Birch family)\").", + "type": "string" + }, + "inSeason": { + "description": "Whether this plant species is currently in season.", + "type": "boolean" + }, + "index": { + "$ref": "#/$defs/PollenIndex", + "description": "Universal Pollen Index (UPI) measurement for this species." + }, + "season": { + "description": "Typical blooming season description (e.g. \"Late winter, spring\").", + "type": "string" + } + }, + "type": "object" +} - added
Output schema / $defs / PollenCategoryInfoAdded value: +{ + "description": "Information for a broad pollen category (e.g. Tree, Grass, Weed).", + "properties": { + "displayName": { + "description": "Display name of the category (e.g. \"Tree\", \"Grass\", \"Weed\").", + "type": "string" + }, + "healthRecommendations": { + "description": "Actionable health advice for pollen-sensitive groups.", + "items": { + "type": "string" + }, + "type": "array" + }, + "inSeason": { + "description": "Whether this pollen category is actively blooming in the region.", + "type": "boolean" + }, + "index": { + "$ref": "#/$defs/PollenIndex", + "description": "Universal Pollen Index (UPI) measurement for this category." + } + }, + "type": "object" +} - added
Output schema / $defs / PollenIndexAdded value: +{ + "description": "Standardized Universal Pollen Index (UPI) measurement.", + "properties": { + "category": { + "description": "Localized category classification (e.g. \"None\", \"Very Low\", \"Low\", \"Moderate\", \"High\", \"Very High\").", + "type": "string" + }, + "description": { + "description": "Description of the pollen risk level.", + "type": "string" + }, + "value": { + "description": "Numeric UPI value (0 to 5 scale).", + "format": "int32", + "type": "integer" + } + }, + "type": "object" +} - added
Output schema / $defs / PollenResultDataAdded value: +{ + "description": "Pollen payload for the requested location.", + "properties": { + "attribution": { + "$ref": "#/$defs/Attribution", + "description": "Required attribution to show with the pollen data." + }, + "dailyForecast": { + "$ref": "#/$defs/DailyPollenForecast", + "description": "Daily pollen forecast for the requested date." + } + }, + "type": "object" +} - added
Output schema / $defs / PollutantAdded value: +{ + "description": "Represents a specific air pollutant and its concentration.", + "properties": { + "additionalInfo": { + "$ref": "#/$defs/AdditionalInfo", + "description": "Additional information about the pollutant's sources and health effects." + }, + "concentration": { + "$ref": "#/$defs/Concentration", + "description": "Measured concentration of the pollutant." + }, + "displayName": { + "description": "Short display name of the pollutant (e.g. \"PM2.5\", \"O3\").", + "type": "string" + }, + "fullName": { + "description": "Full chemical or common name of the pollutant (e.g. \"Fine particulate matter (<2.5µm)\", \"Ozone\").", + "type": "string" + } + }, + "type": "object" +} - added
Output schema / $defs / WeatherResultDataAdded value: +{ + "description": "Weather conditions payload for the requested location.", + "properties": { + "airPressure": { + "$ref": "#/$defs/AirPressure", + "description": "The hourly air pressure conditions." + }, + "attribution": { + "$ref": "#/$defs/Attribution", + "description": "Required attribution to show with the weather." + }, + "cloudCover": { + "description": "The percentage of the sky covered by clouds (values from 0 to 100).", + "format": "int32", + "type": "integer" + }, + "date": { + "$ref": "#/$defs/Date", + "description": "Civil calendar date of the daily weather forecast." + }, + "dateTime": { + "description": "The timestamp for this hourly or current weather entry.", + "format": "date-time", + "type": "string" + }, + "feelsLikeMaxTemperature": { + "$ref": "#/$defs/Temperature", + "description": "The maximum (high) feels-like temperature throughout the day." + }, + "feelsLikeMinTemperature": { + "$ref": "#/$defs/Temperature", + "description": "The minimum (low) feels-like temperature throughout the day." + }, + "feelsLikeTemperature": { + "$ref": "#/$defs/Temperature", + "description": "The hourly measure of how the temperature feels like." + }, + "heatIndex": { + "$ref": "#/$defs/Temperature", + "description": "The hourly heat index temperature." + }, + "maxHeatIndex": { + "$ref": "#/$defs/Temperature", + "description": "The maximum heat index temperature throughout the day." + }, + "maxTemperature": { + "$ref": "#/$defs/Temperature", + "description": "The maximum (high) temperature throughout the day." + }, + "minTemperature": { + "$ref": "#/$defs/Temperature", + "description": "The minimum (low) temperature throughout the day." + }, + "moonEvents": { + "$ref": "#/$defs/MoonEvents", + "description": "The events related to the moon (e.g. moonrise, moonset)." + }, + "precipitation": { + "$ref": "#/$defs/Precipitation", + "description": "The precipitation probability and amount of precipitation accumulated." + }, + "relativeHumidity": { + "description": "The percent of relative humidity (values from 0 to 100).", + "format": "int32", + "type": "integer" + }, + "sunEvents": { + "$ref": "#/$defs/SunEvents", + "description": "The events related to the sun (e.g. sunrise, sunset)." + }, + "temperature": { + "$ref": "#/$defs/Temperature", + "description": "The hourly temperature." + }, + "thunderstormProbability": { + "description": "The thunderstorm probability (values from 0 to 100).", + "format": "int32", + "type": "integer" + }, + "uvIndex": { + "description": "The maximum ultraviolet (UV) index.", + "format": "int32", + "type": "integer" + }, + "weatherCondition": { + "$ref": "#/$defs/WeatherCondition", + "description": "The weather condition." + }, + "wind": { + "$ref": "#/$defs/Wind", + "description": "The wind conditions." + } + }, + "type": "object" +} - added
Output schema / properties / airQualityAdded value: +{ + "$ref": "#/$defs/AirQualityResultData", + "description": "Air quality information at the requested location." +} - added
Output schema / properties / pollenAdded value: +{ + "$ref": "#/$defs/PollenResultData", + "description": "Pollen information at the requested location." +} - added
Output schema / properties / timeZoneAdded value: +{ + "description": "Resolved IANA timezone string for the location (e.g., \"America/New_York\", \"Asia/Tokyo\").", + "type": "string" +} - added
Output schema / properties / weatherAdded value: +{ + "$ref": "#/$defs/WeatherResultData", + "description": "Weather conditions at the requested location." +}
1 tool update
- Changed
search_places1 field changed- added
Output schema / properties / contentTokenAdded value: +{ + "description": "Output only. An encrypted token that encapsulates the search context and can be passed to Google Maps visual rendering services, SDKs, or the Maps Agentic UI Toolkit (A2UI) to display interactive UI components for the returned search results.", + "readOnly": true, + "type": "string" +}
2 tool updates
- Changed
resolve_maps_urls1 field changed- added
Output schema / properties / saveToMapsUrlAdded value: +{ + "description": "Output only. A link to save all successfully resolved entities in Google Maps.", + "readOnly": true, + "type": "string" +}
- Changed
resolve_names1 field changed- added
Output schema / properties / saveToMapsUrlAdded value: +{ + "description": "Output only. A link to save all successfully resolved entities in Google Maps.", + "readOnly": true, + "type": "string" +}
1 tool update
- Changed
compute_routes1 field changed- changed
Output schema / properties / routes / descriptionPrevious value: -"Contains routes between the requested origin and destination. Currently only one route is returned."New value: +"Contains routes between the requested origin and destination, ordered from most recommended to least recommended. Only one route is returned unless `ComputeRoutesRequest.compute_alternative_routes` is set to true."
1 tool update
- Changed
search_places2 fields changed- added
Input schema / properties / includeExtendedDetailsAdded value: +{ + "description": "Optional. Includes extended place details in the response. Set this field to `true` when the user request requires rich qualitative insights, real-time dynamics, or specialized entity attributes: - Qualitative reviews, customer sentiment, and feedback. - Specific offerings like menu items, dishes, food specialties, beverages, or business highlights. - Qualitative atmosphere, interior decor, aesthetic, ambience, or mood. - Real-time data and specialized facility specs, visitor policies/tips, wait times. Leave `false` (default) for standard discovery searches (e.g., cuisines, store types), location/address lookups, contact info, operating hours, and standard metadata/amenities. Enabling this field will incur higher latency.", + "type": "boolean" +} - added
Input schema / properties / pageSizeAdded value: +{ + "description": "Optional. The maximum number of places to return, up to 5. The service may return fewer than this value. The default value is 5.", + "format": "int32", + "type": "integer" +}
1 tool update
- Changed
compute_routes1 field changed- changed
Output schema / $defs / Route / descriptionPrevious value: -"Details about a route between two locations."New value: +"Details about a route between locations."
1 tool update
- Changed
lookup_weather10 fields changed- changed
Output schema / $defs / MoonEvents / properties / moonPhase / descriptionPrevious value: -"The moon phase (a.k.a. lunar phase)."New value: +"Optional. The moon phase (a.k.a. lunar phase)." - changed
Output schema / $defs / MoonEvents / properties / moonPhase / enumPrevious value: -[ - "MOON_PHASE_UNSPECIFIED", - "NEW_MOON", - "WAXING_CRESCENT", - "FIRST_QUARTER", - "WAXING_GIBBOUS", - "FULL_MOON", - "WANING_GIBBOUS", - "LAST_QUARTER", - "WANING_CRESCENT" -]New value: +[ + "PHASE_UNSPECIFIED", + "NEW_MOON", + "WAXING_CRESCENT", + "FIRST_QUARTER", + "WAXING_GIBBOUS", + "FULL_MOON", + "WANING_GIBBOUS", + "LAST_QUARTER", + "WANING_CRESCENT" +] - changed
Output schema / $defs / PrecipitationProbability / properties / type / descriptionPrevious value: -"A code that indicates the type of precipitation."New value: +"Optional. A code that indicates the type of precipitation." - changed
Output schema / $defs / PrecipitationProbability / properties / type / enumPrevious value: -[ - "PRECIPITATION_TYPE_UNSPECIFIED", - "NONE", - "SNOW", - "RAIN", - "LIGHT_RAIN", - "HEAVY_RAIN", - "RAIN_AND_SNOW", - "SLEET", - "FREEZING_RAIN", - "PRECIPITATION_TYPE_HAIL" -]New value: +[ + "TYPE_UNSPECIFIED", + "NONE", + "SNOW", + "RAIN", + "LIGHT_RAIN", + "HEAVY_RAIN", + "RAIN_AND_SNOW", + "SLEET", + "FREEZING_RAIN", + "PRECIPITATION_TYPE_HAIL" +] - changed
Output schema / $defs / Temperature / properties / unit / descriptionPrevious value: -"The code for the unit used to measure the temperature value."New value: +"Optional. The code for the unit used to measure the temperature value." - changed
Output schema / $defs / Temperature / properties / unit / enumPrevious value: -[ - "TEMPERATURE_UNIT_UNSPECIFIED", - "CELSIUS", - "FAHRENHEIT" -]New value: +[ + "UNIT_UNSPECIFIED", + "CELSIUS", + "FAHRENHEIT" +] - changed
Output schema / $defs / WindDirection / properties / cardinal / descriptionPrevious value: -"The code that represents the cardinal direction from which the wind is blowing."New value: +"Optional. The code that represents the cardinal direction from which the wind is blowing." - changed
Output schema / $defs / WindDirection / properties / cardinal / enumPrevious value: -[ - "CARDINAL_DIRECTION_UNSPECIFIED", - "NORTH", - "NORTH_NORTHEAST", - "NORTHEAST", - "EAST_NORTHEAST", - "EAST", - "EAST_SOUTHEAST", - "SOUTHEAST", - "SOUTH_SOUTHEAST", - "SOUTH", - "SOUTH_SOUTHWEST", - "SOUTHWEST", - "WEST_SOUTHWEST", - "WEST", - "WEST_NORTHWEST", - "NORTHWEST", - "NORTH_NORTHWEST" -]New value: +[ + "CARDINAL_UNSPECIFIED", + "NORTH", + "NORTH_NORTHEAST", + "NORTHEAST", + "EAST_NORTHEAST", + "EAST", + "EAST_SOUTHEAST", + "SOUTHEAST", + "SOUTH_SOUTHEAST", + "SOUTH", + "SOUTH_SOUTHWEST", + "SOUTHWEST", + "WEST_SOUTHWEST", + "WEST", + "WEST_NORTHWEST", + "NORTHWEST", + "NORTH_NORTHWEST" +] - changed
Output schema / $defs / WindSpeed / properties / unit / descriptionPrevious value: -"The code that represents the unit used to measure the wind speed."New value: +"Optional. The code that represents the unit used to measure the wind speed." - changed
Output schema / $defs / WindSpeed / properties / unit / enumPrevious value: -[ - "SPEED_UNIT_UNSPECIFIED", - "KILOMETERS_PER_HOUR", - "MILES_PER_HOUR" -]New value: +[ + "UNIT_UNSPECIFIED", + "KILOMETERS_PER_HOUR", + "MILES_PER_HOUR" +]
1 tool update
- Changed
lookup_weather2 fields changed- changed
Output schema / $defs / PrecipitationProbability / properties / type / enumPrevious value: -[ - "PRECIPITATION_TYPE_UNSPECIFIED", - "NONE", - "SNOW", - "RAIN", - "LIGHT_RAIN", - "HEAVY_RAIN", - "RAIN_AND_SNOW", - "SLEET", - "FREEZING_RAIN" -]New value: +[ + "PRECIPITATION_TYPE_UNSPECIFIED", + "NONE", + "SNOW", + "RAIN", + "LIGHT_RAIN", + "HEAVY_RAIN", + "RAIN_AND_SNOW", + "SLEET", + "FREEZING_RAIN", + "PRECIPITATION_TYPE_HAIL" +] - changed
Output schema / $defs / PrecipitationProbability / properties / type / x-google-enum-descriptionsPrevious value: -[ - "Unspecified precipitation type.", - "No precipitation.", - "Snow precipitation.", - "Rain precipitation.", - "Light rain precipitation.", - "Heavy rain precipitation.", - "Both rain and snow precipitations.", - "Sleet precipitation.", - "Freezing rain precipitation." -]New value: +[ + "Unspecified precipitation type.", + "No precipitation.", + "Snow precipitation.", + "Rain precipitation.", + "Light rain precipitation.", + "Heavy rain precipitation.", + "Both rain and snow precipitations.", + "Sleet precipitation.", + "Freezing rain precipitation.", + "Hail precipitation." +]
2 tool updates
- Added
resolve_maps_urls - Added
resolve_names
3 tool updates
- Changed
compute_routes2 fields changed- added
Output schema / $defs / AttributionAdded value: +{ + "description": "Required attribution to show with maps content.", + "properties": { + "title": { + "description": "The title to display for the attribution.", + "type": "string" + }, + "url": { + "description": "The URL to link to for the attribution.", + "type": "string" + } + }, + "type": "object" +} - added
Output schema / $defs / Route / properties / attributionAdded value: +{ + "$ref": "#/$defs/Attribution", + "description": "Required attribution to show with the route." +}
- Changed
lookup_weather4 fields changed- changed
Input schema / properties / date / descriptionPrevious value: -"Optional. The date of the required weather information. Note: This date is relative to the local timezone of the location specified in the location field. The date must be within the next 7 days."New value: +"Optional. The date of the required weather information. Note: This date is relative to the local timezone of the location specified in the location field. The date must be between 24 hours in the past and the next 10 days." - changed
Input schema / properties / hour / descriptionPrevious value: -"Optional. The hour of the requested weather information, in 24-hour format (0-23). This value is relative to the local timezone of the location specified in the location field. Hourly forecast is only supported for the next 48 hours from the current time."New value: +"Optional. The hour of the requested weather information, in 24-hour format (0-23). This value is relative to the local timezone of the location specified in the location field. Hourly forecast beyond 120 hours from now is not supported. Historical hourly weather is supported up to 24 hours in the past." - added
Output schema / $defs / AttributionAdded value: +{ + "description": "Required attribution to show with maps content.", + "properties": { + "title": { + "description": "The title to display for the attribution.", + "type": "string" + }, + "url": { + "description": "The URL to link to for the attribution.", + "type": "string" + } + }, + "type": "object" +} - added
Output schema / properties / attributionAdded value: +{ + "$ref": "#/$defs/Attribution", + "description": "Required attribution to show with the weather." +}
- Changed
search_places2 fields changed- added
Output schema / $defs / AttributionAdded value: +{ + "description": "Required attribution to show with maps content.", + "properties": { + "title": { + "description": "The title to display for the attribution.", + "type": "string" + }, + "url": { + "description": "The URL to link to for the attribution.", + "type": "string" + } + }, + "type": "object" +} - added
Output schema / $defs / PlaceView / properties / attributionAdded value: +{ + "$ref": "#/$defs/Attribution", + "description": "Required attribution to show with the place." +}
3 tool updates
- First observed
compute_routes - First observed
lookup_weather - First observed
search_places
Related MCP Connectors
The BigQuery remote MCP server is a fully managed service that uses the Model Context Protocol to connect AI applications and LLMs to BigQuery data sources. It provides secure, standardized tools for AI agents to list datasets and tables, retrieve schemas, generate and execute SQL queries through natural language, and analyze data—enabling direct access to enterprise analytics data without requiring manual SQL coding.
The Remote MCP server acts as a standardized bridge between LLM applications (like Claude, ChatGPT, and Cursor) and external services, enabling AI agents to access external tools and resources. Its primary capability is providing a centralized search tool to discover other MCP servers and their respective tools. Unlike local implementations, it runs remotely with OAuth authentication and permission controls for security.
The Google GKE MCP server is a managed Model Context Protocol server that provides AI applications with tools to manage Google Kubernetes Engine (GKE) clusters and Kubernetes resources. It exposes a structured, discoverable interface that allows AI agents to interact with GKE and Kubernetes APIs, enabling them to inspect cluster configurations, retrieve Kubernetes resource YAMLs, monitor operations like cluster upgrades, diagnose issues, and optimize costs—all without needing to parse text output or use complex kubectl commands.
The Google Compute Engine MCP server is a fully-managed Model Context Protocol server that provides tools to manage Google Compute Engine resources through AI agents. It enables capabilities including instance management (creating, starting, stopping, resetting, listing), disk management, handling instance templates and group managers, viewing machine and accelerator types, managing images, and accessing reservation and commitment information. The server operates as a zero-deployment, enterprise-grade endpoint at https://compute.googleapis.com/mcp with built-in IAM-based security.
Related MCP Servers
- AlicenseAqualityCmaintenanceProduction-ready MCP server for Google Maps Platform APIs, providing 11 tools for directions, places, geocoding, traffic, and road data to empower AI agents with location intelligence.1129 PyPI4Apache 2.0
- AlicenseNot gradedqualityDmaintenanceMCP server that provides standardized access to Google Maps, Flights, Hotels, and other search services, enabling AI assistants to perform various searches.MIT
- AlicenseNot gradedqualityFmaintenanceA Model Context Protocol (MCP) based search API server that provides standardized access to Google Maps, Google Flights, Google Hotels and other services. This server enables AI assistants to access various search services through a unified interface.74MIT
- AlicenseNot gradedqualityDmaintenanceA TypeScript MCP server that exposes Google Maps Platform APIs as tools for LLMs, providing real map data like directions, transit routes, place search, address validation, photos, and elevation.11 npm9GPL 3.0
Glama MCP Gateway
Add one secure layer between your agents and this server.