google-search-console-mcp-claude-code
Provides tools for interacting with Google Search Console and Google Analytics 4 for SEO analysis, including cross-platform tools for traffic drops, content decay, opportunity matrix, and more.
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-claude-code show me my top content decay pages"
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.
⚠️ This repo has been superseded
This MCP has been unified with the GA4 MCP into a single comprehensive Google SEO suite — including five cross-platform tools that connect Search Console with Analytics 4 (GSC↔GA4 journey, opportunity matrix, traffic health check, revenue attribution, full landing page diagnosis).
👉 New repo: google-seo-mcp-claude-code
The new MCP includes everything this one did (with prefixed gsc_* tool names) plus the five cross-platform tools that are only possible with unified auth.
Related MCP server: google-search-console-mcp-python
Migration
pipx uninstall gsc-seo-mcp
pipx install git+https://github.com/mario-hernandez/google-seo-mcp-claude-codeUpdate your Claude config from gsc-seo-mcp to google-seo-mcp.
Tool names are prefixed in the new MCP:
quick_wins→gsc_quick_winstraffic_drops→gsc_traffic_dropscontent_decay→gsc_content_decay(etc.)
This repo is kept for historical reference only and is no longer maintained.
Available Tools
14 toolsalertsA
Detects regressions in last N days vs prior N days.
Emits per-entity (query+page) alerts: position_drop, ctr_collapse, click_drop, disappeared. Severity: critical (≥2× threshold) > warning. Dedup keeps highest severity per entity.
IMPORTANT: Use ONLY the data returned by this tool. Do not speculate about figures, do not extrapolate beyond the time range queried, and cite site_url + date_range when reporting numbers to the user.
Inputs: site_url (required), days, severity_threshold.
cannibalizationC
Queries where >=2 pages on the same site are competing in search results.
IMPORTANT: Use ONLY the data returned by this tool. Do not speculate about figures, do not extrapolate beyond the time range queried, and cite site_url + date_range when reporting numbers to the user.
Inputs: site_url (required), days, min_impressions, top_n.
content_decayB
Pages with monotonic decline across 3 consecutive 30-day windows.
Filters noise: only pages where clicks_p3 > clicks_p2 > clicks_p1 AND clicks_p3 >= threshold. Indicates real content decay, not a single-week dip.
IMPORTANT: Use ONLY the data returned by this tool. Do not speculate about figures, do not extrapolate beyond the time range queried, and cite site_url + date_range when reporting numbers to the user.
Inputs: site_url (required), top_n, min_clicks_p3.
ctr_opportunitiesC
Pages whose CTR is significantly below the expected CTR for their position.
CTR gap = expected_ctr(pos) - actual_ctr. Tipo "title/meta needs improvement".
IMPORTANT: Use ONLY the data returned by this tool. Do not speculate about figures, do not extrapolate beyond the time range queried, and cite site_url + date_range when reporting numbers to the user.
Inputs: site_url (required), days, min_impressions, top_n.
get_capabilitiesA
List all tools exposed by this MCP and current auth status. Call FIRST.
Returns the tool catalog grouped by category, plus a quick check of whether credentials are reachable.
Inputs: no named parameters.
inspect_urlA
Inspect a single URL against Google's index.
Args:
site_url: Property URL (e.g. https://example.com/ or sc-domain:example.com).
page_url: Full URL to inspect (must belong to site_url).
language: BCP-47 lang for human-readable strings.
Returns indexing status, last-crawl, canonical, mobile usability, rich-results.
IMPORTANT: Use ONLY the data returned by this tool. Do not speculate about figures, do not extrapolate beyond the time range queried, and cite site_url + date_range when reporting numbers to the user.
Inputs: site_url (required), page_url (required), language.
list_sitemapsB
List sitemaps submitted for a property, with errors/warnings/last-submitted info.
IMPORTANT: Use ONLY the data returned by this tool. Do not speculate about figures, do not extrapolate beyond the time range queried, and cite site_url + date_range when reporting numbers to the user.
Inputs: site_url (required).
list_sitesA
List all Search Console properties the authenticated user has access to.
Returns each site's URL, permission level, and whether it's a domain or URL property.
IMPORTANT: Use ONLY the data returned by this tool. Do not speculate about figures, do not extrapolate beyond the time range queried, and cite site_url + date_range when reporting numbers to the user.
Inputs: no named parameters.
quick_winsB
Queries currently ranking position 4-15 with highest "lift opportunity".
Opportunity score = impressions × (CTR_at_pos3 - CTR_actual). Highlights queries where a small ranking improvement could yield disproportionate traffic gains.
IMPORTANT: Use ONLY the data returned by this tool. Do not speculate about figures, do not extrapolate beyond the time range queried, and cite site_url + date_range when reporting numbers to the user.
Inputs: site_url (required), days, min_impressions, top_n.
reauthenticateA
Force re-authentication on the next API call.
Useful when ADC credentials have changed or OAuth token has expired and cached state is stale. Does not delete files; just resets in-process clients.
Inputs: no named parameters.
search_analyticsA
Custom Search Analytics query.
Args: site_url: Property URL. start_date / end_date: ISO YYYY-MM-DD. dimensions: e.g. ["query"], ["page"], ["query","page"], ["country"], ["device"]. row_limit: Max rows (server-side cap 25000). search_type: "web" | "image" | "video" | "news".
IMPORTANT: Use ONLY the data returned by this tool. Do not speculate about figures, do not extrapolate beyond the time range queried, and cite site_url + date_range when reporting numbers to the user.
Inputs: site_url (required), start_date (required), end_date (required), dimensions, +2 more.
site_snapshotB
Aggregated totals (clicks/impressions/CTR/position) for the last N days vs prior period.
IMPORTANT: Use ONLY the data returned by this tool. Do not speculate about figures, do not extrapolate beyond the time range queried, and cite site_url + date_range when reporting numbers to the user.
Inputs: site_url (required), days.
submit_sitemapA
Submit a sitemap. Requires GSC_ALLOW_DESTRUCTIVE=true.
Args: site_url: Property URL. feedpath: Full sitemap URL (e.g. https://example.com/sitemap.xml).
IMPORTANT: Use ONLY the data returned by this tool. Do not speculate about figures, do not extrapolate beyond the time range queried, and cite site_url + date_range when reporting numbers to the user.
Inputs: site_url (required), feedpath (required).
traffic_dropsA
Pages that lost traffic, classified into Ranking-loss / CTR-collapse / Demand-decline.
Ranking loss: avg position got worse by >2 positions.
CTR collapse: position stable but CTR < 70% of prior CTR.
Demand decline: rankings & CTR roughly stable but impressions dropped >30%.
IMPORTANT: Use ONLY the data returned by this tool. Do not speculate about figures, do not extrapolate beyond the time range queried, and cite site_url + date_range when reporting numbers to the user.
Inputs: site_url (required), days, top_n, min_clicks_prior.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 14 tools
Each tool targets a distinct concept: alerts for regressions, cannibalization for competing pages, content_decay for declining pages, etc. No two tools have overlapping purposes; descriptions clearly differentiate them.
All tool names use lowercase with underscores. While some are verb_noun (get_capabilities, inspect_url) and others are noun phrases (alerts, cannibalization, content_decay), the pattern is consistent and readable, with minimal deviation.
14 tools is well-scoped for a Search Console server. It covers analytics, diagnostics, management, and specialized insights without being overwhelming or too thin.
The tool surface covers core Search Console operations: analytics (search_analytics, site_snapshot), diagnostics (inspect_url, list_sitemaps), and specialized insights (alerts, cannibalization, etc.). Minor gaps exist (e.g., no tool for managing users or viewing all errors), but the set is comprehensive for its focus.
Maintenance
Related MCP Connectors
Read-only Google Search Console MCP server for AI assistants.
Hosted MCP server for GA4, Google Ads and Search Console. Google OAuth, nothing to install.
Google Search Console, GA4 and PageSpeed MCP server for Claude, ChatGPT and Cursor. Free, hosted.
Hosted Google Search Console MCP server, with each action switched on or off per account.
Related MCP Servers
- AlicenseBqualityBmaintenanceRead-only MCP server for Google Search Console, with browser-based OAuth flow and local token storage, enabling querying search analytics, site lists, and URL inspection.9516 PyPIMIT
- AlicenseNot gradedqualityCmaintenanceMCP server for Google Search Console API that enables querying search analytics, managing sites, inspecting URLs, and supporting domain delegation via service accounts.34 PyPI1MIT
- AlicenseNot gradedqualityCmaintenanceRead-only MCP server for Google Search Console data, enabling search analytics, URL inspection, indexing diagnostics, and sitemap management through MCP clients.19 npm1MIT
- AlicenseAqualityDmaintenanceMCP server for Google Search Console API, enabling search performance analysis, URL inspection, sitemap management, and property listing. Supports local, self-hosted, and Cloudflare Workers deployments.11MIT