SuperAPI AI 工具集

google-maps-mcp

这是一个由 HasData 托管的 Google Maps MCP(模型上下文协议)服务器,让 Claude、Cursor、Windsurf 等 MCP 客户端以结构化 JSON 读取 Google Maps 数据。它提供搜索地点、读取地点详情、抓取评论、照片、帖子以及查看单个评论者历史等六个只读工具,无需创建 Google Cloud 项目或启用结算。默认每月提供 1,000 免费额度(无需信用卡),按每次成功调用消耗额度计费。

访问官网

工具介绍

用途

这是由 HasData 托管的 Model Context Protocol(MCP)服务器,向 Claude、Cursor、Windsurf 及任何其他 MCP 客户端提供六个只读的 Google Maps 工具。它让 AI 客户端能够搜索地点、读取单个地点的完整信息,获取其评论、照片和帖子,并沿着单个评论者的历史进行追溯,全部以结构化 JSON 返回,无需创建 Google Cloud 项目,也无需启用结算。

主要能力

服务器暴露六个只读工具:

搜索 Google Maps(hasdata_google_maps_search_performMapSearch):按 Google Maps 的排名返回某查询词的地点结果,每条结果带有 position、title、placeId、dataId、address、gpsCoordinates、rating、reviews、type、types、price、website、thumbnail、openState、workingHours、serviceOptions,以及 Google 显示菜单时的菜单链接。位置信息放在 ll 参数而非查询词中,ll 包含地图中心与缩放级别;仅写“coffee”会返回 Google 判定的任意位置,缩放数字决定结果覆盖范围。

获取地点详情(hasdata_google_maps_place_getPlaceDetails):按 placeId 返回单个地点的完整记录,包含搜索结果中的相同字段,并额外返回 images 数组。

获取地点评论(hasdata_google_maps_reviews_getMapReviews):分页返回某地点的评论流,包含 placeInfo、topics 数组、reviews 数组和 pagination。每条评论带有 reviewId、rating、snippet、date、isoDate、link、images、user 对象,以及店主回复时的 response。topics 是 Google 对评论提及内容的聚类,含 keyword 与 mentions 计数;把某个 topic 的 id 作为 topicId 传入,可只读取提及该主题的评论。每条评论的 user 带有 contributorId,即评论者工具的输入,因此“谁写了这条评论”只需一次调用即可转到“他写过的全部评论”。

获取评论者的评论(hasdata_google_maps_contributor_reviews_getMapReviews):返回某个人在所有他评过的地方写下的每条评论。响应含 contributor 对象(name、level、points 及贡献细分)和 reviews 数组,每条评论自带 placeInfo,无需第二次查询即可知道评论针对哪个地点。该工具读取一个人的公开评论历史,使用时需遵守 Google 条款及适用的法律。

获取地点照片(hasdata_google_maps_photos_getMapPhotos):返回某地点的照片流,含 categories 数组(All、Latest、Videos、Menu 及地点专属分类)、photos 数组(每条含 image 与 thumbnail URL)和 pagination。

获取地点帖子(hasdata_google_maps_posts_getMapPosts):返回商家在 Google 列表上自己的帖子和更新,含 posts 数组。该工具不分页,评论和照片接受 nextPageToken,而它不接受,只返回列表显示的内容。多数地点不发布帖子,因此空 posts 数组是常见情况。

使用方式

这是一个远程 MCP 服务器,基于 streamable HTTP,支持自定义请求头。需要一个会说 streamable HTTP 并支持自定义请求头的 MCP 客户端,以及一个 HasData API 密钥(可在 dashboard 免费创建,无需信用卡)。最简单的接入方式是使用 URL 和一个请求头,无需运行容器、无需 Google Cloud 项目或 API 密钥。仅支持 stdio 的客户端可使用 @hasdata/google-maps-mcp(npm)或 hasdata-google-maps-mcp(PyPI)启动器。

服务器 URL 对所有客户端相同。Claude Desktop 只从配置文件加载本地(stdio)服务器,因此通过 stdio 启动器连接远程服务器,@hasdata/google-maps-mcp 包即为该启动器,从环境变量读取密钥;Python 环境可用 PyPI 包,由 uvx 运行,无需手动安装。支持 OAuth 的客户端可以把该 URL 添加为连接器并登录,无需在配置文件中放入密钥。Cursor、Windsurf、VS Code、Gemini 等客户端按各自文档的远程服务器格式配置。

搜索结果自带 placeId 和 dataId,因此详情、评论、照片和帖子调用无需单独的解析步骤;评论自带作者的 contributorId,可一次调用跳转到该人的全部历史。通过 apis 参数可指定暴露的工具列表:?apis=google_maps 只暴露这六个工具,?apis=google_maps,google_serp 会同时加入 Google 搜索,不传该参数则返回 HasData 当前暴露的全部 57 个工具。

服务器还提供 2 个提示词(prompts)和 4 个资源(resources),每个资源对应一个取值为固定列表的参数,URI 格式为 hasdata://google_maps/<parameter>,读取不消耗额度。提示词和资源列表均无需 API 密钥即可读取。

错误处理方面,工具调用几乎不会向客户端返回 HTTP 错误码,MCP 层返回 200 并把失败放在结果里,isError 设为 true,原因以文本形式给出。错误的密钥表现为工具输出中的 401 Unauthorized,而非连接失败。唯一的真实 HTTP 错误是缺少密钥,授权在任何工具之前执行,连接本身以 401 失败。参数不符合 schema 会在发出请求前被拒绝,返回 MCP error -32602: Input validation error 并指出字段名,不抓取也不计费。评论、照片、帖子调用需要传入 placeId 或 dataId,两者都不传会返回 422 并同时指出两个字段。无法解析的地点 id 会返回 400 Bad Request,requestMetadata.status 为 error。空 posts 属于真实数据,调用成功且 status 为 ok。

适用场景

适用于需要让 AI 客户端读取 Google Maps 公开数据的场景:地点搜索与信息整理、评论与主题分析、评论者可信度与评论网络研究、地点照片与商家帖子获取等。搜索、地点详情、评论、评论者评论和照片每次成功调用消耗 10 credits,帖子同样为 10 credits;响应大小不影响价格。免费档每月 1,000 credits、无需信用卡,相当于按 10 credits 费率约 100 次调用,随计费周期重置。付费方案起价每月 $59,含 200,000 credits。方案还决定并发数:免费档每次 1 个请求,Startup 5,Basic 15,Growth 档从 50 到 500。并发是唯一限流,没有单独的每分钟请求上限。分页每次消耗一次调用。

限制

该服务器不做路线规划、不做地理编码、不做地址验证、不做距离矩阵,也没有任何写入操作,只读取地图展示给访问者的内容。如果需要路线或把地址转换为坐标,应使用 Google Maps Platform;如果需要超出前几条的完整评论流、单个评论者在其评过的所有地点的历史、照片流或商家帖子,则 Platform 不提供而本服务器可以。它读取的是一个人的公开评论历史,使用时需遵守 Google 条款及适用法律。