Search Console MCP

Search Console, Bing Webmaster Tools, GA4 and AdSense data and SEO analysis in one MCP server

By Saurabh (individual) TypeScript Local · stdio Data and analytics

62 popularity score ★ 321 ↓ 1.4k/wk

Connect your client

Local (npm)

Add in one click

Opens the app, which asks before it adds the server.

Or add it by command or config

FirstTerminal
npx search-console-mcp setup
Claude CodeTerminal
claude mcp add search-console -- npx search-console-mcp
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "search-console": {
      "command": "npx",
      "args": [
        "search-console-mcp"
      ]
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "search-console": {
      "command": "npx",
      "args": [
        "search-console-mcp"
      ]
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "search-console": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "search-console-mcp"
      ]
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.search-console]
command = "npx"
args = ["search-console-mcp"]
Gemini CLITerminal
gemini mcp add --scope user search-console npx -- search-console-mcp

Settings 7

BING_API_KEY secret Optional: Bing Webmaster Tools API key, needed for the Bing tools. For Bing tools.
GOOGLE_APPLICATION_CREDENTIALS Optional: Path to a Google service-account JSON key, instead of the OAuth setup. For Search Console.
Set together: service account
GOOGLE_CLIENT_EMAIL Optional: Service-account email, used together with GOOGLE_PRIVATE_KEY instead of a key file. For Search Console.
GOOGLE_PRIVATE_KEY secret Optional: Service-account private key, used together with GOOGLE_CLIENT_EMAIL. For Search Console.
Set together: sse
MCP_HTTP_TOKEN secret Optional: Bearer token clients must send in SSE mode. A random one is made per run and printed when unset. For SSE mode.
MCP_HTTP_HOST Optional: Interface the SSE server binds to. Default 127.0.0.1. For SSE mode.
MCP_HTTP_ALLOWED_ORIGINS Optional: Comma-separated browser origins allowed through CORS. Only localhost on the SSE port by default. For SSE mode.

What it does

Search Console MCP is a local Node.js server that connects an assistant to four Google and Microsoft webmaster products: Google Search Console, Bing Webmaster Tools, Google Analytics 4 and Google AdSense. You can ask about a site's search traffic, rankings, indexing state and ad earnings in one conversation. You don't have to export reports from each dashboard first.

Much of the analysis happens on the server, not in the assistant. seo_audit groups queries into quick wins, striking-distance keywords, cannibalisation, lost queries and brand versus non-brand. analytics_compare and analytics_anomalies explain period-over-period changes and spikes or drops. compare_engines puts Google and Bing figures side by side. genai_query_insights flags queries that look like they came from AI search features. Its makers say this tool runs on their own heuristics, because neither Google nor Bing publishes that data, and that its numbers undercount.

It can also change things: add or delete properties, submit or delete sitemaps, and submit URLs for indexing through Google's Indexing API, Bing URL submission or IndexNow. It handles several accounts and works out which account owns each site. The same package works as a command-line tool: `search-console-mcp run <tool>` prints any tool's result as JSON, CSV or a table.

The v2.1.4 source (src/index.ts) registers 25 tools, four more than the README's tables list: get_started, analytics_advanced (GA4 e-commerce, realtime and behaviour), schema_validate and diagnostics. It also serves 14 prompts for guided workflows and five resources under seo://. Calls to about 96 tool names from before v2.0 still work. A fallback router maps them onto the current tools.

What it needs

RuntimeNode.js 18+
Runs onmacOS, Windows, Linux
Google Search ConsoleFreeOAuth sign-in through setup, or a service-account key
Bing Webmaster ToolsFreeAPI key, only for the Bing tools
Google Analytics 4Freeservice account, only for the GA4 tools
Google AdSenseFreeseparate read-only OAuth grant, only for the AdSense tools

Run `npx search-console-mcp setup` once in a browser to authorise Google. For Search Console you can use a service-account JSON key in GOOGLE_APPLICATION_CREDENTIALS instead. Bing needs a Webmaster Tools API key (BING_API_KEY). GA4 is added with `setup --engine=ga4` and AdSense with `setup --engine=adsense`. On Claude Desktop you can skip Node by installing the .mcpb bundle from its releases.

Limits

  • Read only Since v2.1.4, setup grants read access only. sitemaps_submit, sitemaps_delete and sites_manage ask for a separate webmasters write scope the first time they run.
  • Not covered AdSense works with user OAuth only and refuses service accounts.
  • Not covered GA4 is set up with a service account only.
  • Early release SSE mode (`serve` or `--transport=sse`) is deprecated in v2.1.4 and its makers plan to remove it in the next release.
  • Limit genai_query_insights matches heuristic patterns on ordinary query data and undercounts AI-driven queries.
  • Size cap adsense_report returns 100 rows by default and at most 200 with rowLimit.
  • Limit Saved config files are encrypted with a key tied to the machine, so you can't copy them to another computer.
  • Limit With no account configured the server still starts and only prints a warning, so its tools fail until you run setup.

On a headless machine AdSense can't open a browser for sign-in. Authorise on a computer that has one, then move the grant across with `adsense-export` and `adsense-import`. Over SSH, setup prints the sign-in address and a port-forward command instead.

Who it suits

It suits site owners, SEO practitioners and publishers who want Google, Bing, GA4 and AdSense figures side by side in one assistant, especially across several sites or accounts. Its ready-made audits save writing the analysis prompts yourself. Some tools change live properties: adding or deleting sites, deleting sitemaps and submitting or removing URLs from the index. If you only want to read Search Console data, a single-product server with no write tools will give the assistant less reach. It is a third-party project, not published by Google or Microsoft.

Tools 25

20 only read, 4 change things, 1 can delete or overwrite. A ? marks an optional parameter.

get_started
Outlines the server's tools, which platforms are connected and suggested workflows
sites_list
Lists verified properties in Search Console, Bing Webmaster Tools or GA4engine?: enum
sites_manage deletes
Adds or deletes a property in Search Console or Bing Webmaster Toolsaction: enumsiteUrl: stringengine?: enum
accounts_manage changes
Lists configured accounts and adds or removes their site mappingsaction: enumaccountId?: stringsiteUrl?: stringemail?: string
sitemaps_list
Shows the sitemaps submitted for a site and their statussiteUrl: stringfeedUrl?: stringengine?: enum
sitemaps_submit changes
Submits a sitemap to Google, Bing or bothsiteUrl: stringfeedUrl: stringengine?: enum
sitemaps_delete changes
Removes a sitemap from Google or BingsiteUrl: stringfeedUrl: stringengine?: enum
analytics_query
Queries search performance by query, page, country, device or appearancesiteUrl: stringstartDate?: stringendDate?: stringdimensions?: arrayfilters?: arrayrowLimit?: numberengine?: enum
analytics_compare
Compares periods, finds trends and works out what caused a traffic dropsiteUrl: stringmode?: enumstartDate?: stringendDate?: stringcompareStartDate?: stringcompareEndDate?: stringengine?: enum
analytics_anomalies
Detects unusual spikes or drops in Google and Bing trafficsiteUrl: stringstartDate?: stringendDate?: stringthreshold?: numberengine?: enum
analytics_advanced
Reads GA4 e-commerce, realtime, behaviour and funnel datapropertyId: stringmetricType: enumstartDate?: stringendDate?: string
genai_query_insights
Flags queries that look conversational or AI-generated, using heuristicssiteUrl: stringdays?: numberengine?: enumincludePages?: booleanminImpressions?: number
adsense_accounts
Lists configured or discoverable AdSense publisher accountsaccountId?: stringmode?: enum
adsense_report
Reports AdSense earnings, impressions, clicks, CTR and RPM by dimensionaccountId?: stringdateRange?: enumstartDate?: stringendDate?: stringdimensions?: arraymetrics?: arrayrowLimit?: numberorderBy?: string
adsense_payments_alerts
Shows outstanding AdSense payments and account alertsaccountId?: string
inspection_inspect
Checks the indexing, canonical and crawl status of one or more URLssiteUrl: stringurls: arrayengine?: enum
pagespeed_analyze
Runs PageSpeed Insights and Core Web Vitals checks on a pageurl: stringstrategy?: enumcategory?: arraycwvOnly?: boolean
indexing_submit changes
Submits or removes URLs through Google Indexing API, Bing or IndexNowsiteUrl?: stringurls: arraymethod?: enumengine?: enumhost?: stringkey?: stringkeyLocation?: string
indexing_status
Checks Google indexing notification status or remaining Bing quotasiteUrl: stringurl?: stringtype?: enumengine?: enum
seo_audit
Runs SEO analyses such as quick wins, cannibalisation and lost queriessiteUrl: stringtype: enumbrandKeywords?: arrayminImpressions?: numberengine?: enum
seo_keywords_research
Gives keyword stats, related queries and volume estimatessiteUrl?: stringkeywords: arraycountry?: stringlanguage?: stringtype?: enumengine?: enum
schema_validate
Validates the JSON-LD, Microdata or RDFa structured data on a pageurl: string
site_health_check
Audits a site's health across Search Console and BingsiteUrl?: stringlevel?: enumengine?: enum
compare_engines
Compares a site's Google and Bing performance side by sidesiteUrl: stringstartDate?: stringendDate?: stringdimension?: enumlimit?: number
diagnostics
Tests the connection to every configured account

Resources 5

seo://algorithm-updates
Timeline of Google core and spam updates
seo://connected-sites
Configured Search Console, Bing, GA4 and AdSense properties
seo://adsense/accounts
Configured AdSense publisher accounts
seo://adsense/payments
Outstanding AdSense payments and active alerts per account
seo://backward-compatibility
Map from pre-v2.0 tool names to the current tools

Prompts 14

investigate_traffic_drop
Walks through finding when and why traffic fell
find_quick_wins
Finds queries close to page one worth improving
full_site_audit
Runs a full SEO audit of a site
analyze_page
Reviews the search performance of one page
platform_comparison
Compares Google and Bing rankings query by query
content_opportunity_report
Finds pages held back by low CTR or cannibalisation
executive_summary
Writes a short performance summary for stakeholders
ga4_traffic_audit
Audits GA4 traffic and engagement
adsense_earnings_review
Reviews AdSense earnings over a period
adsense_monetization_audit
Breaks AdSense earnings down by ad unit, platform and country
seo_traffic_detective
Investigates a traffic drop over a set number of days
seo_striking_distance
Lists keywords ranking just below page one
seo_cannibalization_audit
Finds pages competing for the same queries
seo_compare_google_bing
Compares Google and Bing results for a site

Similar servers