Google Maps MCP server: the official option and 17 Apify Actors
Google Maps has an official MCP option, Google Maps Experience agent tools (formerly Grounding Lite). Access: Google Cloud API key in the X-Goog-Api-Key header. To give Claude, Cursor, ChatGPT or another MCP client Google Maps data, add Apify's hosted MCP server with the Actors ticked below as tools (6 by default); the URL is in every config. Sign in with your Apify account or pass an API token; each call runs the Actor and returns Google Maps records to the agent.
One click, signs in with Apify on first use:
Any other client, one command (writes the config for 25+ agents, including Windsurf, Zed, Cline and Goose):
npx add-mcp "https://mcp.apify.com/?tools=fetch-actor-details,vexaloom-labs/google-maps-business-lead-finder-with-email,nimbryxo-studio/google-maps-review-and-contributor-activity,vexaloom-labs/google-maps-business-finder-with-hours-ratings,dataspryva/google-maps-business-lead-and-email-finder,dataspryva/google-maps-related-place-and-competitor-finder,nimbryxo-studio/google-maps-popular-times-and-live-busyness" --name apify-google - Catalogue Actors
- 17
- In this bundle
- 6
- Official API
- Public
- Data checked
- 2026-11-12
Config for your client
Claude Code configterminal or .mcp.json
claude mcp add --transport http apify-google "https://mcp.apify.com/?tools=fetch-actor-details,vexaloom-labs/google-maps-business-lead-finder-with-email,nimbryxo-studio/google-maps-review-and-contributor-activity,vexaloom-labs/google-maps-business-finder-with-hours-ratings,dataspryva/google-maps-business-lead-and-email-finder,dataspryva/google-maps-related-place-and-competitor-finder,nimbryxo-studio/google-maps-popular-times-and-live-busyness" - Run the command in your project folder. Add --scope user to make it available in every project.
- Start Claude Code, type /mcp, pick the server and sign in to Apify in the browser window.
- No browser sign-in? Add --header "Authorization: Bearer YOUR_APIFY_TOKEN" to the command instead.
Sign-in: OAuth sign-in on first use, or a token header.
Claude Desktop configclaude_desktop_config.json
{
"mcpServers": {
"apify-google": {
"command": "npx",
"args": [
"-y",
"@apify/actors-mcp-server",
"--tools",
"fetch-actor-details,vexaloom-labs/google-maps-business-lead-finder-with-email,nimbryxo-studio/google-maps-review-and-contributor-activity,vexaloom-labs/google-maps-business-finder-with-hours-ratings,dataspryva/google-maps-business-lead-and-email-finder,dataspryva/google-maps-related-place-and-competitor-finder,nimbryxo-studio/google-maps-popular-times-and-live-busyness"
],
"env": {
"APIFY_TOKEN": "YOUR_APIFY_TOKEN"
}
}
}
} - Easiest: open Customize, then Connectors, choose Add custom connector, paste the server URL (the ChatGPT tab shows it on its own) and sign in to Apify.
- Local alternative (needs Node.js): merge this into claude_desktop_config.json (Settings, Developer, Edit config) and replace YOUR_APIFY_TOKEN.
- Restart Claude Desktop and enable the server from the tools menu in a chat.
Sign-in: Connector with OAuth, or a token in the local config.
Cursor config~/.cursor/mcp.json
{
"mcpServers": {
"apify-google": {
"url": "https://mcp.apify.com/?tools=fetch-actor-details,vexaloom-labs/google-maps-business-lead-finder-with-email,nimbryxo-studio/google-maps-review-and-contributor-activity,vexaloom-labs/google-maps-business-finder-with-hours-ratings,dataspryva/google-maps-business-lead-and-email-finder,dataspryva/google-maps-related-place-and-competitor-finder,nimbryxo-studio/google-maps-popular-times-and-live-busyness",
"headers": {
"Authorization": "Bearer ${env:APIFY_TOKEN}"
}
}
}
} - Save as ~/.cursor/mcp.json for every project, or .cursor/mcp.json for one project. Merge with servers you already have.
- Set APIFY_TOKEN in the environment Cursor starts from, or replace ${env:APIFY_TOKEN} with your token.
- Open Cursor Settings, then MCP, and check that the server lists its tools.
Sign-in: Token read from the APIFY_TOKEN environment variable.
VS Code config.vscode/mcp.json
{
"inputs": [
{
"type": "promptString",
"id": "apify-token",
"description": "Apify API token",
"password": true
}
],
"servers": {
"apify-google": {
"type": "http",
"url": "https://mcp.apify.com/?tools=fetch-actor-details,vexaloom-labs/google-maps-business-lead-finder-with-email,nimbryxo-studio/google-maps-review-and-contributor-activity,vexaloom-labs/google-maps-business-finder-with-hours-ratings,dataspryva/google-maps-business-lead-and-email-finder,dataspryva/google-maps-related-place-and-competitor-finder,nimbryxo-studio/google-maps-popular-times-and-live-busyness",
"headers": {
"Authorization": "Bearer ${input:apify-token}"
}
}
}
} - Save as .vscode/mcp.json in your workspace.
- Start the server from the file or the MCP servers view. VS Code asks for the token once and stores it securely.
- Use the tools from Copilot Chat in agent mode.
Sign-in: Token prompted once and stored by VS Code.
ChatGPT configPlugins > Add custom MCP server
https://mcp.apify.com/?tools=fetch-actor-details,vexaloom-labs/google-maps-business-lead-finder-with-email,nimbryxo-studio/google-maps-review-and-contributor-activity,vexaloom-labs/google-maps-business-finder-with-hours-ratings,dataspryva/google-maps-business-lead-and-email-finder,dataspryva/google-maps-related-place-and-competitor-finder,nimbryxo-studio/google-maps-popular-times-and-live-busyness - In ChatGPT on the web, open Plugins, select + and choose Add custom MCP server.
- Name it, paste the URL under Connection as the Server URL and choose OAuth for authentication.
- Accept the risk warning (I understand and want to continue), select Create as a plugin, then install the plugin from your plugins, sign in to Apify and use it in a new chat.
Sign-in: OAuth sign-in with your Apify account.
Codex CLI config~/.codex/config.toml
[mcp_servers.apify-google]
url = "https://mcp.apify.com/?tools=fetch-actor-details,vexaloom-labs/google-maps-business-lead-finder-with-email,nimbryxo-studio/google-maps-review-and-contributor-activity,vexaloom-labs/google-maps-business-finder-with-hours-ratings,dataspryva/google-maps-business-lead-and-email-finder,dataspryva/google-maps-related-place-and-competitor-finder,nimbryxo-studio/google-maps-popular-times-and-live-busyness"
bearer_token_env_var = "APIFY_TOKEN" - Add the block to ~/.codex/config.toml, or .codex/config.toml in a project.
- Export APIFY_TOKEN in the shell that starts Codex. Or skip the token line and run codex mcp login to sign in.
- Start codex and type /mcp to check that the tools are listed.
Sign-in: Token read from the APIFY_TOKEN environment variable.
Gemini CLI configterminal (writes ~/.gemini/settings.json)
gemini mcp add -t http -s user -H "Authorization: Bearer $APIFY_TOKEN" apify-google "https://mcp.apify.com/?tools=fetch-actor-details,vexaloom-labs/google-maps-business-lead-finder-with-email,nimbryxo-studio/google-maps-review-and-contributor-activity,vexaloom-labs/google-maps-business-finder-with-hours-ratings,dataspryva/google-maps-business-lead-and-email-finder,dataspryva/google-maps-related-place-and-competitor-finder,nimbryxo-studio/google-maps-popular-times-and-live-busyness" - Export APIFY_TOKEN first: the shell expands it and Gemini CLI saves the header, token included, in plain text in ~/.gemini/settings.json (keep that file private). In PowerShell write $env:APIFY_TOKEN instead of $APIFY_TOKEN. Drop -s user to save it in the project's .gemini/settings.json.
- Start gemini and type /mcp to check that the server is connected and lists its tools.
- Saved by hand, a remote server uses the httpUrl key for streamable HTTP (url means the older SSE transport).
Sign-in: Token header saved by gemini mcp add.
n8n AI Agent configMCP Client Tool node
https://mcp.apify.com/?tools=fetch-actor-details,vexaloom-labs/google-maps-business-lead-finder-with-email,nimbryxo-studio/google-maps-review-and-contributor-activity,vexaloom-labs/google-maps-business-finder-with-hours-ratings,dataspryva/google-maps-business-lead-and-email-finder,dataspryva/google-maps-related-place-and-competitor-finder,nimbryxo-studio/google-maps-popular-times-and-live-busyness - Add an AI Agent node, then attach an MCP Client Tool node to its tool input.
- Paste the URL as the endpoint and choose HTTP Streamable as the transport.
- Choose Bearer auth and create a credential that holds your Apify token.
Sign-in: Bearer auth credential.
Validated, not executed: 7 of 7 checks pass
- Uses Apify's hosted MCP endpoint over HTTPS
- The tools parameter lists exactly the chosen Actors as owner/name
- JSON configs parse and use the client's top-level key and the same URL
- Codex TOML has a [mcp_servers.<name>] table with url and bearer_token_env_var
- CLI commands quote the same URL and use the streamable HTTP transport
- One-click install links decode back to the same URL and carry no token
- Only placeholders, no real token
Official MCP server, official API or an Actor?
Google Maps Experience agent tools (formerly Grounding Lite)
https://mapstools.googleapis.com/mcp · Google Cloud API key in the X-Goog-Api-Key header
Place search with AI summaries, place IDs and Maps links, weather, routes, and resolving names or Maps URLs to place IDs.
Tools: search places, lookup weather, compute routes, resolve names, resolve Maps URLs. Price: Essentials $7 per 1,000 requests with 10,000 free a month; Pro $14 per 1,000 with 5,000 free (allowlist).
Which to use: Use Google's tools for place lookups, routes and weather inside an agent. Use an Actor when you need lists of businesses with contact details, reviews, popular times or a grid scan of an area as rows.
Source: Google Maps Platform: Maps Experience agent tools, checked 2026-11-11.
Google Maps has a public official API
The Places API (New) supports text search, nearby search, place details, autocomplete and photos. A billing account and API key are required.
SKU-based pay-as-you-go. Place Details Essentials is $5.00 per 1,000 after 10,000 free calls per month at the published first paid tier; other SKUs differ.
The old $200 monthly credit was replaced by per-SKU monthly free caps on March 1, 2025. Legacy Places API can no longer be enabled for new Cloud projects as of October 2026.
Google Maps content is subject to Google Maps Platform terms and attribution rules. Public business data only; not legal advice.
Which Actor for which job
- Busyness research: Google Maps Popular Times & Live Busyness Scraper retrieves popular times and live busyness when Google exposes them; its output includes
businessNameandplaceId. - Listing comparisons: Google Maps Business Finder with Hours, Ratings & Location collects places for business searches; it returns
totalScoreandreviewsCount. - Earth location research: Google Earth Location Coordinate Finder resolves locations with terrain and place details; it returns
latitudeandelevation_meters. - Address resolution: Google Maps Address & Coordinate Geocoding Lookup handles address and coordinate lookups; it returns
resolvedandformattedAddress. - Contact prospecting: Google Maps Business Lead & Email Finder collects business leads with website contact enrichment; its output includes
streetandcity. - Email and social enrichment: Google Maps Business Lead Finder with Email & Social Links gathers listings with website contact details; it returns
websiteandemails. - Area coverage: Google Maps Grid-Based Market Saturation Scanner searches across a geographic grid; its business rows include
nameandcategoryName. - Schedule checks: Google Maps Hours, Open-Now Status & Holiday Schedule collects opening schedules and current status; its output includes
businessNameandplaceUrl.
Where it stops
Apify requires your authentication: use your Apify API token for the token-based configurations. Missing contact details, popular times or live busyness cannot be inferred from a listing. Use Google’s official Google Maps Experience agent tools instead for place lookups, routes and weather inside an agent; that server requires a Google Cloud API key in the X-Goog-Api-Key header. Choose the Actors for business rows, contact enrichment, reviews, popular times or geographic grid scans.
Every Google Maps Actor in the catalogue
| Actor | Returns | Fields | Store price | Last update |
|---|---|---|---|---|
| Google Maps Popular Times & Live Busyness Scraper | One record per Google Maps place: place identity and listing details, open/closed status, coordinates and local time, hourly Popular Times… Fields include businessName, placeId, featureId. | 46 | $0.99 per 1,000 results | 2026-10-24 |
| Google Maps Business Finder with Hours, Ratings & Location | Dataset of public Google Maps places with name, address, category, rating, review count, hours, price, attributes, coordinates and place… Fields include rankInSearch, name, categoryName. | 55 | $0.99 per 1,000 results | 2026-10-27 |
| Google Earth Location Coordinate Finder | Google Earth location records: place name, description, precise latitude/longitude, Google place ID, terrain elevation, matched address… Fields include place_name, google_place_id, latitude. | 11 | $0.99 per 1,000 results | 2026-11-11 |
| Google Maps Address & Coordinate Geocoding Lookup | One row per resolved input: coordinates, formatted address, structured address parts, Place ID, Plus Code, time zone and result level. Fields include mode, inputAddress, inputLocation. | 25 | $0.99 per 1,000 results | 2026-11-06 |
| Google Maps Business Lead & Email Finder | Dataset of Google Maps business leads with contact details, website emails (source and MX-checked), extra phones, and social profiles. Fields include name, googleBusinessCategories, street. | 39 | $0.99 per 1,000 results | 2026-10-27 |
| Google Maps Business Lead Finder with Email & Social Links | Google Maps business listings enriched with email addresses (including a DNS-checked subset), website phone numbers, social profiles… Fields include title, categoryName, address. | 34 | $0.99 per 1,000 results | 2026-10-19 |
| Google Maps Grid-Based Market Saturation Scanner | Cover a bounding box, circle, or custom polygon with a search grid to collect every business Google Maps exposes for a query, well beyond… Fields include name, categoryName, totalScore. | 29 | $0.99 per 1,000 results | 2026-10-18 |
| Google Maps Hours, Open-Now Status & Holiday Schedule | Business hours records from Google Maps — place identity and contact details, structured 7-day opening hours, live open/closed status… Fields include businessName, placeId, featureId. | 35 | $0.99 per 1,000 results | 2026-11-07 |
| Google Maps Photo Gallery Extractor by Category | Dataset of public Google Maps media. Each row has recordType set to photo, video or streetView, plus contributor, upload date, dimensions… Fields include photoId, photoIndex, photoUrl. | 42 | $0.99 per 1,000 results | 2026-11-06 |
| Google Maps Radius Search Around a Coordinate | Dataset of Google Maps places inside the requested radius, each with identity, contact, rating, hours, coordinates and distance from the… Fields include name, categoryName, totalScore. | 53 | $0.99 per 1,000 results | 2026-11-06 |
| Google Maps Related Place & Competitor Finder | One row per related place, with its explicit relation provenance (Google carousel or same-category nearby), canonical and legacy… Fields include relationMode, relationQuery, relatedSectionType. | 37 | $0.99 per 1,000 results | 2026-10-29 |
| Google Maps Review & Contributor Activity Scraper | One record per Google Maps review (place and search modes), per reviewer contribution (reviewer mode) or per partner-site review on… Fields include reviewId, reviewerName, reviewerAvatarUrl. | 103 | $0.99 per 1,000 results | 2026-10-21 |
| Google Maps Route & Distance Matrix Scraper | Route, matrix and URL records from Google Maps directions — resolved stops, distance, duration, traffic, route alternatives, steps… Fields include origin, destination, originResolved. | 35 | $0.99 per 1,000 results | 2026-11-05 |
| Google Maps Timezone & Local Time Lookup | One record per resolved place, address, Place ID or coordinate, with the IANA timezone, current local and UTC time, UTC offset… Fields include mode, inputAddress, inputLocation. | 28 | $0.99 per 1,000 results | 2026-11-10 |
| Google Maps Top List & Ranked Places Extractor | Ranked places from a Google Maps Top list or list/search URL, with rank, rating and optional full place details. Fields include listSource, name, categoryName. | 60 | $0.99 per 1,000 results | 2026-11-06 |
| Google Maps Business Search & Reviews MCP Server | Dataset records emitted by the search, details or reviews mode. The same data is returned by the MCP tools search_businesses… Fields include name, description, index. | 52 | $0.99 per 1,000 results | 2026-11-07 |
| Google Maps Restaurant Menu & Popular Dish Extractor | Restaurant menu rows with dish name, section, description, price, currency, photo, menu provenance and full Google Maps place context. Fields include businessName, placeId, featureId. | 33 | $0.99 per 1,000 results | 2026-11-05 |
Call these Actors from code: the Google Maps data API page
Store links: google-maps-popular-times-and-live-busyness, google-maps-business-finder-with-hours-ratings, google-earth-location-coordinate-finder, google-maps-address-and-coordinate-geocoding, google-maps-business-lead-and-email-finder, google-maps-business-lead-finder-with-email, google-maps-grid-based-market-saturation-scanner, google-maps-hours-open-now-status-and-holiday, google-maps-photo-gallery-extractor-by-category, google-maps-radius-search-around-a-coordinate, google-maps-related-place-and-competitor-finder, google-maps-review-and-contributor-activity, google-maps-route-and-distance-matrix-scraper, google-maps-timezone-and-local-time-lookup, google-maps-top-list-and-ranked-places-extractor, google-maps-business-search-and-reviews-mcp-server, google-maps-restaurant-menu-and-popular-dish
Google Maps recipes for n8n
Google Maps leads to Google Sheets
Pull local business leads from Google Maps into a Google Sheet on a schedule, with phone, website, rating…
Google MapsGoogle SheetsGoogle Maps leads to HubSpot
Send a Google Maps business search into HubSpot as contacts, one contact per place with its name, phone…
Google MapsHubSpotGoogle Maps competitor scan to Slack
Scan a map area grid for one kind of business and post each competitor to Slack with its rating, review…
Google MapsSlack
Troubleshooting
Why does the client say Unauthorized or invalid token?
Every Apify Actor tool needs a signed-in Apify account. Reconnect the server so the OAuth sign-in runs again, or switch to the token variant: an Authorization: Bearer header with an API token from Apify Console, Settings, API and integrations. For a local server the token must be in the server's own env block, not only in your shell.
Source: Apify MCP server README
Why did my agent's tool list change after an update?
Without a tools parameter Apify's server loads its default tool set, which changes between releases. The URLs on this site pin the tools with ?tools=, so the agent always gets the same Actor tool plus fetch-actor-details. Apify's README gives the same advice for production.
Source: Apify MCP server README
What happens when the agent sends input the Actor rejects?
The server answers with the Actor's input schema, so the agent can fix the arguments and call again. The fetch-actor-details tool in every scoped URL lets it read that schema before the first call.
Source: Apify MCP server README
Claude Code shows Needs authentication. Why?
The server is added but not signed in. Type /mcp in an interactive session and authenticate, or run claude mcp login with the server name. Headless runs with claude -p cannot complete OAuth, so sign in once interactively or use the --header token variant.
Source: Claude Code MCP documentation
Claude Code warns that a tool result is too large. What can I change?
Claude Code warns above 10,000 tokens of tool output and caps it at 25,000 by default (MAX_MCP_OUTPUT_TOKENS raises it). Ask the agent for fewer results per call, for example a lower result limit for the Actor.
Source: Claude Code MCP documentation
Cursor does not show the server's tools. What should I check?
Open the Output panel and pick MCP Logs to see the connection error. A deeplink install that does nothing usually means an older Cursor build; update it or paste the JSON into mcp.json by hand.
Source: Cursor MCP documentation
Questions
How do I get Google Maps business data into Claude?
Add the Apify MCP configuration for your Claude client and complete Apify authentication. Ask Claude to inspect the selected Actor’s published schema, run a business search and return the results with source links.
Can Claude tell me how busy a Google Maps place is?
Choose Google Maps Popular Times & Live Busyness Scraper for that request. Popular times and live busyness are available only when Google serves them for the place.
Which connection should I use for Google Maps routes and weather?
Use Google Maps Experience agent tools for routes, weather and place lookups. Authenticate that official MCP connection with a Google Cloud API key in the X-Goog-Api-Key header.
Can I ask Claude to scan businesses across an area?
Add Google Maps Grid-Based Market Saturation Scanner to the MCP tool selection. It searches a bounding box, circle or custom polygon through a grid, though coverage still depends on the businesses Google Maps exposes.
Sources
- Apify MCP server documentation, checked 2026-11-10
- Google Maps Platform Places API documentation, checked 2026-11-09
- Google Maps Platform Places API pricing
- developers.google.com/maps/billing-and-pricing/march-2025, checked 2026-11-09
- Google Maps terms