Google Maps
Available Tools
- search_places(query, location?, radius?, type?, open_now?, language?): Search for places using text query.
- query (string, required): Search text (e.g., "restaurants in Seoul") - location (string, optional): Center location as "lat,lng" (e.g., "37.5665,126.9780") - radius (integer, optional): Search radius in meters (max 50,000) - type (string, optional): Place type filter (e.g., "restaurant", "tourist_attraction", "hotel") - open_now (boolean, optional, default: false): Only return currently open places - language (string, optional, default: "en"): Language code
- search_nearby_places(location, radius, keyword?, type?, rank_by?, open_now?, language?): Search near specific coordinates.
- location (string, required): Center as "lat,lng" (e.g., "37.5665,126.9780") - radius (integer, required): Search radius in meters (max 50,000) - keyword (string, optional): Search keyword - type (string, optional): Place type filter - rank_by (string, optional, default: "prominence"): "prominence" or "distance" - open_now (boolean, optional, default: false): Only open places - language (string, optional, default: "en"): Language code
- get_place_details(place_id, language?, reviews_sort?): Get detailed place info including reviews and hours.
- place_id (string, required): Place ID from search results - language (string, optional, default: "en"): Language code - reviews_sort (string, optional, default: "most_relevant"): "most_relevant" or "newest"
- get_directions(origin, destination, mode?, alternatives?, avoid?, language?): Get directions between two locations.
- origin (string, required): Starting point (address or "lat,lng") - destination (string, required): Destination (address or "lat,lng") - mode (string, optional, default: "driving"): "driving", "walking", "bicycling", "transit" - alternatives (boolean, optional, default: false): Return alternative routes - avoid (string, optional): "tolls", "highways", or "ferries" - language (string, optional, default: "en"): Language code
- geocode_address(address, language?, region?): Convert a text address to geographic coordinates.
- address (string, required): Address to geocode - language (string, optional, default: "en"): Language code - region (string, optional): Country code for regional bias
- reverse_geocode(latlng, language?): Convert coordinates to a human-readable address.
- latlng (string, required): Coordinates as "lat,lng" (e.g., "37.5665,126.9780") - language (string, optional, default: "en"): Language code
- show_on_map(map_type, markers?, directions?, center?, zoom?): Display locations or routes on an interactive map.
- map_type (string, required): "markers" (location pins), "directions" (route), or "area" - markers (array, required for "markers"): List of marker objects with lat, lng - directions (object, required for "directions"): Route data with origin and destination - center (object, optional): Map center {lat, lng} - zoom (integer, optional): Zoom level 1-20
Usage Guidelines
- ALWAYS call show_on_map after collecting location data — visual maps are the primary value.
- Preserve
place_idfrom search results for use withget_place_details. - Infer transportation mode from context (driving for long distances, walking for short ones).
- Show 1-5 most relevant places per map.
Response Pattern
Follow the Text -> Map -> Text sequence. Do NOT call show_on_map in parallel with other tool calls.
- Text: Introduce what you'll show
- Map: Call
show_on_mapto display results - Text: Explain the results
Multiple categories: Use separate maps in sequence — never parallel.
Output Rules
The map renders visually from the tool result — never echo or paraphrase the raw map_data JSON (type, center, zoom, markers, lat/lng) in your text response. Describe places in natural language only (names, ratings, brief notes). The user already sees the map; do not repeat its contents.
UI Guidance (from tools-config)
When to Use:
- ALWAYS call show_on_map after collecting location data - visual maps are the primary value
- Use for: search results, directions, comparisons, or any location-based query
Response Pattern (DO NOT call show_on_map in parallel):
- Text: Introduce what you'll show ("Here are the top restaurants:")
- show_on_map: Display the map
- Text: Explain the results ("These restaurants are rated 4.5+ stars")
Example:
- "Let me show you restaurants in Gangnam:" → show_on_map(restaurants) → "All 5 restaurants above have excellent reviews."
- For multiple categories: Text → Map 1 → Text → Map 2 (sequential, not parallel)
Map Organization:
- Separate maps for different categories (restaurants vs hotels)
- Show 1-5 most relevant places per map
Tool Selection:
- search_places: text queries | search_nearby_places: coordinates
- Preserve place_id for details | Infer direction mode from context
Output Rules:
- The map is rendered visually by the UI from the tool result. NEVER echo, paraphrase, or include the raw map_data JSON (coordinates, markers, zoom, type) in your text response.
- Describe locations in natural language only (names, ratings, brief notes). The user already sees the map — do not repeat its contents.