Google Maps MCP Server
Connect your AI agents to HasData's Google Maps MCP server. Scrape local packs, place details with phone and hours, and reviews with photos in structured JSON over streamable HTTP.
https://mcp.hasdata.com/api/mcp?apis=google_maps - Transport
- Streamable HTTP
- Auth
- OAuth or API key
- Tools
- 6 Google Maps tools
- Price
- 5–10 credits / call


See the Google Maps MCP server in action
Select a sample prompt to inspect the tool it chooses and the JSON payload your agent receives.
Find dental clinics in central Austin
Tell me everything about Swish Dental Downtown in Austin
What do the newest reviews of Swish Dental Downtown say?
Show me the photos on the Swish Dental Downtown listing
Has Swish Dental Downtown posted any offers on its listing?
Does the reviewer who gave Swish Dental one star leave a lot of them?
The Google Maps tools your agent can call
6 toolsSix tools that chain. Search returns a placeId, and every other tool takes that id, so an agent finds a business once and then reads its details, reviews, photos and posts without searching again.
+ hasdata_google_maps_search_performMapSearch The local pack for a query 4 params 5 credits
Try| Parameter | Type | Required | Example |
|---|---|---|---|
| q | string | required | "dental clinic Austin" |
| ll | string | optional | "@30.2672,-97.7431,12z" |
| start | number | optional | 20 |
| hl | string | optional | "en" |
- position
- title
- placeId
- dataId
- kgmid
- phone
- address
- website
- rating
- reviews
- type
+ hasdata_google_maps_place_getPlaceDetails One place in full, by placeId 3 params 5 credits
Try| Parameter | Type | Required | Example |
|---|---|---|---|
| placeId | string | required | "ChIJN1t_tDeuEmsRUsoyG83frY4" |
| domain | string | optional | "google.co.uk" |
| hl | string | optional | "en" |
- title
- address
- phone
- website
- types
- workingHours
- openState
- rating
- reviews
- plusCode
- serviceOptions
- menu
+ hasdata_google_maps_reviews_getMapReviews Reviews of a place, sorted 4 params 5 credits
Try| Parameter | Type | Required | Example |
|---|---|---|---|
| placeId | string | optional | "ChIJN1t_tDeuEmsRUsoyG83frY4" |
| sortBy | enum | optional | "newestFirst" |
| topicId | string | optional | "cleanliness" |
| nextPageToken | string | optional | "CAESY0N…" |
- placeInfo
- topics
- rating
- date
- isoDate
- user
- images
- reviewId
+ hasdata_google_maps_photos_getMapPhotos Photos of a place, by category 3 params 5 credits
Try| Parameter | Type | Required | Example |
|---|---|---|---|
| placeId | string | optional | "ChIJN1t_tDeuEmsRUsoyG83frY4" |
| categoryId | string | optional | "menu" |
| nextPageToken | string | optional | "CAESY0N…" |
- categories
- thumbnail
- image
- pagination
+ hasdata_google_maps_posts_getMapPosts A business's own posts and offers 3 params 10 credits
Try| Parameter | Type | Required | Example |
|---|---|---|---|
| placeId | string | optional | "ChIJN1t_tDeuEmsRUsoyG83frY4" |
| dataId | string | optional | "0x89c25a…" |
| nextPageToken | string | optional | "CAESY0N…" |
- source
- postId
- title
- description
- image
- createdAt
- postedAt
- shareUrl
- postUrl
+ hasdata_google_maps_contributor_reviews_getMapReviews Every review one person has left 3 params 5 credits
Try| Parameter | Type | Required | Example |
|---|---|---|---|
| contributorId | string | required | "104839261748301946283" |
| num | number | optional | 50 |
| nextPageToken | string | optional | "CAESY0N…" |
- contributor
- rating
- date
- isoDate
- placeInfo
- reviewId
- link
Calls cost 5 to 10 credits depending on the tool. Failed calls are not billed.
One endpoint, any MCP client
Config blocks for Claude Desktop, Cursor, VS Code, Windsurf and Claude Code, in each one’s native format. Authenticate with browser OAuth or an x-api-key header.
Claude Code
hasdata-google-maps · connected · 6 toolsCursor
hasdata-google-maps · 6 tools enabledClaude Desktop
hasdata-google-maps · connected · 6 toolsVS Code / Copilot
hasdata-google-maps · running · 6 toolsWindsurf
hasdata-google-maps · 6 toolsCodex CLI
hasdata-google-maps · 6 toolsRaw HTTP / curl
{ "tools": [ … 6 items ] }Google Maps plus whatever else you need
Name the services in the query string and the server exposes only their tools. Every one draws from the same key and the same balance.
Free on GitHub, paid in hours
Anyone can clone a free MCP to scrape Google Maps. Whether that stays free depends on the shape of your project.
A script I run once
A weekly report
A pipeline in production
A feature in my product
One balance, every interface
A flat monthly price against a known credit ceiling. Move up a plan when you outgrow it.
Free
Startup
Basic
RecommendedGrowth
Monthly tool call volume
Custom price based on required volume
Past 20M credits a month, or terms the self-serve plans do not cover. We shape the contract around your workload.
Before you wire it in
Do I need a Google Cloud project or a Places API key?
No. The only credential is your HasData key. Every tool reads the public Google Maps pages a signed-out visitor sees, so there is no billing account to enable and no per-field pricing to model.
Why does one tool cost more than the others?
Because they are separate endpoints with separate costs. Five of the six bill 5 credits per successful call and the posts tool bills 10. The table above states the figure per tool rather than quoting one number for the whole server.
How do the six tools fit together?
Search is the entry point and returns a <code>placeId</code> for each result. Details, reviews, photos and posts all take that id, so an agent searches once and then reads as deep as it needs on a specific business.
Why is placeId not marked required on some tools?
Because those tools accept either a <code>placeId</code> or a <code>dataId</code>, and the schema cannot express one-of-two. Send one of them. Sending neither returns an error rather than a random place.
Can I read every review a single person has written?
Yes, that is the contributor tool. Give it a contributor id and it returns their whole review history with the place each one is attached to, which is how patterns across a reviewer’s activity become visible.
How fresh is the data? Is anything cached?
Every tool call fetches the page at that moment, so hours and ratings are current. Nothing is served from a cache.
How many calls can run in parallel?
One on the free tier, five on Startup, fifteen on Basic, and fifty on Growth. The larger Growth volumes raise it to 200, 300 and 500.
What happens when I run out of credits?
Nothing is charged on top of the plan. Calls stop until the billing cycle renews.
Does it work with Claude Desktop, Cursor, VS Code and Claude Code?
Yes, all four, plus anything else that speaks MCP over streamable HTTP. Claude Desktop connects through OAuth, and the rest take the URL and an API key header.
Is HasData affiliated with Google?
No. HasData is an independent service and is not affiliated with, endorsed by, or sponsored by Google LLC. Google Maps is a trademark of its respective owner.