Google Maps MCP: Local Leads With Verified Emails in Claude & ChatGPT

Shehriar Awan●
28 Sept 2026

●
20 min read

15-Second Summary

  1. I needed every dentist in Chicago with 100+ Google reviews, and a way to reach them. ChatGPT and Claude both had a go, and both came with very basic data
  2. ChatGPT never opened Google Maps. Most of its 185 dentists came from somebody else's directory
  3. Claude went to the source but stopped at 132, with no emails and no websites
  4. Google's official Maps MCP servers are a dead end for leads, and its terms forbid the use case anyway
  5. lobstr.io's MCP pulled 700+ dentists from live Google Maps, 80+ data points each including bounce-verified emails
  6. This guide gives you a complete walkthrough of how you can do it

Looking for local leads? So was I.

Not just any leads, either. I wanted every dentist in Chicago with more than 100 Google reviews, and their bounce verified emails + social links to actually reach them.

I got there in the end, with lobstr.io's Google Maps MCP: 700+ dentists, 87 useful data points on each, 43% of them with bounce verified emails.
Every dentist in Chicago with 100+ reviews: ChatGPT found 185 with 5 data points each and no emails, reviews or social media; Claude found 132 with 11 data points, no emails or social media, and only 5 reviews per dentist; lobstr.io's MCP found 757 with 87 data points each, 322 bounce-verified emails, all 322,262 reviews and their social media profiles, posts and comments

But getting there took two chatbots, the official Google MCP servers and one lesson about ZIP codes. 😅

And I wasn't the only one hunting. I found somebody on r/localseo asked whether anyone else was still scraping Google Maps for client leads by hand:

r/localseo post asking if anyone else is still manually scraping Google Maps for client leads

The agencies they'd talked to were either paying $40 to $80 a lead or copy-pasting from Maps into their lead tools. That's a lot of money, or a lot of wasted afternoons.

So I thought, can't AI just do this for me?

I started with ChatGPT.

Can ChatGPT or Claude find local leads on Google Maps?

Short answer: they'll find you some dentists, but not a list you can reach out to. And each one falls short in its own way.

What did ChatGPT find?

I kept the prompt simple: "Find me every dentist in Chicago with more than 100 reviews from google maps."

ChatGPT worked on it for 9+ minutes and came back with 180-ish dentists.

ChatGPT's full answer: 185 Chicago dentists with 100+ reviews after 9m 21s, built from a 233-practice directory plus live local searches

Sounded great. Right up until I read how it got them.

It never opened Google Maps. It started from a third-party dentist directory, topped it up with a few live searches and merged the two.

So I asked for Google Maps and got a copy of somebody else's copy of it.

Most of the list came from that directory's August snapshot, so the review counts were already stale: Smile Obsession in the Loop had 246 on ChatGPT's list and 391 on Maps.

And the spreadsheet itself? A name, a review count, a rating and an address. No phone, no website, no email.

ChatGPT's exported spreadsheet of Chicago dentists: 9 columns, 109 of 185 rows from an August directory snapshot, and no phone, website or email

So ChatGPT was out. Next up, Claude.

What did Claude find?

I expected the same story. But Claude surprised me. It actually went to the source.

Claude actually has a Google Places tool built in, called places_search.

It ran 20 searches, one per neighborhood, and came back with 132 dentists in about two minutes.

Claude answering the same prompt with 132 Chicago dentists from 20 neighborhood searches, noting its places search returns at most 10 results per query

It also did something ChatGPT didn't. It told me the list wasn't complete, without me asking. Some neighborhoods had hit the tool's limit, and some were never searched at all.

Claude flagging its list isn't complete: eight neighborhoods never searched, and the Loop, River North and Lincoln Park cut off at exactly 10 results

So why not just run more searches?

Because places_search is a lookup tool, not a lead tool. Each search stops at 10 results and there's no next page, so a whole city was never going to fit.

And even the dentists it found came with no way to contact them:

Claude listing what its Google Places tool returns per listing: name, place ID, address, coordinates, phone, rating, review count, types, hours and price level

No email. That alone kills outreach. No website either, and that's actually worse, because the website is where you'd find the email.

Claude confirming its Places tool doesn't return website, email or social links, listing status, review breakdowns or photos

To be fair, Claude never pretended otherwise. When I pushed it, it put it better than I could:

Claude, asked whether it's using a scraper, calling its Google Places tool a real-time lookup tool, not a database dump of every dentist in the city
Both chatbots ended with the same advice: do a proper sweep. What I had was a directory, not a lead list, and I break that gap down in my tested Google Maps scraper roundup.

So I went looking for a Google Maps MCP. And the first place I checked was Google itself.

Is there a Google Maps MCP that can do it?

Does Google have an official Google Maps MCP?

Yes, Google has two, but neither one gives you a business email.

Both are part of the managed MCP servers Google announced in December 2025.

Maps Code Assist

It's free, experimental and built for developers. It feeds your model Google's own documentation so it can write Maps code without making things up.

Google Maps Platform Code Assist docs listing its two MCP tools, retrieve-instructions and retrieve-google-maps-platform-docs

Great if you're building a store locator. No use if you want dentists.

Maps Grounding Lite

This one got my hopes up, because it has a tool called search_places. Then I read what it returns: an AI-generated summary, Place IDs, coordinates and Google Maps links.
Maps Grounding Lite search_places output schema with place, id, googleMapsLinks, attribution and location, and no phone, website or email

No phone, no website, no email. That's less than Claude's built-in tool already gave me.

And then I read the terms.

Can you use Google's MCP for lead generation?

No, Google's own terms rule it out.

Google Maps Platform's Terms of Service have a section called "No Scraping", and one of the things it says you won't do is "copy and save business names, addresses, or user reviews."
Google Maps Platform Terms of Service section 3.2.3, No Scraping and No Caching, with clause iii highlighted
That's local lead generation, in Google's own words, on the list of things you can't do.
Whether it applies when you scrape public listings is a different question, and I covered it in Is Scraping Google Maps Legal?

So the official route is a dead end twice. There's nothing worth exporting, and the terms say you can't export it anyway.

What about the unofficial ones?

What about third-party Google Maps MCPs?

Search for one and the first result you land on is probably already dead. It's the old reference server, modelcontextprotocol/google-maps, and it now sits in servers-archived.
GitHub banner showing the servers-archived repo that holds the Google Maps MCP Server, archived on May 29, 2025

There are plenty of others, and some of them are good. But most split the job across separate tools: one to search the map, one to find emails and one to check them.

Each one is billed on its own, and your agent has to stitch the results together.

And "verified" often just means the domain exists. That's exactly how this founder ended up posting on r/Entrepreneurs:

r/Entrepreneurs post about cold email bounces from a 'verified' list that wasn't actually verified
I'm testing the serious ones properly in a follow-up, and my tested roundup of Google Maps scrapers already covers the non-MCP side.

What I wanted was the whole job in one run: search, filter, find the emails and check they won't bounce. So I plugged in lobstr.io's.

How to get local leads with lobstr.io's Google Maps MCP

lobstr.io is a no-code cloud scraping platform with 50+ ready-made scrapers, and its MCP server puts all of them inside your AI client.
lobstr.io Google Maps Leads Scraper store page, emails included, exporting local businesses from a Google Maps search into a spreadsheet

Remember everything the chatbots were missing?

This scraper covers all of it. It reads live Google Maps, and the whole job happens in one run: search, filter, visit the websites, pull the emails, bounce-check them and grab the socials.

What does lobstr.io's Google Maps MCP give you?

Features

  1. Live Google Maps, not a snapshot ... the listings Maps shows today, in the region and language you pick
  2. As broad or as narrow as you like ... a whole country, a city, a neighborhood or a single ZIP code
  3. Filters that shape the pitch ... with or without a website, claimed or unclaimed, review and rating ranges, no-email businesses skipped
  4. Emails found and bounce-checked in the same run ... a live check on the mailbox itself, not just the domain
  5. 87 fields per business ... socials, owner details, opening hours, the review breakdown and photos, the same set the no-code version returns
  6. Works in any MCP client ... Claude, ChatGPT, Cursor, Codex, all documented at mcp.lobstr.io

Email verification

This is what fixes the r/Entrepreneurs problem. Every email gets a live check with its mail server, so you know the mailbox exists, not just the domain.

The email extractor guide explains how the emails get found in the first place.
Each email gets one of five statuses in email_status:
Status What it means
valid The mailbox exists and can receive mail. Send
invalid Doesn't exist. Don't send
risky Might bounce, couldn't be confirmed either way
catch-all The domain accepts mail for any address, so the mailbox itself couldn't be confirmed
unknown The verifier couldn't get an answer

It's 98.9% accurate, and it also resolves most catch-all domains, the ones basic verifiers just mark as risky. So you end up with a list you can actually send to.

Data

Field group What you get
🏢 Identity name, category, place_id, cid, url, description
📍 Location address, street_address, neighborhood, city, zip_code, region, lat, lng
📞 Contact phone, additional_phone, website, email, email_status, email_verified_at
🔗 Social facebook, instagram, linkedin, twitter, tiktok, whatsapp, youtube, pinterest
⭐ Reputation score, ratings, reviews_per_score_1 to _5, reviews_tags, reviews_link
🏪 Business opening_hours, is_verified, owner_name, booking_link, payment_methods, is_temporarily_closed

Pricing

Everything is priced per function in credits, so you only pay for what you switch on.

A credit costs $2 per 1,000 on the Starter plan and $0.50 per 1,000 on Team, and the rest of the plans are on the pricing page.
lobstr.io pricing simulator for the Google Maps Leads Scraper showing the credit cost of each function
  1. Free tier: 100 credits on signup, plus 2,000 more through the community rewards program
  2. Entry: $10 / 1,000 for a full lead record with verified emails
  3. At scale: $2.50 / 1,000 for the same thing

And a business with no email to find costs nothing on the email steps. So how do you plug it in?

How to connect lobstr.io's MCP to Claude

You can use it on claude.ai, Claude Desktop and Claude Code, and it's the same endpoint for all three.

On claude.ai and Claude Desktop

Open Settings, then Connectors, click Add and choose Add custom connector. Name it lobstr.io, paste in
https://mcp.lobstr.io/mcp
and hit Continue.
On claude.ai and Claude Desktop

Pro tip

That trailing /mcp matters. Leave it off and nothing connects
Claude detects the rest on its own: Sign in now for authentication and Register automatically for the OAuth client. Leave both as they are and hit Add.

Claude then checks the connection and tells you you're not connected to lobstr.io yet.

Click the button under that message, and it sends you to lobstr.io's consent page, where you're already signed in. Five permissions show up:

  1. crawlers:read ... discover and inspect scrapers
  2. runs:read ... monitor run status
  3. results:read ... read your scraped data
  4. account:read ... see your account and credits
  5. runs:execute ... launch runs, which spends credits
Hit Allow and you're back in your chat with the connector live. There's no API key to copy anywhere. Approval happens on lobstr.io's own site, so no credential ever reaches Claude.

On Claude Code

It's one command:

claude mcp add --transport http lobstr https://mcp.lobstr.io/mcp
f

The first time you use it, the same approval opens in your browser.

The Claude integration guide has videos for every setup, and if you'd rather drive the scraper from code than from a chat, the Python walkthrough covers that.

ChatGPT works too, it just needs a bit more setup.

How to connect lobstr.io's MCP to ChatGPT

One thing before you start: you need Developer mode on.

Without it, the option to add your own plugin doesn't show up at all, and you'll spend ten minutes looking for a button that isn't there.

Step 1: Turn on Developer mode

Go to Settings, then Plugins, then Developer mode, and switch it on.

Step 2: Add the plugin

Back in Plugins, add a new custom plugin. Name it lobstr.io, set the server URL to
https://mcp.lobstr.io/mcp
and pick OAuth for authentication.
Tick I understand and want to continue, then hit Create.
Step 2: Add the plugin
You'll get the same lobstr.io consent page with the same five permissions. Hit Allow. The MCP docs list every tool the plugin exposes, if you want to see what you're granting.

Step 3: Switch it on in the chat

This is the one step Claude doesn't need: turn the plugin on in the conversation where you want to use it.

On Business and Enterprise workspaces, an admin may have to approve it first, and the ChatGPT integration guide has videos for all of this.

Once it's connected, it works the same way in Claude, ChatGPT or any other AI app that supports MCP.

How to use lobstr.io's Google Maps MCP

There's nothing to learn here.

You ask for what you want in plain English, and the AI does the rest in the background: it picks the scraper, sets the filters, runs it and hands you a file to download.

Start with a simple prompt

Start every prompt with "Use lobstr.io". Claude has its own Places tool and may reach for it first, and you might have other MCPs connected too.

Here's the prompt for my Chicago list:

Use lobstr.io to find every dentist in Chicago with more than 100 reviews. Run one search per Chicago ZIP code, get their emails and verify every one.
f

The ZIP code part is there for a reason.

My first try was one search for "Chicago", and it found only 58 dentists, fewer than Claude's 132. 🤦

One Maps search tops out at 200 listings, so a whole city doesn't fit in one search.

One lobstr.io search for Chicago found 58 dentists with 100+ reviews, while 56 searches, one per Chicago ZIP code, found 757

Splitting the city into 56 ZIP codes is what got it to 757.

Then add filters. The scraper has one for most of the cleanup you'd otherwise do by hand, and you reach every one of them just by asking.

These are the ones I'd start with, and the filtering guide covers all of them.
Four Google Maps Leads Scraper filters and the lead list each one builds, from unclaimed listings to one chain across a city

Businesses with or without a website

If you're a web designer or an SEO agency, a business with no website is your best lead.

Use lobstr.io to find plumbers in Austin, Texas that don't have a website.
f
You can flip it and keep only the ones that do have a website, with the website filter. Phone numbers work the same way if you'd rather call than email, through the phone filter.

Only places that are still open

Nothing wastes outreach like pitching a business that shut down last year.

Use lobstr.io to find every coffee shop in Manchester, UK, and skip any place that's closed.
f
The skip closed places filter drops businesses marked temporarily or permanently closed.

Claimed or unclaimed listings

If you're a local SEO consultant, a business that never claimed its Google profile is an easy opener.

Use lobstr.io to find hair salons in Miami that haven't claimed their Google Business Profile.
f
You can also keep only owner-claimed listings, with the claimed status filter. It pairs well with my Google Maps lead generation playbook.

Only businesses with an email

If email is your only channel, there's no point getting rows you can't reach.

Use lobstr.io to find accountants in Toronto, only keep the ones with an email, and verify the emails.
f
The only leads with emails filter keeps only businesses where an email was found.

Ratings and reviews

Businesses with a low rating already know they have a reputation problem.

Use lobstr.io to find restaurants in Chicago rated 3.5 stars or lower.
f
You can set a minimum or maximum for both the rating and the review count. Pair it with the Maps rank checker and your pitch comes with proof.

Geo Match, Category Match and Exact Name Match

Geo Match keeps only businesses within 50 km of the place you searched. Google Maps likes to throw in results from far away, sometimes from another country, and this cuts them out.

Category Match keeps only businesses that match what you searched for, even when Google lists them in another language or under a similar name. So "Plumbing Service" still counts as a plumber.

Exact Name Match is for chasing one brand or chain. It keeps a business when your search appears anywhere in its name, whatever the capitals or accents.

One catch: when you're hunting a brand, turn Category Match off. A brand name usually isn't a Google category, so Category Match drops it before Exact Name Match even sees it.

Use lobstr.io to find every Precision Dental Care location in Chicago. Use exact name match and turn category match off.
f

In my Chicago run, Precision Dental Care alone had eight locations.

Mix and match

You can combine filters in one prompt too:

Use lobstr.io to find dentists in Houston that are still open, have no website and haven't claimed their Google profile. Only keep the ones with a phone number.
f
When the file's ready, you can send it to Google Sheets, S3, SFTP, a webhook, or Make for enrichment and sequencing.
If you'd rather click buttons than chat, the no-code walkthrough covers the same job in the dashboard.

What did I end up with?

Back to my Chicago prompt. Here's the same request, three answers, side by side:

Comparison of Claude, ChatGPT and lobstr.io on the same ask: 132, 185 and 757 Chicago dentists with 100+ reviews, with websites, emails and reviews per tool

757 dentists with more than 100 reviews, across Chicago and the areas around it. That's more than four times ChatGPT's 185 and almost six times Claude's 132.

And each row has a lot more on it. 737 of them have a website, 754 a phone number and 435 a Facebook page. Here's one of them, with the details that matter when you're qualifying a lead:

One Chicago dentist from the lobstr.io run, Floss & Co. on Archer Ave: phone, bounce-verified email, website, booking link, socials, opening hours, a 4.8 rating from 1,089 reviews with the star breakdown and review tags, claimed and open status, payments and accessibility

Then there's the part neither chatbot could give me: 322 dentists came with an email that passed the bounce check.

Not every email was that clean, though. Vivid Smiles Chicago's website had a template placeholder nobody ever replaced, john@doe.com, right next to its real address.
It looks like a real email, and it would bounce the moment you sent to it. The verifier marked it invalid and the real one valid. This is exactly why bounce verification matters.

And it wasn't a one-off. About one email in ten came back invalid, so that's one in ten you won't waste a send on.

What else can you ask for?

The leads are only the start. The same chat can pull a lot more on the businesses you just found.

All their Google reviews

The same 757 Chicago dentists: 322,262 reviews via the Google Maps Reviews Scraper against 3,785 at five snippets per listing, about 1.2%

My 757 dentists have 300k+ reviews between them.

I can ask Claude to chain the Google Maps Reviews Scraper and get every one of them, not just five per dentist.
lobstr.io Google Maps Reviews Scraper store page: scrape all reviews from a Google Maps local business

Their social media profiles and posts

The scraper hands you each business's social profiles too.

Ask Claude or ChatGPT to use lobstr.io on those links and it'll pull the profile, what the business posts and the comments under it:

  1. Facebook: the business page and the comments on its posts
  2. Instagram: the profile, its posts and reels, and their comments
  3. X: the profile, every tweet and its followers
  4. YouTube: the channel, its videos, their comments and transcripts
  5. LinkedIn: the company page, its employees, its posts and who comments on them
  6. TikTok: the profile, every video it posted and their comments
  7. Pinterest: every pin from the business's profile or boards

A detailed profile on every lead

Remember the agencies in that Reddit post, paying $40 to $80 a lead? This is where you leave that behind.

If you're a data-pagloo like me 😁, or you want to study every bit of a prospect before you reach out, you can run a multi-agent Claude or ChatGPT workflow.

One search goes in, the agents pull the reviews, socials, posts, engagement and comments, and you get a detailed profile per lead with everything you need for the first touch.

An example multi-agent setup: a Claude supervisor runs the lobstr.io Google Maps search, one collector and analyst agent per source (Maps listing, reviews, Facebook, Instagram, X and more), a compiler agent builds one profile per lead, and an outreach strategist returns pain points, a pitch draft and where to reach them

Tbh, that whole workflow would cost you 10x less per lead than what those agencies pay, AI costs included.

If you want me to cover this entire workflow for an industry where it's most feasible and profitable, ping me on LinkedIn.

Still have questions? Let's go through them.

FAQs

Is there an official Google Maps MCP server?

Yes, two, but neither returns contact data, because Maps Code Assist helps developers write Maps code and Maps Grounding Lite returns Place IDs, coordinates and AI summaries.

Google's terms also forbid storing what either returns.

Why can't Claude or ChatGPT just do this already?

Their built-in search finds places, not leads, so you get names and addresses but no emails. On the same prompt they found 132 and 185 Chicago dentists, against 757 from live Google Maps.

Public business data sits on firmer ground than most people assume, though terms of use and state-law claims add real nuance.

I went through all of it in Is Scraping Google Maps Legal?, and the legal series covers the neighboring platforms.

Do I need a Google API key?

No, there's nothing to paste anywhere, because the connection runs on OAuth, approved on lobstr.io's own site, so no credential reaches Claude or ChatGPT.

How much does 1,000 leads cost?

$2.50 per 1,000 at scale and $10 per 1,000 at entry, for a full record with verified emails. A business with no email to find costs nothing on the email steps.

Can I search by ZIP code or neighborhood?

Yes, one task per area, from a whole country down to a single ZIP code.

Each search returns up to 200 listings, so split a big city the way I split Chicago, and the Maps search URL generator helps if you'd rather build the searches yourself.

Can I try it without paying?

Yes, 100 free credits on signup, and another 2,000 for sharing an honest opinion about lobstr.io through the community rewards program.

Does it work in ChatGPT as well as Claude?

Yes, once Developer mode is on, because ChatGPT only lets you add a custom plugin with it switched on. Claude doesn't need it, and the prompts are the same in both.

Final thoughts

I started with one simple ask. ChatGPT gave me somebody else's directory, Claude gave me an honest but incomplete 132, and Google's own MCP servers gave me a terms-of-service quote.

None of them are broken. They're built for "where's the nearest dentist?", not "every dentist in the city with an email that won't bounce".

That's a scraper's job, and with an MCP in front of it, you can still ask for it in plain English.

So grab the free credits and try it on your own city. 🦞

If you want a hand building the agent around it, ping me on LinkedIn.

Related Articles

Related Squids