用途
google-images-mcp 是一个托管的 Model Context Protocol(MCP)服务器,为 Claude、Cursor、Windsurf 及其他 MCP 客户端提供一个只读的 Google Images 工具,让 AI 代理无需浏览器或爬虫库即可对图像搜索结果进行推理。它读取的是未登录访客所看到的 Google Images 结果页面。
主要能力
- 单工具图像搜索:以文本查询执行搜索,一次调用返回 100 条结果。
- 过滤:通过 Google 自身的 tbs 过滤字符串,支持按尺寸、颜色和类型过滤;多个过滤条件用逗号组合。示例:
isz:l获取大图;isz:lt,islt:2mp获取大于 1600×1200 的图像;isz:ex,iszw:1000,iszh:1000获取正好 1000×1000 的图像。 - 返回字段:结果数组
imagesResults,每条包含position、title、图像所在页面的link、站点名称source、Google CDN 上的thumbnail、全分辨率文件original以及originalWidth和originalHeight。 - 资源:服务器暴露 5 个资源,每个对应一个接受固定值列表的参数,URI 形式为
hasdata://google_images/<parameter>。读取资源不消耗额度,且该列表无需 API 密钥即可获取。 - 无自托管:远程服务器,无需运行容器。客户端若有 OAuth 支持,可将同一 URL 作为连接器添加并登录,无需在配置文件中放密钥。
使用方式
需要一个 MCP 客户端,以及从 HasData 仪表板获取的 API 密钥(创建免费、无需信用卡)。
远程服务器 URL 对所有客户端相同:https://mcp.hasdata.com/mcp?apis=google_images
OAuth 支持的客户端(如 Claude):设置 → 连接器 → 添加自定义连接器 → 粘贴上述 URL 并登录。
配置文件方式:Claude Desktop 仅加载本地(stdio)服务器,因此需通过 stdio 启动器连接远程服务器。npm 包 @hasdata/google-images-mcp 即为该启动器,它从环境变量读取密钥。将其添加到 claude_desktop_config.json。若使用 Python 而非 Node,可改用 PyPI 包,由 uvx 运行而无需手动安装。
Cursor:~/.cursor/mcp.json(所有项目)或 .cursor/mcp.json(单个项目)。
Windsurf:~/.codeium/windsurf/mcp_config.json,注意其字段名是 serverUrl 而非 url。
VS Code:工作区中的 .vscode/mcp.json。
示例提示词
- 查找 Austin 天际线的图像,给我宽度超过 1500 像素的。
- 哪些网站在为这个产品名提供图像排名?
- 为该查询获取黑白照片,跳过剪贴画和线条图。
- 从德国 Google 搜索该查询,并与美国来源比较。
- 查找该地标的图像,并告诉我哪些是库存照片。
- 拉取该查询的下一页结果。
每次调用可回答上述问题,因为一页包含 100 条结果;只有超过 100 条时才需要翻页。
适用场景
- 让 AI 代理分析图像搜索结果的来源站点、尺寸分布或类型分布。
- 按尺寸或颜色过滤图像,用于素材筛选。
- 跨不同地区(domain、gl、hl)比较搜索结果。
- 与其它 HasData API 搭配使用:一个密钥覆盖所有服务,通过
apis参数在同一连接中提供多套工具,例如指向?apis=google_images,google_serp可同时获得两者,或指向mcp.hasdata.com/mcp获得完整目录。
限制与注意事项
- 仅支持按文本查询,不支持以图搜图(反向图像搜索是另一个端点)。
original是第三方 URL,可能失效、被防盗链屏蔽或响应缓慢,应防御性获取,并以thumbnail(由 Google CDN 提供)作为回退。thumbnail是真实 URL 而非 data URI,显示时仍需向 gstatic.com 发起请求。- 一页携带 100 条结果而非 10 条;费用按调用计而非按结果计。
ijn从零开始,传入 1 得到的是第二页而非第一页。 originalWidth和originalHeight描述的是original文件,而非缩略图,本地尺寸过滤需读取这些字段。tbs值由 Google 定义,无法识别的值会被忽略而非拒绝,因此手工拼接的过滤字符串需验证结果是否真的收窄。domain、gl和hl是三个独立维度:域名是哪个 Google 应答,国家代码是搜索来源地,语言是界面语言;更改其中一个对结果的影响可能小于预期。- 携带数据的结果还带有
requestMetadata.id,可在支持时引用。 - 计费:Google Images 工具每次成功调用花费 10 额度,与响应大小无关;非 200 返回不计费,但成功但无结果的调用仍计入。免费层每月 1,000 额度、无需信用卡,约等于 100 次调用,随计费周期续期。付费计划从每月 59 美元、200,000 额度(20,000 次调用)起,单价随用量下降:入门计划每 1,000 次调用 1.48 美元,Basic 为 0.60 美元,Growth 各档为 0.41 美元。当前数字以定价页面为准。
- 并发限制:免费层 1 个请求/次,Startup 5,Basic 15,Growth 各档为 50 至 500。在无人值守场景中遇到 429 应使用退避重试。
- 与 Google 官方 Custom Search JSON API 相比:后者是可编程搜索引擎,覆盖范围限于你配置的站点,在控制站点时低流量下免费且更合适;本工具读取的是公开 Google Images 页面。Google 未发布官方 Google Images MCP 服务器,本服务由 HasData 维护,与 Google 无关联、未获其背书或赞助。
- 使用限制:结果返回查询匹配的任何内容,命名某人的查询会返回该人的图片,
itp:face专门请求人脸。可识别个人图像属于个人数据,在若干司法管辖区生物特征处理受到单独且更严格的监管,构建人脸集前需认真评估。图像是否可以下载、存储或复用属于版权问题,Google 索引了该图像并不代表可以使用。
测试与许可
test/ 中的测试断言工具契约,包括 ?apis=google_images 返回预期的单一工具、名称未变、仍要求 q 且带有描述、README 记录的过滤与定向参数仍在 schema 中,以及所用密钥被实际接受(该检查会真实调用工具并花费 10 额度)。另有一项测试断言实时搜索返回的结果同时携带 original 及其尺寸。契约套件每周按计划运行,因为上游工具列表可能在无人改动本仓库的情况下变化。许可为 MIT,见 LICENSE。
其它
其它 HasData MCP 服务器:Google Search、Google Maps、Google Trends、Google Flights、Bing、DuckDuckGo、YouTube、TikTok、Instagram、Amazon、Walmart、Shopify、Yelp、Yellow Pages、Zillow、Redfin、Airbnb、Booking.com、Indeed、Glassdoor。