Google Maps MCP Server
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
A hosted Model Context Protocol (MCP) server that gives Claude, Cursor, Windsurf and any other MCP client six read-only Google Maps tools. Search places, read a place in full, pull its reviews, photos and posts, and walk a single reviewer's history, all as structured JSON, with no Google Cloud project and no billing to enable.
**1,000 free credits every month, no card required**, which is 100 calls at the 10-credit rate.
- Prompts and resources
Contents
- What you need
- Quick start
- Example prompts
- Tools
- Errors and failure paths
- Pricing, free tier and limits
- Tool selection
- How it compares
- FAQ
- HasData links
- Development
- Contributing
- License
What you need
An MCP client that speaks streamable HTTP with custom headers. A HasData API key from the dashboard, free to create with no card, and the free tier covers about 100 calls a month at the 10-credit rate. Nothing else. This is a remote server, so the simplest path is a URL and a header, with no container to run and no Google Cloud project or API key anywhere in the flow. A stdio-only client can use the @hasdata/google-maps-mcp (npm) or hasdata-google-maps-mcp (PyPI) launcher instead.
Quick start
| | |
| :--- | :--- |
| URL | https://mcp.hasdata.com/mcp?apis=google_maps |
| Transport | HTTP, streamable |
| Auth header | x-api-key: HASDATA_API_KEY |
The server URL is the same for every client. We run it hands-on in Claude Code and Claude Desktop. The other blocks follow each client's own documented format for a remote server.
Clients with OAuth support can add the same URL as a connector and sign in without putting a key in a config file.
Claude Code
Claude Desktop
Claude Desktop loads only local (stdio) servers from its config file, so it reaches a remote server through a stdio launcher. The @hasdata/google-maps-mcp package is that launcher, and it reads the key from the environment.
claude_desktop_config.json:
Python instead of Node? Swap the launcher for the PyPI package, which uvx runs without a manual install:
A client with OAuth support can instead add the URL as a custom connector and skip the launcher.
Cursor
.cursor/mcp.json:
Windsurf
~/.codeium/windsurf/mcp_config.json:
Cline
VS Code
.vscode/mcp.json:
Gemini CLI
~/.gemini/settings.json:
Example prompts
Each of these is one tool call unless the count says otherwise.
> Search Google Maps for coffee near downtown Seattle and give me the top ten with their rating, review count and website.
*One call, 10 credits. Search returns the places with placeId and dataId already attached, and the follow-ups below need no lookup step.*
> Pull the full details for ChIJAb0KE0RrkFQRuI4X0By5Mcw: hours, service options, price level and the menu link.
*One call, 10 credits.*
> Read the latest reviews for that place, sorted newest first, and tell me which topics come up most.
*One call, 10 credits. The response carries Google's own topic clusters with a mention count each, and the ranking is in the data.*
> Take the author of the top review and list every other place they have reviewed, with the rating they left.
*One call, 10 credits. A review carries its author's contributorId, which is exactly what the contributor tool takes.*
> Get the photo feed for that place and the business's recent posts.
*Two calls. Photos and posts cost 10 credits each.*
Two things make these chains cheap. Search hands back placeId and dataId on every result, and the detail, review, photo and post calls need no separate resolve step. And a review carries the author's contributorId, which turns "who left this review" into a one-call jump to that person's whole history.
Tools
| Tool | What it returns |
| --- | --- |
| hasdata_google_maps_contributor_reviews_getMapReviews | Per-review rating, text, date, place name, place address, placeId, photos, and owner responses. 10 credits a call |
| hasdata_google_maps_photos_getMapPhotos | Each photo with image URL, thumbnail, upload date, uploader, and photoId. 10 credits a call |
| hasdata_google_maps_place_getPlaceDetails | Name, address, coordinates, phone, website, categories, hours, rating, review count, price level, photos, popular times, attributes/amenities, plus_code, and map URL. 10 credits a call |
| hasdata_google_maps_posts_getMapPosts | Per-post title, description, image, posted_at, link, and source/business name. 10 credits a call |
| hasdata_google_maps_reviews_getMapReviews | Per-review author name and profile link, star rating, text, published/relative date, likes count, owner response, attached photos, and local-guide flag. 10 credits a call |