Google Search Console MCP Server
Provides tools for analyzing Google Search Console performance data, including traffic drop diagnosis, decaying pages, striking-distance keywords, cannibalization, low-CTR pages, indexing issues, sitemap status, and weekly SEO reports. It syncs clicks, impressions, CTR, and positions by query, page, country, and device into a local database for fast historical analysis.
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., "@Google Search Console MCP ServerWhy did my organic traffic drop last week?"
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.
Google Search Console MCP Server — SEO analysis for Claude, ChatGPT & Cursor
Self-hosted MCP server for Google Search Console. It syncs your Search Console performance data (clicks, impressions, CTR, positions by query, page, country and device) into a local ClickHouse database and gives AI agents — Claude Code, Claude Desktop, ChatGPT, Cursor, VS Code Copilot, Windsurf — ready-made SEO analysis tools: traffic drop diagnosis, decaying pages, striking-distance keywords, keyword cannibalization, low-CTR snippets, indexing issues and weekly SEO reports.
Run it locally with Docker, upload a Google service account JSON key, and ask your AI:
"Why did my organic traffic drop last week?" · "Find keywords ranking 4–15 I can push into the top 3." · "Which pages are losing clicks?" · "Find keyword cannibalization." · "Create my weekly SEO report."
Don't want to self-host? Use the free hosted Search Console MCP server at my.topify.pro —
sign in with Google, pick your sites and connect Claude or ChatGPT in one click.
Free, up to 10 sites per user, no Docker or Google Cloud setup. MCP endpoint: https://my.topify.pro/api/mcp.
Contents
Related MCP server: seoagent
Why this Search Console MCP server
Most Search Console MCP servers are thin wrappers over the Search Console API: the model gets raw rows, hits the 25,000-row and 16-month limits, and has to do the math itself — slowly and often wrongly. This server does the analysis before the model sees the data:
Answers, not rows. Every tool returns a summary, the evidence and prioritized actions. The model retells deterministic results computed in SQL instead of inventing numbers.
All your data, locally. Daily import at the finest grain (date × query × page × country × device), including a reconciled row for anonymized queries so totals match Search Console exactly.
History beyond 16 months. Search Console forgets data after 16 months; your local copy doesn't.
Fast. ClickHouse answers year-over-year comparisons across millions of rows in milliseconds.
Private. Your data never leaves your machine except for the calls to Google's API and to the AI you choose.
Works with every MCP client. Streamable HTTP (
http://localhost:3333/mcp) and stdio.
Quick start (Docker)
Requirements: Docker with Compose, a Google account with access to Search Console.
git clone https://github.com/ozhehkovski/google-search-console-mcp.git
cd google-search-console-mcp
docker compose up -dCreate a service account key — step-by-step guide (5 minutes, free): enable the Search Console API in Google Cloud, create a service account and download its JSON key.
Upload the key at http://localhost:3333 (or save it as
credentials/service-account.json).Add the service account email shown on that page as a user in Search Console → Settings → Users and permissions for each site (the Restricted permission is enough), then click Sync now.
Connect your AI agent (below) and ask a question. The latest weeks are imported first, so answers are available within minutes while the rest of the 16-month history keeps loading.
Want to try it without a Google key? Load a synthetic demo site:
docker compose exec gsc-mcp node dist/index.js demoConnect your AI agent
The MCP endpoint is http://localhost:3333/mcp (Streamable HTTP). The status page at
http://localhost:3333 shows ready-to-copy snippets.
Claude Code
claude mcp add --transport http search-console http://localhost:3333/mcpCursor — ~/.cursor/mcp.json, Windsurf — ~/.codeium/windsurf/mcp_config.json (use serverUrl):
{
"mcpServers": {
"search-console": { "url": "http://localhost:3333/mcp" }
}
}VS Code (GitHub Copilot) — .vscode/mcp.json:
{
"servers": {
"search-console": { "type": "http", "url": "http://localhost:3333/mcp" }
}
}Claude Desktop — claude_desktop_config.json (stdio through the running container):
{
"mcpServers": {
"search-console": {
"command": "docker",
"args": ["exec", "-i", "gsc-mcp", "node", "dist/index.js", "stdio"]
}
}
}Claude.ai and ChatGPT (web) connect only to public HTTPS servers with OAuth. Use the hosted version, or put this server behind your own HTTPS reverse proxy.
If you expose the server beyond localhost, set MCP_AUTH_TOKEN and send Authorization: Bearer <token>
(for Claude Code: --header "Authorization: Bearer <token>").
MCP tools
Tool | Answers the question |
| Which Search Console properties are available and how much data is imported? |
| How is my site doing? Clicks, impressions, CTR, position vs previous period and last year, top movers. |
| Why did my organic traffic drop (or grow)? When it started, which pages / queries / devices / countries / branded traffic drove it, and whether the cause is rankings, search demand or CTR. Checks seasonality, annotations and indexing. |
| Which pages are losing clicks? |
| Which keywords ranking 4–15 can reach the top 3, and how many clicks would that bring? |
| Which queries are split between several pages, which page should win, does Google flip-flop between them? |
| Which top-5 rankings get far fewer clicks than expected (title/meta rewrite, SERP features, AI Overviews)? |
| New queries (emerging topics) and lost queries. |
| Deep dive into one URL: trend, top and lost queries, striking distance, cannibalization, indexing. |
| What should I work on this week? Ranked tasks with expected clicks per week. |
| Ready-to-share markdown SEO report (owner or SEO-specialist audience). |
| Pages Google doesn't index and why (URL Inspection API), traffic-losing pages first. |
| Sitemap errors, warnings and freshness from Search Console. |
| Mark an event (release, migration, title changes) so later analysis takes it into account. |
| Brand terms to split branded vs non-branded traffic. |
CTR expectations are calibrated on your site's own data (median CTR by position), falling back to an industry curve where there isn't enough volume.
MCP prompts
Ready-made workflows your MCP client shows as commands: weekly_seo_report, investigate_traffic_drop,
striking_distance_sprint, cannibalization_cleanup, content_refresh_plan, indexing_audit.
Configuration
Copy .env.example to .env; every variable is optional.
Variable | Default | Description |
|
| Port of the status page and |
| — | Require |
| all | Comma-separated properties to sync, e.g. |
| — | Brand terms for all sites (per site: |
|
| How often to pull fresh data; |
|
| History to import on the first run (Search Console keeps 16). |
|
| Days fetched in parallel from the API. |
|
| URL Inspection checks per site per sync (Google allows 2,000/day); |
|
| URL shown in snippets when running behind a proxy. |
Useful commands:
docker compose exec gsc-mcp node dist/index.js sites # properties the service account can read
curl -X POST http://localhost:3333/api/sync # import missing days now (same as "Sync now")
docker compose logs -f gsc-mcp # sync progressHow it works
Google Search Console API ──(service account, read-only)──► sync (every 6 h)
│ date × query × page × country × device
▼
AI agent ──MCP (HTTP / stdio)──► tools ──SQL──► ClickHouse ◄───┘
▲ │
└─ summary + evidence + actions (analysis in TypeScript, unit-tested)src/sync— incremental import: only missing days are requested, newest first; an interrupted day is cleaned up and imported again.src/db— ClickHouse schema and parameterized analytical queries.src/analysis— pure, tested SEO logic: change-point detection, cause attribution, CTR curve calibration, decay classification, cannibalization and flip-flops, action plan scoring, report rendering.src/mcp— MCP tools and prompts.
Local development:
pnpm install
pnpm test # unit tests
pnpm typecheck
docker compose up -d clickhouse # add `ports: ["127.0.0.1:8123:8123"]` to the clickhouse service first
CLICKHOUSE_URL=http://localhost:8123 CLICKHOUSE_USER=gsc CLICKHOUSE_PASSWORD=gsc-local-password pnpm devHosted version
my.topify.pro runs the same analysis as a managed MCP server:
Free, up to 10 sites per user.
Sign in with Google — no Google Cloud project, service account or Docker.
Works with Claude.ai, Claude Desktop, ChatGPT (OAuth connectors) and API keys for Claude Code, Cursor and VS Code.
MCP endpoint:
https://my.topify.pro/api/mcp.
FAQ
Is this an official Google product? No. It uses the public Search Console API with read-only access.
Which Search Console data is available? Search performance (Search Analytics) by query, page, country and device; URL Inspection results for the most important pages; sitemaps. Search Console reports data with a 2–3 day delay, and every analysis period ends on the last day with data.
Why a service account instead of "Sign in with Google"? It runs unattended on your machine, needs no OAuth app verification and only gets the properties you explicitly share with it.
How much data can it handle? ClickHouse comfortably handles tens of millions of rows on a laptop. The import follows Search Console API quotas; very large sites take longer on the first run.
Does my data leave my computer? Only the tool results you ask your AI agent about are sent to that AI provider.
Can I use it with ChatGPT? ChatGPT connectors need a public HTTPS URL with OAuth — use the hosted version or your own HTTPS proxy.
License
MIT © Topify. Contributions welcome — open an issue or a pull request.
Keywords: Google Search Console MCP, GSC MCP server, Search Console API, SEO MCP server, Model Context Protocol, Claude SEO, ChatGPT SEO, Cursor MCP, AI SEO agent, organic traffic drop analysis, keyword cannibalization, striking distance keywords, self-hosted SEO analytics, ClickHouse, Docker.
This server cannot be deployed
Maintenance
Related MCP Connectors
SEO & marketing toolkit for AI agents: GA4, Search Console, AdSense, GTM, PageSpeed, Trends.
Turn Search Console data into SEO actions, content, publishing, indexing, and AI insights.
Google Search Console in your AI: overview, opportunities, index gaps, page checks, long history.
Open-source SEO manager for coding agents: keyword research, content PRs, rank + Search Console.
Related MCP Servers
- AlicenseAqualityFmaintenanceDownloads your entire Search Console dataset into a local SQLite database, then gives your LLM a pre-built SQL query library for every standard SEO analysis type, with context available for your LLM to perform any SQL query to answer your questions and analyse for you.1210 npm16Apache 2.0
- AlicenseNot gradedqualityCmaintenanceAgent-first SEO toolkit with 24 MCP tools for keyword research, rank tracking, site audits up to 50k pages, competitor analysis, content gap detection, domain reputation, backlink intelligence, Google Search Console integration, and AI-powered strategy generation with Claude, GPT, and Ollama. SQLite-backed and bring-your-own-key.MIT
- AlicenseBqualityDmaintenanceConnects Google Search Console to AI assistants, enabling SEO data analysis through natural language conversations.32MIT
- AlicenseNot gradedqualityAmaintenanceThe complete open-source SEO data stack for AI agents, integrating Google Search Console, Google Analytics 4, Bing Webmaster Tools, and Microsoft Clarity with built-in analyst tools like cannibalization check, low-hanging fruit, and content gap analysis, all self-hosted and free.41 PyPIMIT