Search Console MCP
Provides read-only access to Google Search Console, including listing verified sites, listing sitemaps, querying search analytics, and performing URL inspections.
Provides page speed and performance analysis for URLs using Google PageSpeed Insights.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Search Console MCPCompare Google and Bing organic clicks for my site in the last month."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Search Console MCP
一个 MCP,把 Google Search Console、Bing Webmaster Tools、PageSpeed Insights、Google Indexing API 和 IndexNow 接到 ChatGPT / MCP Client。
同一套 Core,支持 Cloudflare Workers 和 Docker + OpenAI Tunnel 两种生产运行方式。
为什么有两种运行方式?
Cloudflare Workers 部署最省事,但 Bing Webmaster API 对共享出口 IP 可能返回:
ERROR!!! ThrottleIP如果你的 VPS 所在网络访问 OpenAI Tunnel 需要代理、但又希望 Bing 仍然使用 VPS 自己的公网 IP,本项目支持分流出口:OpenAI Tunnel 控制面走 SOCKS5,Google / Bing / PageSpeed / IndexNow 直连 VPS 出口。
Search Console MCP
│
┌───────────┴───────────┐
│ │
Cloudflare Workers Docker + OpenAI Tunnel
Streamable HTTP MCP stdio MCP
│ │
└───────────┬───────────┘
│
同一套 Core
│
┌──────────┬──────────┼──────────┬──────────┐
▼ ▼ ▼ ▼ ▼
Google Bing PageSpeed IndexNow SEO 分析方案 | 优点 | 注意 |
Cloudflare Workers | 无服务器、部署最快、内置 OAuth | Bing 可能遇到共享出口 |
Docker + OpenAI Tunnel | Bing 等 API 使用 VPS 出口;OpenAI Tunnel 控制面可单独走 SOCKS5;不开放 MCP 公网入站端口 | 需要 Docker、OpenAI Tunnel 和可用的 SOCKS5(当 OpenAI 出口需要代理时) |
如果主要使用 Google,Workers 很方便;如果 Bing 也是核心能力,推荐 Docker + OpenAI Tunnel。
Related MCP server: Google Search Console MCP Server
17 个 MCP Tools
分类 | Tools |
连接 / 站点 |
|
Sitemap |
|
搜索表现 |
|
Google / Bing 对比 |
|
URL 检查 |
|
Bing |
|
PageSpeed |
|
SEO 分析 |
|
技术 SEO |
|
索引通知 |
|
indexing_submit 会产生真实外部写操作,可调用 Google Indexing API、Bing URL Submission 和 IndexNow。
Google 官方仅将 Indexing API 用于带
JobPosting,或VideoObject中嵌入BroadcastEvent的页面。普通博客页面不属于官方支持场景。
项目结构
src/
├── core/ # 与运行平台无关
│ ├── google.js
│ ├── bing.js
│ ├── pagespeed.js
│ ├── indexing.js
│ ├── intelligence.js
│ ├── technical.js
│ ├── tools.js
│ └── mcp.js
└── runtime/
├── worker/ # Cloudflare Workers
└── stdio.js # OpenAI Tunnel child process
Dockerfile
docker-compose.yml
.env.example两种 runtime 最终都进入同一个 handleMcp(),不会维护两套 Google/Bing 业务逻辑。
方案 A:Cloudflare Workers
git clone https://github.com/fx-k/search-console-mcp-workers.git
cd search-console-mcp-workers
npm install
npx wrangler login
npm run worker:deploy配置 Secret:
npx wrangler secret put GOOGLE_SERVICE_ACCOUNT_JSON < /path/to/google-service-account.json
npx wrangler secret put BING_API_KEY
npx wrangler secret put OAUTH_PASSWORD
npx wrangler secret put OAUTH_JWT_SECRETIndexNow key 是公开验证值,可在 Worker Variables 中配置:
INDEXNOW_KEY=<你的 IndexNow key>MCP URL:
https://<worker>.workers.dev/mcpBing ThrottleIP
Workers 对 Bing 的请求由 Cloudflare 出口发出。如果同一把 Bing API Key:
本机 / VPS → Bing ✅
Cloudflare Worker → Bing ❌ ThrottleIP说明问题在共享出口 IP,不是 API Key 或站点权限。
项目不会用重试风暴或隐藏错误来绕过它;请直接切换到 Docker + OpenAI Tunnel。
方案 B:Docker + OpenAI Tunnel
这是 VPS 推荐部署方式。宿主机不需要安装 Node/npm。
目录建议统一以 mcp- 开头:
~/FXIT-dockerdata/mcp-search-console/1. Clone
cd ~/FXIT-dockerdata
git clone https://github.com/fx-k/search-console-mcp-workers.git mcp-search-console
cd mcp-search-console2. 准备配置
Docker Tunnel 路线与本项目的 mcp-esa 部署风格一致:一个 root-only .env,容器始终以非 root 用户运行。
cp .env.example .env
chmod 600 .env编辑 .env:
CONTROL_PLANE_TUNNEL_ID=tunnel_xxx
CONTROL_PLANE_API_KEY=sk-your-runtime-api-key
GOOGLE_SERVICE_ACCOUNT_JSON='{"type":"service_account",...}'
BING_API_KEY=your-bing-api-key
INDEXNOW_KEY=your-public-indexnow-key
# 只给 OpenAI Tunnel control-plane 使用
SOCKS5_UPSTREAM=socks5://user:password@proxy.example.com:1080
TUNNEL_CLIENT_VERSION=v0.0.14
MCP_IMAGE_TAG=0.5.1-tunnel-0.0.14Google Service Account JSON 必须压成单行 JSON;推荐用单引号包住整段值。项目不再同时维护 JSON 文件 / Base64 / Docker secret 等多套输入路径。
INDEXNOW_KEY 是公开验证值,其余凭据都应视为 Secret。.env 已被 Git 忽略。
3. 启动
docker compose build
docker compose up -d检查:
docker compose ps
docker compose logs --tail=100
docker exec mcp-search-console curl -fsS http://127.0.0.1:8080/healthz
docker exec mcp-search-console curl -fsS http://127.0.0.1:8080/readyz容器名、Compose project 和 image 都统一使用:
mcp-search-console分流出口:Tunnel 走 SOCKS5,搜索 API 走 VPS IP
Compose 会启动两个容器:
mcp-search-console-egress
└─ gost:HTTP CONNECT → SOCKS5_UPSTREAM
mcp-search-console
├─ tunnel-client
└─ Search Console MCP (stdio)只有 tunnel-client 的 OpenAI control-plane 被显式设置:
CONTROL_PLANE_HTTP_PROXY=http://egress-proxy:18080没有设置全局 HTTP_PROXY、HTTPS_PROXY 或 ALL_PROXY。
因此真实流量是:
OpenAI Tunnel control-plane
mcp-search-console
↓
egress-proxy
↓
SOCKS5_UPSTREAM
↓
api.openai.com
Bing / Google / PageSpeed / IndexNow
mcp-search-console
↓
Docker NAT
↓
VPS 公网出口也就是说,即使 OpenAI Tunnel 需要 SOCKS5,Bing 仍然看到 VPS 自己的公网 IP。
完整说明:Docker + OpenAI Tunnel 部署
Google 凭据
同一个 Service Account 用于:
Google Search Console → webmasters.readonly
Google Indexing API → indexing
PageSpeed Insights → OAuth如果使用 Google Indexing API,该 Service Account 需要在对应 Search Console Property 中具有 Owner 权限。
Workers 使用 Secret:
GOOGLE_SERVICE_ACCOUNT_JSONDocker / Tunnel 使用同一个环境变量:
GOOGLE_SERVICE_ACCOUNT_JSON与 mcp-esa 一样,由 root-only .env 注入给非 root 容器;不再维护文件挂载 / Base64 / Docker secret 等备用路径。
容易误解的状态
Google Indexing status 404
没有历史 Indexing API notification metadata 时,项目返回:
{
"ok": true,
"notified": false
}它不等于“Google 没收录”。真实收录状态请用 inspection_inspect。
IndexNow status
indexing_status(method="indexnow") 会读取:
https://<host>/<INDEXNOW_KEY>.txt并返回:
verificationFetchStatus
verificationMatches搜索词缺失
Search Console / Webmaster API 可能因为隐私或平台规则省略部分 query rows。缺失不等于流量为 0。
开发与 CI
npm install
npm run check
npm test
npm run worker:build
docker compose config
docker build --build-arg TUNNEL_CLIENT_VERSION=v0.0.14 -t mcp-search-console:test .CI 同时检查:
Shared Core
Cloudflare Workers runtime
stdio runtime
Docker Compose
Docker image
安全边界
API 返回的 query、URL、title 等全部视为不可信数据,不作为指令执行。
Workers 使用 OAuth + PKCE S256 + SQLite Durable Object。
Docker Tunnel 不开放 MCP 公网入站端口;tunnel-client 主动连接 OpenAI。
Google JSON、Bing API Key、Tunnel Runtime API Key 存在 root-only
.env中,不提交 Git;.env建议权限600。和
mcp-esa一样,容器从启动到运行始终使用非 root 用户;不需要 root entrypoint 或启动后降权。Docker/root 权限本身等价于主机高权限,因此具备 Docker 管理权限的人可以读取容器环境变量;单机 root 管理 VPS 下这与现有
mcp-esa的信任边界一致。Docker 容器默认
read_only、drop all capabilities、no-new-privileges。indexing_submit是真实写工具,MCP Client 仍可能按自身策略要求确认。
OpenAI Tunnel
本项目默认 pin v0.0.14。升级前建议先阅读 OpenAI tunnel-client release notes。
License & Attribution
MIT License。上游与设计来源见 NOTICE.md。
This server cannot be deployed
Maintenance
Related MCP Connectors
SEO & marketing toolkit for AI agents: GA4, Search Console, AdSense, GTM, PageSpeed, Trends.
Read Search Console performance, keyword opportunities and annotations for your sites.
Read-only Search Console analytics, URL inspection, indexing diagnostics, and sitemaps.
Ask Google Search Console in plain language. Hosted, free, no Google Cloud project.
Related MCP Servers
- AlicenseAqualityDmaintenanceProvides read-only access to Google Search Console data, allowing AI assistants to query site performance metrics like keywords, clicks, and rankings using natural language. It supports listing verified properties, querying search analytics with dimension filters, and retrieving sitemap information.31MIT
- AlicenseAqualityAmaintenanceProvides AI agents with read-only access to Google Search Console data, including search analytics, index coverage, and sitemap status. It enables users to query clicks, impressions, and ranking performance or check URL indexing status through natural language.4175 npm9MIT
- FlicenseNot gradedqualityFmaintenanceEnables interacting with Google Search Console via natural language, supporting search analytics, URL inspection, sitemap management, and site listing.25-
- AlicenseAqualityCmaintenanceConnects Google Search Console to AI assistants, enabling natural language analysis of SEO data. Provides read-only tools for properties, search analytics, URL inspection, and sitemaps.15MIT