MCP Tools Reference:
This document describes the external-facing REST API endpoints used to invoke Google remote Model Context Protocol (MCP) Tools. This API acts as a secure proxy between an external HTTP client (like curl or a web service) and the internal MCP Server.
Get MCP tool specifications
To get the MCP tool specifications for all tools in an MCP server, use the `tools/list` method. The following example demonstrates how to use curl to list all tools and their specifications currently available within the MCP server.
| Curl Request |
|---|
curl --location 'https://mapstools.googleapis.com/mcp' --header 'content-type: application/json' --header 'accept: application/json, text/event-stream' --data '{ "method": "tools/list", "jsonrpc": "2.0", "id": 1 }' |
Tool: search_places
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').
- Examples:
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).
- To bias to a 5km radius:
- Format:
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.
- 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.,
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.
- Format: A two-letter country code (ISO 3166-1 alpha-2), e.g.,
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 following samples demonstrate how to use curl to invoke the search_places MCP tool.
| Curl Request |
|---|
curl --location 'https://mapstools.googleapis.com/mcp' --header 'content-type: application/json' --header 'accept: application/json, text/event-stream' --data '{ "method": "tools/call", "params": { "name": search_places, arguments: { // please fill these details according to tools MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
Tool: lookup_weather
Provides current conditions, hourly, and daily forecasts for any location. Use this tool for all weather-related inquiries.
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.
Input Requirements (CRITICAL):
Current Conditions: Requires only a location (e.g., city or address). Do not specify a date or hour.
Hourly Forecasts: Requires a location and an hour (0-23). Use if the user asks for weather at a specific time or using terms like 'next few hours' or 'later today.'
Daily Forecasts: Requires a location and a full date.
Date Handling (CRITICAL): User-provided dates and hours MUST be provided in the local timezone of the requested location. Dates MUST be broken down into separate integer parameters: year, month, and day. The required format for these parameters is: {"year":
The following samples demonstrate how to use curl to invoke the lookup_weather MCP tool.
| Curl Request |
|---|
curl --location 'https://mapstools.googleapis.com/mcp' --header 'content-type: application/json' --header 'accept: application/json, text/event-stream' --data '{ "method": "tools/call", "params": { "name": lookup_weather, arguments: { // please fill these details according to tools MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
Tool: compute_routes
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 following samples demonstrate how to use curl to invoke the compute_routes MCP tool.
| Curl Request |
|---|
curl --location 'https://mapstools.googleapis.com/mcp' --header 'content-type: application/json' --header 'accept: application/json, text/event-stream' --data '{ "method": "tools/call", "params": { "name": compute_routes, arguments: { // please fill these details according to tools MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |