com.googleapis.mapstools/mcp
REMOTE · MAPSTOOLS.GOOGLEAPIS.COM · SCANNED AUG 3
Ground your AI applications with trusted geospatial data from Google Maps.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →
Endpoint Security63
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one. See how to fix → View diagnostics → Partial
- HTTPS not yet verified: we couldn't determine whether a plaintext access path exists. View diagnostics → Unverified
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability54
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 3276 tokens (~655/item across 5 items; 5 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · mapstools.googleapis.com
claude mcp add --transport http com-googleapis-mapstools-mcp https://mapstools.googleapis.com/mcp
[mcp_servers.com-googleapis-mapstools-mcp] url = "https://mapstools.googleapis.com/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"com-googleapis-mapstools-mcp": {
"type": "remote",
"url": "https://mapstools.googleapis.com/mcp",
"enabled": true
}
}
} openclaw mcp add com-googleapis-mapstools-mcp --url https://mapstools.googleapis.com/mcp --transport streamable-http
mcp_servers:
com-googleapis-mapstools-mcp:
url: "https://mapstools.googleapis.com/mcp" {
"mcpServers": {
"com-googleapis-mapstools-mcp": {
"type": "http",
"url": "https://mapstools.googleapis.com/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.
- 31 Jul 26 +2
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 28 Jul 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.
- 27 Jul 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 26 Jul 26 59
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Probed https://mapstools.googleapis.com/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_256_GCM_SHA384 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=upload.video.google.com | CN=WR2,O=Google Trust Services,C=US | 29 Jun 2026 | 21 Sept 2026 | ECDSA 256 | SHA256-RSA | 4ebe71b8b548f0e910486393b0d74ba7 |
| SANs: upload.video.google.com, *.clients.google.com, *.docs.google.com, *.drive.google.com, *.gdata.youtube.com, *.googleapis.com, *.photos.google.com, *.youtube-3rd-party.com, upload.google.com, *.upload.google.com, upload.youtube.com, *.upload.youtube.com and 5 more | ||||||
| CN=WR2,O=Google Trust Services,C=US (CA) | CN=GTS Root R1,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | RSA 2048 | SHA256-RSA | 7ff005a07c4cded100ad9d66a5107b98 |
| CN=GTS Root R1,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 19 Jun 2020 | 28 Jan 2028 | RSA 4096 | SHA256-RSA | 77bd0d6cdb36f91aea210fc4f058d30d |
DNSSEC insecure
Validation of mapstools.googleapis.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| googleapis.com. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| x-content-type-options | nosniff |
| x-frame-options | SAMEORIGIN |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mapstools.googleapis.com/mcp | Verified | 200 | |
| http (plaintext) | http://mapstools.googleapis.com/mcp | Inconclusive | 405 |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
compute_routes ~320
Computes a travel route between a specified origin and destination. **Supported Travel Modes:** DRIVE (default), WALK. **Input Requirements (CRITICAL):** Requires both **origin** and **destination**. Each must be provided using one of the following methods, nested within its respective field: * **address:** (string, e.g., 'Eiffel Tower, Paris'). Note: The more granular or specific the input address is, the better the results will be. * **lat_lng:** (object, {"latitude": number, "longitude": number}) * **place_id:** (string, e.g., 'ChIJOwE_Id1w5EAR4Q27FkL6T_0') Note: This id can be obtained from the search_places tool. Any combination of input types is allowed (e.g., origin by address, destination by lat_lng). If either the origin or destination is missing, **you MUST ask the user for clarification** before attempting to call the tool. **Example Tool Call:** {"origin":{"address":"Eiffel Tower"},"destination":{"place_id":"ChIJt_5xIthw5EARoJ71mGq7t74"},"travel_mode":"DRIVE"} * The grounded output must be attributed to the source using the information from the `attribution` field when available.
| Name | Type | Req | Description |
|---|---|---|---|
| destination | — | yes | Required. Destination waypoint. |
| origin | — | yes | Required. Origin waypoint. |
| travelMode | string | — | Optional. Specifies the mode of transportation. |
| Name | Type | Req | Description |
|---|---|---|---|
| routes | array | — | Contains routes between the requested origin and destination. Currently only one route is returned. |
No examples provided.
lookup_weather ~921
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. 1. 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 2. 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 3. 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 `location` only. Do not specify `date` and `hour`. * **Hourly Forecast:** Provide `location`, `date`, and `hour` (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…
| Name | Type | Req | Description |
|---|---|---|---|
| date | — | — | 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 pas… |
| hour | integer | — | 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… |
| location | — | yes | Required. The location to get the weather conditions for. |
| unitsSystem | string | — | 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). |
| Name | Type | Req | Description |
|---|---|---|---|
| airPressure | — | — | The hourly air pressure conditions. |
| attribution | — | — | Required attribution to show with the weather. |
| cloudCover | integer | — | The percentage of the sky covered by clouds (values from 0 to 100). define optional because it is not always available |
| feelsLikeMaxTemperature | — | — | The maximum (high) feels-like temperature throughout the day. |
| feelsLikeMinTemperature | — | — | The minimum (low) feels-like temperature throughout the day. |
| feelsLikeTemperature | — | — | The hourly measure of how the temperature feels like. |
| heatIndex | — | — | The hourly heat index temperature. |
| maxHeatIndex | — | — | The maximum heat index temperature throughout the day. |
| maxTemperature | — | — | The maximum (high) temperature throughout the day. |
| minTemperature | — | — | The minimum (low) temperature throughout the day. |
| moonEvents | — | — | The events related to the moon (e.g. moonrise, moonset). |
| precipitation | — | — | The precipitation probability and amount of precipitation accumulated |
| relativeHumidity | integer | — | The percent of relative humidity (values from 0 to 100). define optional because it is not always available |
| returnedLocation | — | — | 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 addr… |
| sunEvents | — | — | The events related to the sun (e.g. sunrise, sunset). |
| temperature | — | — | The hourly temperature |
| thunderstormProbability | integer | — | The thunderstorm probability (values from 0 to 100). define optional because it is not always available |
| uvIndex | integer | — | The maximum ultraviolet (UV) index. define optional because it is not always available |
| weatherCondition | — | — | The weather condition |
| wind | — | — | The wind conditions |
No examples provided.
resolve_maps_urls ~390
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. **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 `entities` is guaranteed to map 1:1 with the input `urls` indices. A failed URL resolution will result in an empty `Entity` message (no fields are set) at its corresponding index in the `entities` list. * You **MUST** check the `failed_requests` map field in the response to identify which specific URL index failed. The key of `failed_requests` represents 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 | Type | Req | Description |
|---|---|---|---|
| urls | array | 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/… |
| Name | Type | Req | Description |
|---|---|---|---|
| entities | array | — | 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 res… |
| failedRequests | object | — | 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… |
No examples provided.
resolve_names ~697
Resolves a batch list of specific location queries (landmark names or exact addresses) into canonical Google Maps Place IDs. **Input Requirements (CRITICAL):** 1. **`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'`. 2. **`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]}}}` 3. **`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. **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 `results` is guaranteed to map 1:1 with the input `queries` indices. A failed query will result in an empty `Result` message (no `entity` is set) at its corresponding index in the `results` list. * You **MUST** check the `failed_requests` map field in the response to identify which specific query index failed. The key of `failed_requests` represents 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 | Type | Req | Description |
|---|---|---|---|
| locationBias | — | — | 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 `reg… |
| queries | array | yes | Required. A list of location queries to be resolved. You may specify up to 20 queries. |
| regionCode | string | — | 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 C… |
| Name | Type | Req | Description |
|---|---|---|---|
| failedRequests | object | — | 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. |
| results | array | — | 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 q… |
No examples provided.
search_places ~948
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):** 1. **`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'`). 2. **`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}}}}` (omitting `radius_meters`). 3. **`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. 4. **`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…
| Name | Type | Req | Description |
|---|---|---|---|
| languageCode | string | — | 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" f… |
| locationBias | — | — | 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. |
| regionCode | string | — | 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.… |
| textQuery | string | yes | Required. The text query. |
| Name | Type | Req | Description |
|---|---|---|---|
| places | array | — | Output only. The list of places that are mentioned in the summary. |
| summary | string | — | 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 `place… |
No examples provided.