This MCP server for Google Maps data and business leads gives an AI agent one tool, google_maps_search, for pulling local commercial listings straight out of Google Maps. An agent can hand it a trade category and a city and get back a structured list of businesses with phone numbers, websites, addresses, and review data, ready to drop into a spreadsheet or a CRM import. Every tool in the toolset runs as an Apify Actor on your own Apify account, so nothing routes through a shared quota, and the free plan works fine for testing and light use. This page is one of 30 tools exposed by Apify Public Data MCP, a single MCP server that also covers business registries, contractor licenses, job boards, SEC filings, and more.
Want the complete workflow? Follow the contractor lead-generation tutorial from search through licence verification and CSV export.
This tool extracts verified commercial business listings from Google Maps, including postal addresses, phone numbers, customer review ratings, and canonical websites. It is meant for local commercial directories, trade contractors, physical retail storefronts, and B2B regional sales leads, not for employment listings, corporate filings, federal contracts, or vacation rentals. The call is read-only: it does not modify any external database, account, or state, and it runs synchronously in the cloud through the Apify Actor named in the digest below.
| Argument | Required | What it does |
|---|---|---|
| search_query | Yes | Geographic search query combining target trade category and municipal market location (e.g. ‘HVAC contractors in Phoenix, AZ’ or ‘Commercial Electricians Dallas TX’). |
| max_results | No | Maximum count of business lead records to extract and return. default: 10 |
Returns: name, place_url, place_id, category, address, street, city, state, postal_code, phone, phone_unformatted, website, rating, reviews_count, reviews_5_star, reviews_4_star, reviews_3_star, reviews_2_star, reviews_1_star, open_state, opening_hours_today, opening_hours, description, booking_url, image_url, located_in, plus_code, latitude, longitude, search_url
Price: $0.0025 per result plus $0.001 Actor-start per run (free-tier price; 10-30% lower on paid Apify plans)
Store listing: Google Maps Business Leads Scraper - Local Lead Generation
Not for: employment job listings, corporate regulatory filings, federal procurement awards, or short-term vacation rentals.
A google_maps_search result gives an agent a name, address, and website; these four tools take that lead further without leaving the same MCP server.
The server is a Python stdio MCP server published on PyPI as apify-data-scrapers. Every tool runs an Apify Actor on your own Apify account, so you need a free Apify account and its API token (Apify Console -> Settings -> Integrations).
Claude Desktop / Claude Code - add to claude_desktop_config.json (or .mcp.json):
{
"mcpServers": {
"apify-scrapers": {
"command": "uvx",
"args": ["apify-data-scrapers"],
"env": { "APIFY_TOKEN": "YOUR_APIFY_API_TOKEN" }
}
}
}
Cursor - Settings -> MCP -> Add server, same command (uvx apify-data-scrapers) and the APIFY_TOKEN environment variable.
Smithery - one-click install from smithery.ai/servers/jlucasmcrell/apify-scrapers.
Without an MCP client - the same Actors are callable from Python (apify-client), Node.js, n8n, Make or the Apify Console; see the project README.
How does authentication work?
Each tool, including google_maps_search, requires the APIFY_TOKEN environment variable. Runs execute as an Apify Actor under your own Apify account, so usage bills to your account, not a shared one, and no separate Google API key is needed.
How fast is a typical google_maps_search call? Typical run duration is 15-45 seconds, with a timeout capped at 120 seconds, the same latency and limits figures the tool digest states for this Actor.
What is google_maps_search not for? It is not for employment job listings, corporate regulatory filings, federal procurement awards, or short-term vacation rentals. The digest names glassdoor_jobs_search, sec_edgar_filings, usaspending_contracts, and airbnb_listings_search as the tools built for those cases instead.
How do results come back? As JSON records, one per business listing, with fields such as title, phone, website, address, totalScore, reviewsCount, categoryName, and url. An agent can filter, sort, or re-shape that list however the task needs once it has the raw records.