1. Conduid
  2. Developer Tools
  3. saurabhsharma2u/search-console-mcp
MCP server · Developer Tools

saurabhsharma2u/search-console-mcp

Search & analytics data as infrastructure — MCP server for Google Search Console, Bing Webmaster Tools, Google Adsense and GA4, designed for AI agents and automation.

Unclaimed MIT devtools
72Good

Scored 11 days ago · breakdown

About saurabhsharma2u/search-console-mcp

saurabhsharma2u/search-console-mcp is an MCP server published by saurabhsharma2u in the Developer Tools category: search & analytics data as infrastructure — MCP server for Google Search Console, Bing Webmaster Tools, Google Adsense and GA4, designed for AI agents and automation.

The repository has 304 stars and 30 forks, with the last commit a month ago. Recent commit activity is the strongest signal that reported issues will get attention.

Install

From source
git clone https://github.com/saurabhsharma2u/search-console-mcp

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Tools (3)

adsense_accounts`mode: "configured" \

Parameters not published.

adsense_payments_alerts`accountId`

Parameters not published.

adsense_report`dateRange`, `startDate`, `endDate`, `dimensions`, `metrics`, `orderBy`, `rowLimit`, `accountId`

Parameters not published.

Ask AI

✦

Ask AI about saurabhsharma2u/search-console-mcp

Powered by Claude · Grounded in docs

I know everything about saurabhsharma2u/search-console-mcp. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

Static checks derived from the repository 4 days ago. Heuristics on the source, not an audit.

  • ✓README presentThe repository ships documentation.
  • ✓License declaredUsable under a stated license.
  • ✓Tests presentA test suite exists in the repository.
  • ✓Dependencies pinnedA lockfile pins dependency versions.
  • !No dynamic code executionSource scan found eval or shell execution. Review how tool inputs reach it before granting credentials.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

Releases

v2.1.3v2.1.3 · 2 Sep 2026What's Changed Bug fixes fix(setup,auth): anchor tilde expansion so paths containing '~' survive (#108) fix(client): expand '~' in service-account keyFilename before client construction (#109) Tests test: make keyFilename tilde-expansion…
v2.1.2v2.1.2 · 27 Aug 2026Full Changelog: https://github.com/saurabhsharma2u/search-console-mcp/compare/v2.1.1...v2.1.2 Full Changelog: https://github.com/saurabhsharma2u/search-console-mcp/compare/v2.1.1...v2.1.2
v2.1.1v2.1.1 · 25 Aug 2026What's Changed Feature/headless adsense oauth by @saurabhsharma2u in https://github.com/saurabhsharma2u/search-console-mcp/pull/106 Full Changelog: https://github.com/saurabhsharma2u/search-console-mcp/compare/v2.1.0...v2.1.1 What's…
v2.1.0v2.1.0 · 23 Aug 2026What's Changed feat: Google AdSense integration + setup flag validation by @saurabhsharma2u in https://github.com/saurabhsharma2u/search-console-mcp/pull/103 Full Changelog:…
v2.0.3v2.0.3 · 9 Aug 2026What's Changed fix: stop legacy fallback shims from shadowing registered tools by @ianmaccallum in https://github.com/saurabhsharma2u/search-console-mcp/pull/95 New Contributors @ianmaccallum made their first contribution in…

README

🔍 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.

Tests Stars

Download MCPB Bundle

📚 Docs · Quick Start · Tools · Backward Compatibility · Security


⚡ What's New in v2.1.2

  • 🤖 GenAI Query Insights (genai_query_insights): Surfaces likely generative-AI / AI-Mode / conversational "fanout" queries across Google and Bing. This is custom heuristic logic — no official API is provided by Google or Bing for GenAI citation data, so it flags prompt verbs, follow-ups, acknowledgements, and conversational phrasing on the regular query data both engines already return. See docs →
  • 🪲 analytics_query fix: rowLimit is now honored instead of being silently ignored (previously always returned up to 1000 rows); limit remains as a backward-compatible alias.
  • 💰 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).
  • 💰 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).
  • 📦 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 →

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.

Before After
Data 4 dashboards, manual exports 1 unified context
Analysis Manual VLOOKUPs & pivot tables Deterministic SEO + revenue math, server-side
Accounts Constant re-login 20+ accounts, auto-resolved per site
Insight Raw rows, agent guesses Curated 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?"

  • "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"."

🔌 Connect your accounts

Platform Method Setup
Google Search Console OAuth (recommended) npx search-console-mcp setup
Google Search Console Service Account Set GOOGLE_APPLICATION_CREDENTIALS — details
Bing Webmaster Tools API Key export BING_API_KEY="..." — get a key
Google Analytics 4 Service Account npx search-console-mcp setup --engine=ga4
Google AdSense OAuth (read-only) npx search-console-mcp setup --engine=adsense — headless servers

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 →

AdSense cannot use service accounts, and config files are machine-encrypted — so authorize once on any machine with a browser and transfer the grant:

# 1. On your laptop (after setup --engine=adsense):
npx search-console-mcp adsense-export

# 2. On the server (prints a ready-to-run command on step 1):
npx search-console-mcp adsense-import --token='...' --publisher-id='accounts/pub-...'

The token is stored encrypted on the server and auto-refreshes — no browser needed again. Setup over SSH also works directly: when no browser is detected, setup prints the authorization URL plus ssh -L 3000:localhost:3000 port-forward instructions instead of failing.


🖥️ 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
  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"

🛠 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 Tool Parameters / Actions Description
sites_list engine: "all" | "google" | "bing" Lists verified sites across search engines in parallel
sites_manage action: "add" | "delete", siteUrl, engine Adds or removes site properties
accounts_manage action: "list" | "add_site" | "remove" Configures multi-account profiles
sitemaps_list siteUrl, feedUrl, engine Fetches sitemap status and indexing state
sitemaps_submit siteUrl, feedUrl, engine Submits sitemaps to GSC & Bing
sitemaps_delete siteUrl, feedUrl, engine Removes sitemaps
analytics_query siteUrl, engine, dimensions, metrics Multi-engine search & GA4 analytics query
analytics_compare mode: "period_over_period" | "trends" | "drop_attribution" Analyzes period deltas, trend shifts, and drop causes
analytics_anomalies siteUrl, threshold Statistical detection of traffic spikes/drops
inspection_inspect siteUrl, urls, engine Google URL inspection & Bing URL info
pagespeed_analyze url, strategy, cwvOnly Core Web Vitals and PageSpeed Insights audits
indexing_submit urls, method: "standard" | "index_now" | "remove" Instantly indexes URLs via IndexNow or Google/Bing API
indexing_status siteUrl, type: "quota" | "status" Checks remaining indexing quota & URL status
seo_audit type: "quick_wins" | "striking_distance" | "cannibalization" | "low_hanging_fruit" | "lost_queries" | "recommendations" | "brand_vs_nonbrand" Comprehensive automated SEO audits
seo_keywords_research keywords, type: "stats" | "related" | "traffic" Keyword volumes and related keyword stats
site_health_check siteUrl, level: "summary" | "full" | "crawl_issues" One-shot site performance & technical audit
compare_engines siteUrl Side-by-side Google vs Bing performance breakdown
genai_query_insights siteUrl, days, engine: "google" | "bing" | "all", includePages, minImpressions Flags likely generative-AI / conversational queries (custom heuristic, no official API)

Google AdSense Tools

Tool Parameters Description
adsense_accounts mode: "configured" | "discover", accountId Lists configured or discoverable AdSense publisher accounts
adsense_report dateRange, startDate, endDate, dimensions, metrics, orderBy, rowLimit, accountId Earnings, impressions, clicks, CTR & RPM with dimension breakdowns. Custom dates override dateRange.
adsense_payments_alerts accountId Outstanding 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.

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 →


🔒 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

If this saves you a spreadsheet, consider ⭐ starring the repo.

README fetched from the repository 4 days ago. The original is authoritative.

Questions

About saurabhsharma2u/search-console-mcp

How do I install saurabhsharma2u/search-console-mcp?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is saurabhsharma2u/search-console-mcp safe to use with an AI agent?

Its trust score is 72 out of 100 (good). It passes 4 of the 6 static security checks run so far; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is saurabhsharma2u/search-console-mcp still maintained?

Yes — the latest release is v2.1.3 (2 Sep 2026), and the last commit was a month ago. The repository has 304 stars and 7 open issues.