A Google Maps MCP server is a Model Context Protocol server that gives an AI agent such as Claude, ChatGPT or Cursor tools for Google Maps data: places for a search and a location, with ratings, review counts, categories, opening hours, phone numbers, websites and the reviews themselves. The best Google Maps MCP setup for research and lead lists is the hosted Scrape.ly MCP server, because your agent runs ready-made Google Maps scrapers in the cloud and gets every place as a structured row, with no Google Cloud project, no Maps Platform API key and no billing account to set up.
Below: how Google's own MCP server and the open-source ones work, the setup for each client, the Actors your agent uses, and two real runs from 26 October 2026: five top-rated coffee shops in Portland in 8.2 seconds for under two cents, and the newest reviews of the best of them for a fifth of a cent.
Two kinds of Google Maps MCP server
Search for "google maps mcp" and most of page one runs on the Google Maps Platform APIs. The top result is Google's own: Maps Grounding Lite, an MCP server at https://mapstools.googleapis.com/mcp with tools to search places, look up weather, compute routes and resolve place names. Its search tool returns "AI-generated place data summaries" along with Place IDs, coordinates and Google Maps links.
Getting there takes a Google Cloud project with Grounding Lite enabled, billing switched on, and an API key or OAuth client. Each request is a billing event under Maps Platform's pay-as-you-go pricing. Google's docs also set rules for the model on the other end: you "must not use Maps Grounding Lite with any models that use the data input into the model for any model training or improvement", you're responsible for making sure Google Maps content "is not cached by, stored by, or used to improve the LLM", and answers built on it must show Google Maps as the source right after the generated text.
The open-source servers follow the same pattern with your own key. cablate/mcp-google-map, the second result, turns Maps Platform into 18 read-only tools and states that every option needs "a Google Maps Platform API key. Live calls may be billable." Anthropic's original reference server, which also needs a Maps API key, now lives in the archived servers repository.
Those servers are a good fit for routing, geocoding and "what's near me" answers inside an app. Market research, lead lists and review analysis need something else: the public listing data as rows you can sort, filter and export. That's what the Scrape.ly server returns.
| Scrape.ly MCP server | Maps Platform API servers (Grounding Lite, open source) | |
|---|---|---|
| Setup | One URL, sign in with OAuth | Google Cloud project, billing enabled, API key or OAuth client |
| What a place search returns | One row per place: name, category, rating, review count, address, hours, phone, website, coordinates, review topics | AI-generated summaries with Place IDs, coordinates and links (Grounding Lite) |
| Review text | Yes, with stars, dates, owner replies and visit details | Depends on the server and API |
| Keep and export the data | JSON, CSV or Excel datasets, kept on your account | Subject to Google Maps Platform content rules |
| Price | $3.81 per 1,000 places, $0.44 per 1,000 reviews | Maps Platform per-request pricing |
| Cost control | A dollar cap per run, scoped keys with daily limits | Your Google Cloud billing account |
How to connect the Scrape.ly MCP server
The Scrape.ly MCP server is hosted at https://mcp.scrape.ly, speaks MCP's streamable HTTP transport and signs you in with OAuth or a Scrape.ly API token. Create a free account first: the free plan includes $5 of usage every month, no card needed.
Claude Code. One command, then /mcp inside Claude Code to sign in:
claude mcp add --transport http scrapely https://mcp.scrape.lyClaude Desktop and claude.ai. Add https://mcp.scrape.ly as a custom connector under Customize → Connectors. The Claude MCP guide shows every step.
Cursor. Add this to ~/.cursor/mcp.json, or leave out headers to sign in with OAuth:
{
"mcpServers": {
"scrapely": {
"url": "https://mcp.scrape.ly",
"headers": { "Authorization": "Bearer YOUR_TOKEN" }
}
}
}ChatGPT, VS Code, Windsurf and others. Same URL with OAuth or a Bearer header; the MCP docs have each format.
A Google Maps-only server. To give the agent just the places and reviews tools:
https://mcp.scrape.ly?actors=cornerledger/google-maps-scraper,cornerledger/google-maps-reviews-scraperThe Google Maps scrapers your agent can use
| Actor | Input | What comes back | Price per 1,000 |
|---|---|---|---|
| Google Maps Scraper Lite | Search terms and a location | Name, categories, address parts, coordinates, phone, website, rating, review count, opening hours, review topics, Place ID | $3.81 places |
| Google Maps Scraper Full | Search terms, a location, Maps URLs, a custom area or postal code | The same plus detail pages, emails and social profiles from the place's website, and lead enrichment | $4.75 places, add-ons priced per event |
| Google Maps Reviews Scraper | Place URLs, search URLs or Place IDs | Review text and translation, stars, exact date, owner reply, photos, visit details, aspect ratings | $0.44 reviews |
Prices are pay per event with platform usage included, as listed on each Store page on 26 October 2026. Use Lite for place lists and market scans, Full when the agent needs contact details. Our Google Maps scraping page compares the Google Maps Actors side by side.
What the agent does: the four tool calls
search-actorswith "google maps" finds the Actors above.fetch-actor-detailsreturns the input schema, README and price, so the agent knows the search goes insearchStringsArrayand the city inlocationQuery.call-actorstarts the run and waits up to 45 seconds; both runs below finished well inside that.get-actor-outputreads the rows, with only the fields the agent asks for.
The rows never land in the call-actor reply, so a 500-place scan doesn't flood the context window.
A real run: the best-rated coffee shops in Portland
The prompt: "Use scrapely to find five coffee shops in Portland, OR rated 4.5 or higher, with their review counts, hours and websites."
The agent sends cornerledger/google-maps-scraper the shape of its minimum-rating preset, with a cap on the charge:
{
"actor": "cornerledger/google-maps-scraper",
"input": {
"searchStringsArray": ["coffee shop"],
"locationQuery": "Portland, OR",
"maxCrawledPlacesPerSearch": 5,
"placeMinimumStars": "4.5",
"language": "en"
},
"waitSecs": 45,
"callOptions": { "maxTotalChargeUsd": 0.05 }
}The run on 26 October 2026 finished in 8.2 seconds. Its log:
2026-10-26T14:25:54.661Z [scrapely.actor] INFO Saved 5 places in 5.0s (7 requests, 0 hedged, 1.17 MB); start-up: python 1.02s, SDK import 0.00s, SDK init 0.25sThe agent read the rows with get-actor-output:
{
"runId": "8f5803f19db9406f8",
"fields": "rank,title,totalScore,reviewsCount,postalCode,openingHours,phone,website,reviewsTags"
}What came back:
| Rank | Place | Rating | Reviews | ZIP | Monday hours | Phone | Website |
|---|---|---|---|---|---|---|---|
| 1 | Drip Drop Coffee | 4.9 | 370 | 97204 | 7 AM to 3 PM | (971) 383-2734 | dripdroppdx.com |
| 2 | Less and more coffee | 4.8 | 479 | 97204 | 7 AM to 2 PM | not listed | lessandmorecoffee.square.site |
| 3 | 40 LBS Coffee Bar | 4.7 | 262 | 97204 | 7 AM to 3 PM | (503) 329-5782 | 40lbscoffee.com |
| 4 | 40 LBS Coffee + Bar | 4.6 | 154 | 97204 | 7 AM to 5 PM | (503) 329-5782 | 40lbscoffee.com |
| 5 | Caffe Umbria | 4.6 | 561 | 97205 | 7 AM to 6 PM | (503) 719-5248 | caffeumbria.com |
Two details an agent should catch. Ranks 3 and 4 are two locations of the same business, sharing a phone number and website, so a brand-level list should merge them. And the review topics Google shows are in every row: Less and more coffee's most mentioned topic was "tiramisu latte" (80 reviews), Drip Drop's were "welcoming staff" (30) and "friendly baristas" (21), and Caffe Umbria's was "espresso" (27). Both 40 LBS locations close on weekends; Caffe Umbria is open 7 AM to 6 PM every day.
Cost: 5 × $0.00381 = $0.01905 at list price, platform usage included. Our account was billed $0.01524 after its plan's Store discount.
A real run: the newest reviews of the top place
The follow-up prompt: "Get the five newest reviews of Drip Drop Coffee, without reviewer names."
The agent took the Place ID from the first run and sent the Reviews Scraper this input, with personalData off so no names, profile links or photos come back at all:
{
"placeIds": ["ChIJecApHMELlVQRlZHjA_PRmQs"],
"maxReviews": 5,
"reviewsSort": "newest",
"language": "en",
"personalData": false
}It finished in 4.1 seconds: "Saved 5 reviews from 1 places." Reviewers are shown as [reviewer 1] to [reviewer 5]; the run returned no names to begin with.
| Reviewer | Stars | Date | Review, shortened | Food / Service / Atmosphere |
|---|---|---|---|---|
| [reviewer 1] | 5 | 2026-10-12 | The Dude sandwich did not disappoint! | not rated |
| [reviewer 2] | 5 | 2026-10-12 | There is a distinct kind of magic in the morning air when you walk into Drip Drop Coffee… | 5 / 5 / 5 |
| [reviewer 3] | 5 | 2026-10-10 | What a chill spot to grab coffee and a snack! | 5 / 5 / 5 |
| [reviewer 4] | 5 | 2026-10-09 | I got the everything bagel with jalapeño and plain cream cheese. It was fantastic! | 5 / 5 / 5 |
| [reviewer 5] | 5 | 2026-10-07 | (stars only, no text) | 5 / 5 / 5 |
Each review also carried its visit details where the reviewer gave them ("Dine in", "Breakfast", "$10–20" per person, "Quiet, easy to talk"). None of the five had an owner reply. Cost: 5 × $0.00044 = $0.0022 at list price; we were billed $0.00176.
Prompts that work well
- "Use scrapely to list every dentist in Austin, TX with at least 4.5 stars and no website, 50 places, as a CSV."
- "Find the 20 best-rated ramen restaurants in Seattle and tell me which neighborhood has the most."
- "Run cornerledger/google-maps-reviews-scraper on this place for reviews from the last 30 days that mention 'wait', and summarize the complaints."
- "Compare the ratings and review counts of every Blue Bottle Coffee in San Francisco."
- "Keep each run under $0.25."
The agent turns that last line into callOptions.maxTotalChargeUsd.
What your agent can and can't get from Google Maps
- A limited list per search area. Google Maps shows a limited number of places for one search: about 130 restaurants but over 500 hotels around a city center, per the Lite scraper's README. For more, the agent adds search terms or narrower locations.
- Filters read further down the list. With a minimum rating or a website filter set, filtered-out places don't count toward the limit, so the run keeps reading until it has the number you asked for.
- Google reviews only. Partner scores, like Tripadvisor ratings on a hotel page, aren't included, and reviews visible only to signed-in users aren't scraped.
- Contact details live on the Full scraper. Lite returns the phone and website Maps shows; emails and social profiles from the business's own site come from Google Maps Scraper Full.
- Reviewers are people. Set
personalDatato false unless you have a lawful reason to keep names, and treat review text as personal data under the GDPR and similar laws. Business listings themselves are business data. This isn't legal advice.
Spending control for agents
- A dollar cap per run.
maxTotalChargeUsdcaps the run, and the Reviews Scraper stops cleanly when it reaches it. - Scoped API keys with daily charge limits. An unattended agent gets its own key under Settings → API keys with only
actors:runandruns:read. - A prepaid balance. No invoice surprises.
For a REST endpoint instead of a chat, the Google Maps API page has Python, JavaScript and cURL examples, and our guide on how to scrape Google Maps covers every input without an agent. The Google Maps API pricing breakdown compares the official API's costs with Store prices.
FAQ
Is there an MCP for Google Maps?
Yes. Google offers Maps Grounding Lite, and open-source servers wrap the Maps Platform APIs; all of them need a Google Cloud project and an API key. The Scrape.ly MCP server runs Google Maps scrapers instead, so your agent gets public places and reviews as rows without a Maps key.
Does Google have an MCP server?
Yes. Google announced official MCP support for Google services, and for Maps it offers Maps Grounding Lite at https://mapstools.googleapis.com/mcp, with tools for places, weather and routes. It needs a Cloud project with billing enabled.
What is the Google Maps MCP server URL?
For Scrape.ly it's https://mcp.scrape.ly, for every client. Add ?actors=cornerledger/google-maps-scraper,cornerledger/google-maps-reviews-scraper to expose just the Maps tools.
Is the Google Maps API still free?
Google Maps Platform bills per request; Grounding Lite counts each request as a billing event, with a no-cost demo key for testing. On Scrape.ly you pay per result instead ($3.81 per 1,000 places), and the free plan's $5 a month covers about 1,300 places.
Can my agent read Google Maps reviews?
Yes. The Google Maps Reviews Scraper returns review text, stars, dates, owner replies and visit details for any place, at $0.44 per 1,000 reviews. Turn personalData off to leave out reviewer names and profiles.
Can Claude use Google Maps?
Yes. Connect Claude Desktop, claude.ai or Claude Code to https://mcp.scrape.ly, then ask in plain words for places in a city; Claude runs the Google Maps scraper and works with the rows it gets back.




