关于 Google Custom Search MCP
Google Custom Search MCP 通过 Programmable Search Engine 为 AI 应用提供网页和图片搜索,适合按主题或条件检索内容。搜索范围由搜索引擎配置决定,并支持分页与原始 API 请求。
主要功能
- 01网页搜索
- 02图片搜索及缩略图
- 03按语言、国家、日期和站点筛选
- 04分页浏览结果
- 05通过原始 GET 请求调用 API
- 06只读操作
适用场景
- 01查找近期主题文章
- 02仅搜索指定网站
- 03查找特定语言或日期的页面
- 04按尺寸查找主题图片
MCP 相关
作为 MCP 服务,它向客户端提供网页搜索、图片搜索及原始 Custom Search API GET 请求工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y mcp-google-custom-searchGOOGLE_CUSTOM_SEARCH_API_KEY密钥Google Cloud API key with the Custom Search API enabled. Treat it as a secret.GOOGLE_CUSTOM_SEARCH_ENGINE_IDDefault Programmable Search Engine id (cx). Tools accept a per-call engine_id override.GOOGLE_CUSTOM_SEARCH_API_BASEAPI root override.GOOGLE_CUSTOM_SEARCH_TIMEOUT_MSPer-request timeout in milliseconds.GOOGLE_CUSTOM_SEARCH_MAX_RETRIESRetries on transient errors (429, and 5xx/network — the API is idempotent GETs only).本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
3收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| num | integer | 否 | 每页结果数,1..10(API 上限为 10;默认值为 10)。 |
| safe | enum | 否 | 安全搜索:active 会过滤成人内容,off(API 默认值)则不会。off | active |
| sort | string | 否 | 排序表达式,例如 "date" 表示按最新时间优先。留空则按相关性排序(通常效果更好)。 |
| query | string | 是 | 搜索查询,支持 Google 语法(引号、site:、filetype:、OR、-排除词)。 |
| start | integer | 否 | 结果的起始索引(从 1 开始)——请使用上一页返回的 next_start/previous_start。每个查询的 API 最多返回 100 条结果,因此 start + num - 1 必须不超过 100(系统会强制执行:超出范围的请求将被拒绝,且不消耗配额)。 |
| rights | string | 否 | 许可证筛选条件:cc_publicdomain、cc_attribute、cc_sharealike、cc_noncommercial、cc_nonderived(使用 | 组合)。 |
| country | string | 否 | 地理位置偏向——将结果排序为仿佛从该国家/地区进行搜索,例如 "de"。仅作为弱信号。 |
| language | string | 否 | 仅返回此语言的结果,例如 "en"、"de"、"zh-CN"。 |
| or_terms | string | 否 | 以空格分隔的词语——每个结果都必须至少包含其中一个词语。 |
| engine_id | string | 否 | 用于搜索的 Programmable Search Engine ID(cx),覆盖已配置的 GOOGLE_CUSTOM_SEARCH_ENGINE_ID。省略则使用已配置的引擎。 |
| file_type | string | 否 | 仅返回此类型的文件,例如 "pdf"、"xlsx"、"svg"。 |
| exact_terms | string | 否 | 每个结果都必须包含的短语。 |
| site_search | string | 否 | 要包含或排除的网站或域名,例如 "example.com"——需与 site_search_filter 配合使用。 |
| date_restrict | string | 否 | 仅返回最近 N 天/周/月/年的结果:"d7"、"w2"、"m6"、"y1" 等。 |
| exclude_terms | string | 否 | 任何结果都不得包含的词语或短语。 |
| include_pagemap | boolean | 否 | 附加每个结果的原始 pagemap(OpenGraph/元标签/缩略图及其他结构化页面数据)。内容较多,除非需要页面元数据,否则请勿启用。 |
| country_restrict | string | 否 | 严格筛选——仅返回 Google 归属于此国家/地区的文档,例如 "DE"。 |
| filter_duplicates | boolean | 否 | Google 的重复内容过滤器(默认开启)。false 也会返回近似重复结果。 |
| interface_language | string | 否 | 用于解析查询的界面语言,例如 "de"。可提升非英语查询的相关性。 |
| site_search_filter | enum | 否 | include = 仅返回 site_search 中的结果,exclude = 返回除此之外的所有结果。默认值为 include。include | exclude |
详细介绍
Google Custom Search MCP
英语 | 俄语
A1 Google Custom Search MCP 可让 AI 应用通过你的 Programmable Search Engine 使用自然语言搜索网页和图片。你可以查找网页,按语言、国家/地区、日期或网站缩小范围,翻阅搜索结果,并获取带缩略图的图片文件。
它使用 Google Custom Search JSON API 和你的 Google Cloud API 密钥。你可以决定搜索引擎涵盖的范围——几个网站或整个网络皆可;服务会明确说明 JSON API 的限制,而不会暗示它能完成所有搜索任务。
- 3 个工具。 网页搜索、图片搜索,以及一个原始 GET 备用入口,可用于传入类型化工具未公开的参数。
- 全程只读。 Custom Search JSON API 没有写入端点;所有工具都标记为只读,无法修改任何数据。
- 搜索范围由你掌控。 搜索引擎的配置决定搜索内容;结果和排名可能与 google.com 不同。
- 密钥保留在请求头中。 使用 API 密钥进行身份验证——无需 OAuth 或作用域;密钥通过
X-Goog-Api-Key请求头传递,绝不会出现在 URL 中。 - 不是 Google Search Console。 它无法报告你自己的网站如何被编入索引或排名。
从一个只读问题开始:
查找上个月有关通行密钥普及情况的最新文章,并总结排名前三的结果。
一分钟了解它的工作方式
你: 查找上个月有关通行密钥普及情况的最新文章,只看英语内容。
助手: 通过你的搜索引擎执行一次搜索,并显示每条结果的标题、链接和摘要。不会有任何更改——所有工具都为只读。
你: 显示下一页。
助手: 从
next_start游标继续,并显示同一查询的第 11–20 条结果。你: 现在查找同一主题的大幅新闻照片。
助手: 切换到图片搜索,返回图片文件及其尺寸、缩略图和图片所在页面。
目录
快速开始
你需要 Node.js 20+、启用了 Custom Search API 的 Google Cloud API 密钥,以及 Programmable Search Engine ID(cx)。
- 获取 API 密钥和引擎 ID。
- 将服务添加到你的 AI 应用。
- 提出上面的只读问题。
Codex
**在应用中:**打开 Settings → MCP servers,选择 Add server,选择 STDIO,输入命令 npx -y mcp-google-custom-search@latest 和环境变量 GOOGLE_CUSTOM_SEARCH_API_KEY、GOOGLE_CUSTOM_SEARCH_ENGINE_ID,然后选择 Save 和 Restart。
通过命令行:
codex mcp add google-custom-search \
--env GOOGLE_CUSTOM_SEARCH_API_KEY=your_api_key \
--env GOOGLE_CUSTOM_SEARCH_ENGINE_ID=your_engine_id \
-- npx -y mcp-google-custom-search@latest
codex mcp list
Claude Code
claude mcp add \
--env GOOGLE_CUSTOM_SEARCH_API_KEY=your_api_key \
--env GOOGLE_CUSTOM_SEARCH_ENGINE_ID=your_engine_id \
--transport stdio --scope user google-custom-search \
-- npx -y mcp-google-custom-search@latest
claude mcp list
Claude Desktop
目前官方的操作路径是 Settings → Extensions。要安装自定义桌面扩展,请打开 Advanced settings → Extension Developer → Install Extension…,选择 .mcpb 文件并按照提示操作。
此仓库目前发布的是 npm stdio 包,不包含 .mcpb 包。对于仍支持本地配置的 Claude Desktop 版本,可使用以下 JSON stdio 配置作为备用方案:
{
"mcpServers": {
"google-custom-search": {
"command": "npx",
"args": ["-y", "mcp-google-custom-search@latest"],
"env": {
"GOOGLE_CUSTOM_SEARCH_API_KEY": "your_api_key",
"GOOGLE_CUSTOM_SEARCH_ENGINE_ID": "your_engine_id"
}
}
}
}
在这些版本中,macOS 上将其保存到 ~/Library/Application Support/Claude/claude_desktop_config.json,Windows 上则保存到 %APPDATA%\Claude\claude_desktop_config.json。
Cursor
在 macOS/Linux 上将以下内容添加到 ~/.cursor/mcp.json,或在 Windows 上添加到 %USERPROFILE%\.cursor\mcp.json:
{
"mcpServers": {
"google-custom-search": {
"type": "stdio",
"command": "npx",
"args": ["-y", "mcp-google-custom-search@latest"],
"env": {
"GOOGLE_CUSTOM_SEARCH_API_KEY": "your_api_key",
"GOOGLE_CUSTOM_SEARCH_ENGINE_ID": "your_engine_id"
}
}
}
}
VS Code
运行 MCP: Open User Configuration 并添加:
{
"servers": {
"google-custom-search": {
"type": "stdio",
"command": "npx",
"args": ["-y", "mcp-google-custom-search@latest"],
"env": {
"GOOGLE_CUSTOM_SEARCH_API_KEY": "${input:custom_search_api_key}",
"GOOGLE_CUSTOM_SEARCH_ENGINE_ID": "${input:custom_search_engine_id}"
}
}
},
"inputs": [
{ "type": "promptString", "id": "custom_search_api_key", "description": "Google Cloud API key", "password": true },
{ "type": "promptString", "id": "custom_search_engine_id", "description": "Programmable Search Engine id (cx)" }
]
}
使用 MCP: List Servers 检查。
你可以让它做什么
搜索网络
- 查找某个主题的近期教程,并总结排名靠前的结果。
- 仅在
docs.python.org内搜索,或排除你不信任的网站进行搜索。 - 显示同一查询的下一页结果。
缩小结果范围
- 仅搜索最近一个月发布的英文网页。
- 仅搜索 PDF 文件;要求包含准确短语或排除某个词语。
- 限定为某个国家/地区的内容,或限定为具有特定使用权限的资料。
查找图片
- 查找某个主题的大幅照片,并显示尺寸和缩略图。
- 仅查找剪贴画或线描图,或仅查找黑白图片。
- 显示每张图片所在的网页。
超越类型化工具的能力
- 使用类型化工具未公开的参数调用 API——使用
fields精简响应、设置lowRange/highRange、使用hq。 - 获取包含推广内容和完整
pagemap的原始响应封装。
搜索的工作方式
- 每次查询都会通过一个 Programmable Search Engine,由其
cxID 标识——可以是已配置的默认引擎,也可以是单次调用指定的engine_id。引擎的配置决定搜索范围:特定网站列表,或启用“Search the entire web”后的整个网络。 - 返回的结果经过规范化处理,包含标题、URL、摘要和元数据,并提供用于翻页的
next_start/previous_start游标。total_results是 Google 的估算值,翻页过程中可能会减少。 - 每次调用最多返回 10 条结果,每次查询最多返回 100 条(
start + num - 1必须 ≤ 100)。服务器会在发出请求前拒绝超出范围的窗口——API 会在消耗一个配额单位后返回400。 - 引擎控制面板中必须启用 Image search,才能进行图片搜索;否则 API 会返回
400。
响应中的 corrected_query 仅提供拼写建议——结果仍对应原始查询。这是 Programmable Search,而不是 Google Search Console:此 API 无法报告你自己的网站如何被编入索引或排名。
可能发生的变化
| 操作 | 结果 | 确认边界 |
|---|---|---|
网页搜索(search) | 从你的引擎读取搜索结果 | 无变化 |
图片搜索(search_images) | 从你的引擎读取图片结果 | 无变化 |
原始 API 请求(raw_request) | 对任意 Custom Search API 路径发出 GET 请求 | 无变化——此 API 没有写入端点 |
所有工具(包括应急通道)都带有只读标注。Custom Search JSON API 只有一个 GET 端点,不支持写入,因此调用唯一消耗的是你的每日配额单位。
获取访问权限
Google Custom Search 使用 API 密钥进行身份验证;不涉及 OAuth 或权限范围。
- 创建或选择一个 Google Cloud 项目,并启用 Custom Search API。
- 在 APIs & Services → Credentials 下创建 API key。将密钥限制为仅用于 Custom Search API 是个好习惯。
- 在控制面板中创建 Programmable Search Engine,并复制其 Search engine ID(
cx)。启用 Search the entire web 以搜索开放网络,启用 Image search 以使用图片工具。
请将 API 密钥视为密码。服务器会在 X-Goog-Api-Key 标头中发送密钥,绝不会将其放入 URL,因此记录或回显的 URL 不会泄露密钥。
配置
| 变量 | 必填 | 描述 |
|---|---|---|
GOOGLE_CUSTOM_SEARCH_API_KEY | 是 | 已启用 Custom Search API 的 Google Cloud API 密钥。机密信息。 |
GOOGLE_CUSTOM_SEARCH_ENGINE_ID | 建议 | 默认 Programmable Search Engine ID(cx);工具支持在单次调用中通过 engine_id 覆盖。 |
GOOGLE_CUSTOM_SEARCH_API_BASE | 否 | 自定义 Custom Search API 基础 URL 覆盖值。 |
GOOGLE_CUSTOM_SEARCH_TIMEOUT_MS | 否 | 每次请求的超时时间;默认值为 30000 毫秒。 |
GOOGLE_CUSTOM_SEARCH_MAX_RETRIES | 否 | 临时错误(429/5xx/网络)的重试次数;默认值为 3。 |
即使没有凭据,服务器仍会启动并完成 MCP 握手;首次调用工具时会明确说明需要设置哪些变量。唯一无效的配置是只设置引擎 ID、未设置 API 密钥——密钥无法按次调用提供,因此两者必须同时设置。
数据、限额与后台工作
- 请求会发送到 Google。 本地服务会调用 Custom Search JSON API。匿名遥测包含安装 ID、软件包版本、AI 客户端和平台版本以及工具名称,但绝不会包含 API 密钥、搜索查询、结果或工具参数。设置
ASKADS_TELEMETRY=0即可选择退出。 - Google 设有每日配额。 三种工具中的任何一种每次调用都会消耗项目配额中的 1 个单位——免费额度为每天 100 次查询,启用结算后最高为每天 10,000 次。遇到
429时,服务会遵循Retry-After进行退避;由于整个 API 都是幂等 GET 请求,5xx和网络错误也会重试,而400/403则会立即失败。 - 没有后台轮询。 服务仅在被调用时运行。如果你的 AI 应用支持计划任务,可以定期重新运行搜索——每次运行仍会消耗配额单位。
技术文档
- MCP 能力目录 — 面向任务的页面,涵盖每种工具。
- 所有工具和输入
- 开发文档
- 发布文档
- Custom Search JSON API 参考
支持
发现 Bug 或有使用场景需求?创建 Issue或在 Telegram 上留言。
你已经读到最后啦!
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。