Google Maps
Four tools over Google’s place data, live via SerpAPI. Local search returns the local-pack listings Google shows for a query; Maps search returns a list of places or — with type=place — the full details of one; reviews pages through a place’s review stream with topic filters; directions returns routes with distance, duration and step-by-step legs across seven travel modes. Place identifiers (place_id / data_id / data_cid) flow from the search tools into reviews and directions.
Thirty seconds, any client.
claude mcp add --transport http google-maps https://mcp.wondel.ai/google-maps/mcp One command in your terminal — the server is available in every Claude Code session.
https://mcp.wondel.ai/google-maps/mcp Works on every Claude plan that supports custom connectors.
{
"mcpServers": {
"google-maps": {
"url": "https://mcp.wondel.ai/google-maps/mcp"
}
}
} Add to .cursor/mcp.json, VS Code's mcp.json, or any client that takes an mcpServers map.
npx mcp-remote https://mcp.wondel.ai/google-maps/mcp For stdio-only clients: mcp-remote bridges the remote endpoint to a local process. Streamable HTTP-capable clients can hit the URL directly — a legacy /sse endpoint exists too.
This server works with Claude, Claude Code, Claude Desktop, Claude Cowork, Cursor, VS Code, Windsurf — and any other MCP client. Stdio-only clients connect through npx mcp-remote.
4 tools, fully typed.
Parameters below are transcribed from the server’s own zod schemas — what you see is what the tool validates.
google_local_search Google Local pack listings: businesses with title, rating, reviews, type, address, phone and the place ids that feed the reviews tool. Paginate with start (+20 per page).
| Param | Type | Description |
|---|---|---|
| q * | string | Search query, e.g. "Coffee" or "Pizza near Central Park". |
| location | string | Geographic origin of the search, e.g. "Austin, Texas, United States". Mutually exclusive with uule. |
| uule | string | Google-encoded location string; alternative to location. |
| ludocid | string | Google CID of a business listing, to scope results to that place. |
| tbs | string | Raw tbs string for advanced parameters not otherwise supported. |
| start | integer = 0 | Result offset for pagination; ~20 per page (20, 40, …). |
| device | enum = desktop | Device to emulate. desktoptabletmobile |
| google_domain | string | Google domain, e.g. "google.com", "google.co.uk". |
| gl | string | Country code, e.g. "us", "de". |
| hl | string | Language code, e.g. "en", "pt-br". |
| no_cache | boolean = false | Force a fresh SerpAPI fetch, bypassing this server’s result cache. |
| zero_trace | boolean = false | Enterprise-only ZeroTrace mode — SerpAPI stores no search params or metadata. |
google_maps_search Search Google Maps for a list of places, or fetch one place’s full details with type=place. Center the map with ll or lat/lon/zoom; filter by rating, price and opening hours.
| Param | Type | Description |
|---|---|---|
| q | string | Search query. Required for type=search unless place_id/data_cid is given. |
| type | enum = search | "search" lists places; "place" returns one place’s details (needs place_id or data_cid). searchplace |
| place_id | string | Place id from a prior result. Use with type=place; also feeds google_maps_reviews. |
| data_cid | string | Place CID from a prior result; alternative to place_id. |
| ll | string | Map center as "@lat,lon,zoomz", e.g. "@40.7455,-74.0083,14z". |
| lat | number | Latitude of the map center (with lon; alternative to ll). |
| lon | number | Longitude of the map center (with lat). |
| z | integer | Zoom level 3–30 (with lat/lon). |
| m | integer | Alternative map-scale parameter (1–15028132). |
| nearby | boolean = false | Search nearby the given coordinates. |
| location | string | Geographic origin, e.g. "New York, United States". |
| min_rating | enum | Minimum star rating — pass as a string like "4.0". 2.02.53.03.54.04.5 |
| min_price | integer | Minimum price level. |
| max_price | integer | Maximum price level. |
| open_state | enum | Open now / open 24 h. Mutually exclusive with open_on_day / open_at_hour. now24h |
| open_on_day | enum | Open on a given day; combine with open_at_hour. montuewedthufrisatsun |
| open_at_hour | integer | Open at a given hour, 0–23 (with open_on_day). |
| start | integer = 0 | Result offset; 20 per page (20, 40, …). |
| google_domain | string | Google domain, e.g. "google.com". |
| gl | string | Country code, e.g. "us". |
| hl | string | Language code, e.g. "en". |
| no_cache | boolean = false | Force a fresh SerpAPI fetch, bypassing this server’s result cache. |
| zero_trace | boolean = false | Enterprise-only ZeroTrace mode — SerpAPI stores no search params or metadata. |
google_maps_reviews A place’s reviews — author, rating, text, date — plus filterable topics. Provide exactly one of place_id or data_id; paginate with next_page_token.
| Param | Type | Description |
|---|---|---|
| place_id | string | Place id from a search result. Provide exactly one of place_id / data_id. |
| data_id | string | Data id from a search result; alternative to place_id. |
| sort_by | enum = qualityScore | Review sort order. qualityScorenewestFirstratingHighratingLow |
| topic_id | string | Filter by a topic id from a prior response. Mutually exclusive with query. |
| query | string | Filter reviews by free text. Mutually exclusive with topic_id. |
| num | integer | Reviews per page, 1–20. |
| next_page_token | string | Pagination token from the previous response. |
| hl | string | Language code, e.g. "en". |
| no_cache | boolean = false | Force a fresh SerpAPI fetch, bypassing this server’s result cache. |
| zero_trace | boolean = false | Enterprise-only ZeroTrace mode — SerpAPI stores no search params or metadata. |
google_maps_directions Routes between two points with distance, duration and step-by-step legs. Seven travel modes, avoidances, transit preferences and departure/arrival times.
| Param | Type | Description |
|---|---|---|
| start_addr | string | Starting address. Provide one of start_addr / start_coords / start_data_id. |
| start_coords | string | Starting GPS coordinates as "lat,lon". |
| start_data_id | string | Place data id of the start (from google_maps_search). |
| end_addr | string | Ending address. Provide one of end_addr / end_coords / end_data_id. |
| end_coords | string | Ending GPS coordinates as "lat,lon". |
| end_data_id | string | Place data id of the destination. |
| travel_mode | integer = 6 | 6 = Best, 0 = Driving, 1 = Cycling, 2 = Walking, 3 = Transit, 4 = Flight, 9 = Two-wheeler. |
| distance_unit | integer | 0 = km, 1 = miles. |
| avoid | string | Comma-separated: "highways", "tolls", "ferries". |
| prefer | string | Transit only — comma-separated: "bus", "subway", "train", "tram_light_rail". |
| route | integer | Transit only: 2 = fewer transfers, 3 = less walking, 4 = wheelchair accessible. |
| time | string | "depart_at:<unix>", "arrive_by:<unix>", or "last_available" (transit only). |
| gl | string | Country code, e.g. "us". |
| hl | string | Language code, e.g. "en". |
| no_cache | boolean = false | Force a fresh SerpAPI fetch, bypassing this server’s result cache. |
| zero_trace | boolean = false | Enterprise-only ZeroTrace mode — SerpAPI stores no search params or metadata. |
Prompts that just work.
Best specialty coffee open right now near Plac Zbawiciela in Warsaw, with ratings.
google_local_searchWhat do reviewers complain about most at this restaurant?
google_maps_search + google_maps_reviewsDirections from Kraków Old Town to the Auschwitz Memorial by public transit, arriving before 10:00.
google_maps_directionsWhat comes back
{
"source": "serpapi/google_maps_reviews",
"fetchedAt": "2026-07-02T14:02:11.312Z",
"query": { "place_id": "ChIJN1t_tDeuEmsRUsoyG83frY4", "sort_by": "newestFirst" },
"reviews": [
{
"user": { "name": "…" },
"rating": 5,
"date": "a week ago",
"snippet": "Best flat white in the neighbourhood…"
}
],
"topics": [{ "keyword": "espresso", "mentions": 41 }]
}
Abridged real response. Every payload carries the same envelope — source says
where the data came from, fetchedAt says when, query echoes what you asked.
Compact JSON in one text block, exactly how agents like it.
Add Google Maps
to your agent.
mcp.wondel.ai/google-maps/mcp Authless · Read-only public data · Streamable HTTP at /mcp, legacy SSE at /google-maps/sse