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 — the digit-only ids Local search returns are resolved for you.
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.
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 — a SerpAPI canonical city-level name, e.g. "Warsaw,Masovian Voivodeship,Poland". For a small town or a district, put the place in q instead. 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 ("ChIJ…") from a prior result; a digit-only id is treated as a Google CID. 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, used with lat/lon or location; defaults to 14 when either is given without z or m. |
| m | integer | Alternative map-scale parameter (1–15028132). |
| nearby | boolean = false | Search nearby the given coordinates. |
| location | string | Geographic origin — a SerpAPI canonical city-level name, e.g. "Warsaw,Masovian Voivodeship,Poland". For a small town or a district, put the place in q instead. |
| 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, data_id or data_cid; paginate with next_page_token.
| Param | Type | Description |
|---|---|---|
| place_id | string | Place id ("ChIJ…") from google_maps_search; a digit-only value is resolved as a Google CID. Provide exactly one of place_id / data_id / data_cid. |
| data_id | string | Data id ("0x…:0x…") from google_maps_search; alternative to place_id. |
| data_cid | string | Google CID — the digit-only place_id google_local_search returns. Resolved to a data id with one place lookup. |
| 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 — honored only with next_page_token, topic_id or query; the first page always returns 8. |
| 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
google_maps_reviews · illustrative — the shape is the tool’s, the values are examples
{
"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 }]
}
Fetching tools share one 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