Back to MCP Servers

Search Console

An MCP server to interact with Google Search Console and Bing Webmasters.

customer-data-platformsgo
By saurabhsharma2u
27626Updated 1 day agoTypeScriptMIT

Installation

npx -y search-console-mcp

Configuration

{
  "mcpServers": {
    "search-console-mcp": {
      "command": "npx",
      "args": ["-y", "search-console-mcp"]
    }
  }
}

How to use

  1. Run the installation command above (if needed)
  2. Open your Claude Code settings file (~/.claude/settings.json)
  3. Add the configuration to the mcpServers section
  4. Restart Claude Code to apply changes
<div align="center">

๐Ÿ” Search Console MCP

Google Search Console + Bing Webmaster Tools + GA4 + AdSense โ€” in one context window.

Stop exporting CSVs. Start asking your AI agent questions about your site's traffic, rankings, and revenue.

License: MIT Tests Stars

<br/>

Download MCPB Bundle

๐Ÿ“š Docs ยท Quick Start ยท Tools ยท Backward Compatibility ยท Security

</div>

โšก What's New in v2.1.0

  • ๐Ÿ’ฐ Google AdSense Integration: Earnings reports, payments and account alerts via setup --engine=adsense. Enabling AdSense requires you to approve a separate adsense.readonly OAuth scope; your existing GSC, Bing, and GA4 configuration remains unchanged until you opt in.
  • ๐Ÿ” OAuth-only AdSense auth: The AdSense Management API supports user OAuth only โ€” setup now validates access live and rejects unsupported service-account configs with actionable guidance. Multi-account users get explicit publisher-account selection with full pagination (>100 accounts).
  • ๐Ÿ“Š adsense_report upgrades: Custom startDate/endDate now override preset dateRanges, plus a new orderBy parameter (-ESTIMATED_EARNINGS) for sorted revenue reports.
  • ๐Ÿงช End-to-end MCP test suite: The built server binary is now tested over stdio and SSE exactly like an MCP host would drive it โ€” handshake, tool schemas, error envelopes, and multi-account resource behavior (11 e2e tests wired into CI).
<details> <summary><strong>What's New in v2.0.x</strong></summary>
  • ๐Ÿ“ฆ MCPB One-Click Bundle Support (.mcpb): Drag and drop bundle installation for Claude Desktop.
  • โšก Parallel Fetch Engine (engine: "all"): Multi-engine queries fetch Google, Bing, and GA4 concurrently with 50%+ lower latency.
  • ๐Ÿ”„ 100% Backward Compatibility: All ~96 legacy tool names continue to work seamlessly via our fallback router. Read Backward Compatibility Guide โ†’
</details>

Why this exists

Site data lives in four different silos. Answering one question โ€” "did my ad revenue drop because of a traffic dip or a lower RPM?" โ€” usually means logging into four dashboards, exporting four CSVs, and doing VLOOKUPs by hand.

Search Console MCP puts GSC, Bing, GA4, and AdSense behind one set of tools your AI agent can call directly, and does the analysis (cannibalization, anomaly detection, revenue attribution) before the data ever reaches your context window.

BeforeAfter
Data4 dashboards, manual exports1 unified context
AnalysisManual VLOOKUPs & pivot tablesDeterministic SEO + revenue math, server-side
AccountsConstant re-login20+ accounts, auto-resolved per site
InsightRaw rows, agent guessesCurated signals (opportunity scores, anomalies)

โšก Quick Start

npx search-console-mcp setup

This opens your browser, authorizes your Google account, and stores your credentials securely (see Security). Then add it to your MCP client config (Claude Desktop, Cursor, Antigravity, etc.):

{
  "mcpServers": {
    "search-console": {
      "command": "npx",
      "args": ["search-console-mcp"]
    }
  }
}

Restart your client โ€” and try one of the prompts below.


๐Ÿ’ฌ Try it

Paste these straight into your agent:

"My traffic dropped this week vs. last. Find exactly when it started and which pages are responsible."

"Find keywords for example.com ranking positions 8โ€“15 with 1,000+ impressions โ€” my best quick wins."

"Check for keyword cannibalization โ€” are two of my pages competing for the same query?"

"Run seo_audit on my top pages: which have high search visibility but poor CTR?"

<details> <summary>More example prompts</summary>
  • "Run a full SEO health check (site_health_check), segmented by Brand vs Non-Brand."
  • "Fetch my top 5 pages by impressions and run pagespeed_analyze โ€” any correlation with declining rankings?"
  • "Compare Google vs Bing performance for the last 30 days (compare_engines) โ€” where is Bing winning?"
  • "Submit my latest URLs to Google and IndexNow using indexing_submit with method: "index_now"."
</details>

๐Ÿ”Œ Connect your accounts

PlatformMethodSetup
Google Search ConsoleOAuth (recommended)npx search-console-mcp setup
Google Search ConsoleService AccountSet GOOGLE_APPLICATION_CREDENTIALS โ€” details
Bing Webmaster ToolsAPI Keyexport BING_API_KEY="..." โ€” get a key
Google Analytics 4Service Accountnpx search-console-mcp setup --engine=ga4
Google AdSenseOAuth (read-only)npx search-console-mcp setup --engine=adsense

Manage everything from the CLI:

npx search-console-mcp accounts list
npx search-console-mcp accounts add-site --account=you@company.com --site=example.com
npx search-console-mcp accounts remove --account=you@company.com

When your agent queries a site, the server auto-resolves which account owns it โ€” no manual switching. Multi-account docs โ†’


๐Ÿ–ฅ๏ธ Run tools from the CLI

Search Console MCP also exposes registered MCP tools as direct CLI commands. Use the run subcommand to list tools, inspect tool-specific arguments, and print results as JSON, CSV, or an ASCII table:

# List registered tools
npx search-console-mcp run --help

# Show options for one tool
npx search-console-mcp run analytics_query --help

# Run an SEO audit with JSON output
npx search-console-mcp run seo_audit --siteUrl=https://example.com --type=quick_wins

# Print array results as CSV or a table
npx search-console-mcp run analytics_query --siteUrl=https://example.com --startDate=2026-06-01 --endDate=2026-06-30 --dimensions=date,query --format=csv
npx search-console-mcp run sites_list --engine=all --format=table
<details> <summary id="service-account-advanced">Service Account setup (for servers/automation)</summary>
  1. Create a service account in the Google Cloud Console
  2. Generate a JSON key
  3. Add the service account email as a user in Search Console with "Full" or "Restricted" access
  4. export GOOGLE_APPLICATION_CREDENTIALS="/path/to/key.json"
</details>

๐Ÿ›  Tools (Fluent Domain Architecture)

Search Console MCP v2.0 features 7 Fluent Domain Tools that handle all SEO, Analytics, Inspection, and Indexing operations cleanly:

Fluent ToolParameters / ActionsDescription
sites_listengine: "all" | "google" | "bing"Lists verified sites across search engines in parallel
sites_manageaction: "add" | "delete", siteUrl, engineAdds or removes site properties
accounts_manageaction: "list" | "add_site" | "remove"Configures multi-account profiles
sitemaps_listsiteUrl, feedUrl, engineFetches sitemap status and indexing state
sitemaps_submitsiteUrl, feedUrl, engineSubmits sitemaps to GSC & Bing
sitemaps_deletesiteUrl, feedUrl, engineRemoves sitemaps
analytics_querysiteUrl, engine, dimensions, metricsMulti-engine search & GA4 analytics query
analytics_comparemode: "period_over_period" | "trends" | "drop_attribution"Analyzes period deltas, trend shifts, and drop causes
analytics_anomaliessiteUrl, thresholdStatistical detection of traffic spikes/drops
inspection_inspectsiteUrl, urls, engineGoogle URL inspection & Bing URL info
pagespeed_analyzeurl, strategy, cwvOnlyCore Web Vitals and PageSpeed Insights audits
indexing_submiturls, method: "standard" | "index_now" | "remove"Instantly indexes URLs via IndexNow or Google/Bing API
indexing_statussiteUrl, type: "quota" | "status"Checks remaining indexing quota & URL status
seo_audittype: "quick_wins" | "striking_distance" | "cannibalization" | "low_hanging_fruit" | "lost_queries" | "recommendations" | "brand_vs_nonbrand"Comprehensive automated SEO audits
seo_keywords_researchkeywords, type: "stats" | "related" | "traffic"Keyword volumes and related keyword stats
site_health_checksiteUrl, level: "summary" | "full" | "crawl_issues"One-shot site performance & technical audit
compare_enginessiteUrlSide-by-side Google vs Bing performance breakdown

Google AdSense Tools

ToolParametersDescription
adsense_accountsmode: "configured" | "discover", accountIdLists configured or discoverable AdSense publisher accounts
adsense_reportdateRange, startDate, endDate, dimensions, metrics, orderBy, rowLimit, accountIdEarnings, impressions, clicks, CTR & RPM with dimension breakdowns. Custom dates override dateRange.
adsense_payments_alertsaccountIdOutstanding payments and account alerts (policy issues, payment holds)

Note: accountId refers to the configured profile ID (e.g. adsense_2, as shown by accounts_manage), not a publisher resource name like accounts/pub-123.

<details> <summary><strong>Backward Compatibility Notice (96+ Legacy Tools)</strong></summary>

All legacy tool names (bing_sites_list, seo_quick_wins, sitemaps_get, bing_index_now, indexing_submit_url, opportunity_matrix, etc.) continue to work transparently via our fallback router.

Read our complete Backward Compatibility & Migration Guide โ†’

</details>

๐Ÿ”’ Security

  • OS keychain first โ€” tokens stored in macOS Keychain, Windows Credential Manager, or Linux Secret Service
  • AES-256-GCM fallback โ€” encrypted with a key derived from your machine's hardware ID; a stolen file is useless on another device
  • Minimal storage โ€” only refresh_token and expiry_date are persisted, at mode 600
  • Silent refresh โ€” tokens renew automatically in the background

License

MIT ยท Contributing guide ยท Backward Compatibility Guide

<div align="center">

If this saves you a spreadsheet, consider โญ starring the repo.

</div>
View source on GitHub