Search Console MCP
Search Console, Bing Webmaster Tools, GA4 and AdSense data and SEO analysis in one MCP server
SEO analysis from your own Search Console, GA4, PageSpeed and Cloudflare accounts
By AvanSaber Inc Python Local · stdio Data and analyticsCloud platforms
51 popularity score ★ 501 ↓ 826/mo
Opens the app, which asks before it adds the server.
uvx seo-monster setup
uvx seo-monster authclaude mcp add seomonster -- uvx seo-monster{
"mcpServers": {
"seomonster": {
"command": "uvx",
"args": [
"seo-monster"
]
}
}
}{
"mcpServers": {
"seomonster": {
"command": "uvx",
"args": [
"seo-monster"
]
}
}
}{
"servers": {
"seomonster": {
"type": "stdio",
"command": "uvx",
"args": [
"seo-monster"
]
}
}
}[mcp_servers.seomonster]
command = "uvx"
args = ["seo-monster"]gemini mcp add --scope user seomonster uvx -- seo-monsterSEO_MCP_GOOGLE_OAUTH_CLIENT |
Optional: Path to the Google Desktop-app OAuth client-secrets JSON; needed for the Search Console and GA4 tools. |
|---|---|
SEO_MCP_GOOGLE_TOKEN |
Optional: Writable path where the Google token from `seo-monster auth` is cached. |
SEO_MCP_GOOGLE_CREDENTIALS |
Optional: Service-account key path, an alternative to OAuth (GOOGLE_APPLICATION_CREDENTIALS also read). |
SEO_MCP_GSC_DEFAULT_SITE |
Optional: Default Search Console property, e.g. sc-domain:example.com. |
SEO_MCP_GA4_PROPERTY_ID |
Optional: Default GA4 property, e.g. properties/123456789. |
PSI_API_KEY |
Optional: PageSpeed Insights key; also used for CrUX. Optional but the anonymous quota is often exhausted. |
CF_API_TOKEN |
Optional: Cloudflare API token for the cf_ tools. |
CF_ZONE |
Optional: Default Cloudflare zone hostname. |
SEO_MCP_INDEXNOW_KEY |
Optional: IndexNow key; the matching file must be served at https://<host>/<key>.txt. |
SEO_MCP_ALLOW_DESTRUCTIVE |
Optional: Set true to enable Cloudflare purge, redirect and settings writes; off by default. |
DATAFORSEO_LOGIN |
Optional: DataForSEO login (with DATAFORSEO_PASSWORD) for SERP, keyword and AI Overview data; paid. |
SEO_MCP_CONFIG |
Optional: Path to the TOML config file; default ~/.config/seo-mcp/config.toml. |
SEOMonster is a local Python server, published on PyPI as seo-monster, that puts a site's own search data within reach of an assistant. It reads Google Search Console and Google Analytics 4 with your Google sign-in, PageSpeed Insights and the Chrome UX Report, and Cloudflare zones with an API token, and can push URLs to Google's Indexing API and to IndexNow engines such as Bing and Yandex.
On top of the raw reports it adds analysis: near-ranking topics to write about, pages gaining or losing impressions, cannibalization checks, and a before-and-after estimate of whether a change moved clicks, measured against a control group. A set of technical checks (meta tags, canonicals, redirects, robots.txt, sitemaps, JSON-LD, hreflang, internal links) works on any public URL with no credentials. Optional paid keys add keyword volumes and competitor gaps through DataForSEO and tracking of how often AI engines mention a brand.
Version 0.9.3 registers 70 tools in server.py, plus thirteen workflow prompts. Its own install section still says the server exposes 52 tools, which is out of date. The ai_citation_track tool takes at most 50 prompts per call and runs 7 samples per prompt by default, up to 20 (ai_citation_tools.py); its README gives the default but not these caps.
| Runtime | Python 3.11+ |
|---|
Python 3.11 or newer and uv (for uvx); GUI clients need the absolute path to uvx. For the Google tools: a Google Cloud project with the Search Console, Indexing and Analytics Data APIs enabled, a Desktop-app OAuth client, and a one-time `seo-monster auth` run from a terminal; the Google account must have access to the properties. Cloudflare tools need an API token; IndexNow needs a key and a verification file on your host. Claude Desktop users can install a .mcpb bundle instead.
Each service is optional: a tool for an unconfigured service returns AUTH_MISSING. The server never opens a browser, so Google sign-in must be done beforehand from a terminal. PageSpeed without PSI_API_KEY shares an anonymous quota that its docs say is often exhausted. internal_link_graph stays on one host, depth 2 and 50 pages by default, capped at 4 and 200. indexnow_bulk_submit takes one host per call. ai_citation_track and keyword_universe need paid third-party keys and the docs call AI results non-deterministic. The docs say the service-account path is not tested against a live project.
Suits site owners, SEO consultants and agencies who already use Search Console and GA4 and want to ask about their own data from an assistant, including across many properties, and those who run sites behind Cloudflare. The technical checks are useful with no setup at all. The Google setup (Cloud project, OAuth client, terminal sign-in) is real work, so someone wanting a quick keyword tool without their own site data will find little here beyond the paid DataForSEO tools. It is a community project, not made by Google or Cloudflare.
system_statusgsc_list_propertiesgsc_search_analyticsgsc_compare_periodsgsc_inspect_urlgsc_batch_inspect_urlsgsc_list_sitemapsgsc_submit_sitemapgsc_request_indexinggsc_query_opportunitiesgsc_query_gapsgsc_new_queriesgsc_top_pages_by_querygsc_portfolio_summarygsc_trending_pagesgsc_decaying_pagesgsc_coverage_auditcontent_opportunitiescontent_brief_datatopic_cluster_maprank_change_attributionai_citation_readinessai_referral_overviewai_citation_trackgsc_keyword_expandserp_adjacency_expandkeyword_universega4_run_reportga4_top_landing_pagesga4_traffic_by_channelga4_setup_auditga4_landing_page_conversionspsi_analyzepsi_opportunitiescf_list_dnscf_web_analyticscf_purge_cachecf_purge_cache_allcf_settings_auditcf_settings_updatecf_list_redirectscf_create_redirectcf_delete_redirectcf_bulk_redirect_upsertcf_managed_robotsindexnow_submitindexnow_bulk_submitinspect_metacheck_canonicalredirect_chain_auditrobots_txt_validatesitemap_validaterobots_ai_posturecrux_historyinspect_schemavalidate_schemahreflang_consistency_checkinternal_link_graphinternal_link_recommendonpage_serp_gap