SEO Monster
Local-first SEO MCP: track AI citations, Search Console, GA4, PageSpeed, Cloudflare, IndexNow, CrUX.
Connector by avansaber · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/avansaber-seo-monster
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: seo
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 39 read · 9 write · 3 delete · 15 not yet classified
- Secrets
- 13 (API keys, tokens or passwords)
- Install scripts
- None found
- Runs as
- Python package
Tools by what they do 66
Read from the source code; the running server may list different tools.
Read 39 · Look things up without changing anything.
ai_citation_readinesscf_list_dnscf_list_redirectscf_list_zonescf_settings_auditcf_web_analyticscf_zone_infocheck_canonicalcontent_opportunitiescrux_historycrux_snapshotga4_organic_search_overview
Show 27 more tools
ga4_setup_auditga4_site_searchgsc_batch_inspect_urlsgsc_compare_periodsgsc_coverage_auditgsc_inspect_urlgsc_list_propertiesgsc_list_sitemapsgsc_new_queriesgsc_query_gapsgsc_query_opportunitiesgsc_search_analyticsgsc_top_pages_by_queryhreflang_consistency_checkinspect_metainspect_schemainternal_link_recommendmixed_content_checkonpage_serp_gaprank_change_attributionredirect_chain_auditrobots_ai_posturerobots_txt_validatesitemap_healthsitemap_validatesystem_statusvalidate_schema
Write 9 · Create, change, send or run things.
cf_bulk_redirect_upsertcf_create_redirectcf_managed_robotscf_settings_updategsc_submit_sitemapindexnow_bulk_submitindexnow_submitlighthouse_budgetpsi_opportunities
Delete 3 · Delete, drop, revoke or wipe things.
cf_delete_redirectcf_purge_cachecf_purge_cache_all
Not yet classified 15 · We could not tell from the name and description.
ai_citation_trackai_referral_overviewcontent_brief_dataga4_landing_page_conversionsga4_run_reportga4_top_landing_pagesga4_traffic_by_channelgsc_keyword_expandgsc_portfolio_summarygsc_request_indexinginternal_link_graphkeyword_universe
Show 3 more tools
psi_analyzeserp_adjacency_expandtopic_cluster_map
Secrets and settings it asks for
Secrets: values you paste in that let it act as you.
ANTHROPIC_API_KEYCF_API_TOKENDATAFORSEO_LOGINDATAFORSEO_PASSWORDGEMINI_API_KEYGOOGLE_ADS_DEVELOPER_TOKENOPENAI_API_KEYOPENPAGERANK_API_KEYPERPLEXITY_API_KEYPSI_API_KEYSEO_MCP_GOOGLE_TOKENSEO_MCP_INDEXNOW_KEY
Show 1 more
SEO_MCP_INDEXNOW_KEY_LOCATION
Other settings (environment variables or headers).
CF_ZONEGOOGLE_ADS_CUSTOMER_IDSEO_MCP_ALLOW_DESTRUCTIVESEO_MCP_GA4_PROPERTY_IDSEO_MCP_GOOGLE_OAUTH_CLIENTSEO_MCP_GSC_DEFAULT_SITE
Files it touches
- Any path the agent passes to its tools
Tools (66)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
ai_citation_readinessScore whether a page is structured to be extracted and cited by LLM answer engines (ChatGPT, Perplexity, Claude, Google AI Overviews). Leads with a render-blindness check (AI crawlers do not run JS, so a client-rendered SPA is invisible to them), then scores evidence-backed signals: statistics, quotations, cited sources, no keyword stuffing. Reports schema.org / FAQ as informational only -- the 2026 evidence does NOT support them as AI-citation drivers, so they are not scored. Read-only HTTP GET; does not guarantee a citation.
ai_citation_trackTrack brand mention + citation share-of-voice across AI answer engines (Perplexity/OpenAI/Anthropic/Gemini via their APIs, Google AI Overviews via DataForSEO) for a managed prompt set, vs competitors. Samples each prompt N times (default 7) and reports visibility with a 95% confidence interval, share-of-voice, and run-to-run volatility -- NOT an 'AI rank' (single runs are statistically meaningless). Honest bound: developer-API output differs from the logged-in consumer UI, and AIO has no API. Paid + non-deterministic; results are directional and dated, not guaranteed.
ai_referral_overviewFirst-party view of AI traffic: (1) referral sessions from AI apps (ChatGPT, Perplexity, Gemini, Copilot, Claude, ...) via GA4, detected by both the native ai-assistant channel and a source-host regex; and (2) AI-crawler coverage -- whether robots.txt lets GPTBot, ClaudeBot, PerplexityBot, etc. reach the site. Needs a GA4 property (for referral) and/or a site_url (for crawl coverage). Honest bound: AI referrals undercount badly (~70% land as Direct), and AI-Overview clicks count as Organic, not here.
cf_bulk_redirect_upsertCreate or append many redirects at once via an account-level Bulk Redirect List (for site migrations). Gated: requires SEO_MCP_ALLOW_DESTRUCTIVE=true AND a confirm value equal to list_name. Validates every item locally first and rejects the whole batch on any bad item (never half-applies); supports dry_run. Items are added asynchronously by Cloudflare.
cf_create_redirectCreate one single (dynamic) redirect at the Cloudflare edge (e.g. a 301 for a renamed/migrated URL). Gated: requires SEO_MCP_ALLOW_DESTRUCTIVE=true. Validates the target is reachable (no redirecting to a dead URL), refuses loops and duplicates, and supports dry_run to preview the rule first.
cf_delete_redirectDelete one single (dynamic) redirect rule by its id (the rollback path for cf_create_redirect). Gated: requires SEO_MCP_ALLOW_DESTRUCTIVE=true. Get the rule id from cf_list_redirects.
cf_list_dnsList DNS records for a zone (read-only). Useful for verifying the canonical host, CNAME flattening, and TXT verification records during SEO migrations.
cf_list_redirectsList a zone's single (dynamic) redirect rules (source, target, status code, rule id) plus the account's Bulk Redirect lists (read-only). Call this before cf_create_redirect / cf_delete_redirect / cf_bulk_redirect_upsert so writes never clobber existing rules. Pairs with redirect_chain_audit and the migration_check prompt.
cf_list_zonesList the Cloudflare zones the API token can see, with status, plan, and id.
cf_managed_robotsGet / configure / disable Cloudflare's managed robots.txt and Content-Signals policy on a zone (rides on the Bot Management config). action='get' reads the current state (read-only, un-gated). action='configure' enables/sets the managed robots.txt (managed_robots), the Content-Signals variant (cf_robots_variant: off / policy_only), and the AI-bot blocking levers (ai_bots_protection, content_bots_protection, crawler_protection). action='disable' turns managed robots.txt and the Content-Signals policy back off. NOTE: managed robots.txt and the Content-Signals policy are MUTUALLY EXCLUSIVE in Clo…
cf_purge_cachePurge specific URLs from the Cloudflare cache so crawlers refetch updated content. Gated: requires SEO_MCP_ALLOW_DESTRUCTIVE=true.
cf_purge_cache_allPurge the entire Cloudflare cache for a zone (affects all visitors). Gated: requires SEO_MCP_ALLOW_DESTRUCTIVE=true AND a confirm value equal to the resolved zone hostname, so a full purge cannot fire ambiguously.
cf_settings_auditAudit a Cloudflare zone's settings for SEO and crawl/index safety (read-only): SSL/TLS mode, Always Use HTTPS, HSTS, Automatic HTTPS Rewrites, Brotli, and browser cache TTL. Findings are severity-graded with the reason and a benign exception each. Cloudflare cannot see the origin, so the SSL and Always-HTTPS checks are phrased as 'verify,' not 'fail,' and HSTS is never hard-failed (premature HSTS is dangerous and hard to undo). Answers 'are my edge settings silently sabotaging crawl/index?' It grades the edge layer only, not origin behavior.
cf_settings_updateWrite the SEO/crawl/security Cloudflare zone settings that cf_settings_audit grades, to close the audit -> remediate loop. Gated: requires SEO_MCP_ALLOW_DESTRUCTIVE=true. Changing ssl_mode, or any HSTS change that raises protection, additionally requires confirm=<zone> (HSTS also requires acknowledge_hsts_risk=true). Validates locally first and supports dry_run (before/after preview). Needs the Zone Settings:Edit token scope (the audit only needs Read).
cf_web_analyticsRead-only Cloudflare Web Analytics (edge RUM). With no argument, lists the account's Web Analytics sites; with host_or_tag, returns one site's detail. Edge-measured traffic complements GA4 (it sees visits GA4's JS tag may miss). Create/delete are intentionally not exposed.
Show 51 more tools
cf_zone_infoZone overview for a hostname: status, plan, paused, name servers, created/modified.
check_canonicalFetch a URL and analyse its canonical link tag: report whether it is self-referential, cross-host, protocol-mismatched, or trailing-slash drift; flag missing canonical, and follow one canonical hop to confirm it itself returns 2xx.
content_brief_dataGather the hard evidence for a content brief: fetch the competitor pages and return their heading union, median word count (a FLOOR, not a target), schema types, and entity coverage, plus the 2026 GEO writing directives and validation rules. Pass competitor_urls (e.g. the top SERP results) for a true brief; with none it falls back to your own ranking pages via GSC (refresh-vs-new, NOT the full SERP). The host writes the brief prose from this; SEOMonster supplies rules + evidence. Read-only; no ranking guarantee. Backs the content_brief prompt.
content_opportunitiesRank data-grounded content/blog topics from your own Search Console data. Fuses CTR-vs-expected gap, striking-distance position, demand volume, and momentum into a transparent opportunity score, flags cannibalization, and reports the click upside plus the score's components. Read-only. It prioritizes demand you already have; it does not do cold-start keyword research (that needs existing impressions) and does not write the content or guarantee a ranking.
crux_historyReturn the last 25 weekly collection periods of Core Web Vitals at p75 (LCP, INP, CLS, etc.) for a URL or origin via the Chrome UX Report History API. Complements psi_analyze with the trend axis.
crux_snapshotReturn the CURRENT (latest 28-day) p75 Core Web Vitals snapshot (LCP, INP, CLS, FCP, TTFB) for a URL or origin via the Chrome UX Report queryRecord API, with each metric's GOOD/NEEDS_IMPROVEMENT/POOR category and an overall verdict. Use crux_history for the 25-week trend. Small pages/origins legitimately have no field data; that returns no_data.
ga4_landing_page_conversionsLanding pages with their conversions / key events over the last N days, broken down by channel group and sorted by conversions descending. Filtered to organic search by default (the SEO view) so you see which entry pages actually drive organic outcomes. Convenience wrapper over ga4_run_report.
ga4_organic_search_overviewOrganic-search health over the last N days: window totals (sessions, engaged sessions, engagement rate, average session duration, conversions) plus a day-by-day trend of the same metrics. Two GA4 reports under the hood.
ga4_run_reportRun a GA4 report (Analytics Data API runReport) with arbitrary dimensions, metrics, a date range, an optional dimension filter, and ordering. The workhorse GA4 tool. Dates accept ISO (YYYY-MM-DD) or GA4 relatives like '28daysAgo' and 'today'.
ga4_setup_auditAudit a GA4 property's configuration for SEO-measurement readiness (read-only): is a web data stream present, are key events / conversions defined, is data retention long enough for year-over-year analysis, are content-group custom dimensions set, and (via v1alpha) is enhanced measurement on and what the Google Signals state is. Findings are severity-graded with the reason and the benign exception for each. Answers 'can this property actually measure my organic outcomes?' It checks hygiene, not whether your events are the right business events.
ga4_site_searchInternal site-search terms over the last N days: what visitors typed into the on-site search box (GA4 'searchTerm'), by event count and sessions. A direct content-gap signal. If the property has no site-search data (no search box, or enhanced-measurement site search is off), the tool says so honestly rather than implying zero demand. Convenience wrapper over ga4_run_report.
ga4_top_landing_pagesTop landing pages by sessions over the last N days, with engagement rate and conversions. Filtered to organic search by default (the SEO view). Convenience wrapper over ga4_run_report.
ga4_traffic_by_channelSessions, engaged sessions, and conversions broken down by default channel group over the last N days. Separates organic from paid / referral / direct at a glance. Convenience wrapper over ga4_run_report.
gsc_batch_inspect_urlsInspect several URLs in one call (capped at 25). Returns a result per URL plus a list of per-URL failures. Rate-limit and transient errors are reported per URL without failing the whole batch.
gsc_compare_periodsCompare two equal-length time windows (current vs prior) and return per-key deltas in clicks, impressions, CTR, and position, plus keys present in only one window. v0.2.0: optional sort_by / sort_dir / min_delta_* filters and an anomalies_only z-score gate so the same tool covers 'biggest gainers', 'biggest losers', 'meaningful movers', and 'statistical outliers' without needing separate tools. When anomalies_only=true, the response's filters_applied.sigma_used field reports the population-stdev (sigma) actually computed from the matched rows' sort_by metric distribution; the effective z-score…
gsc_coverage_auditHeuristic coverage audit. The GSC Index Coverage report is NOT exposed in the public API, so this tool takes a user-supplied URL list (typically pulled from a sitemap) and bulk-inspects each, then rolls up the verdicts (PASS / PARTIAL / FAIL plus coverage_state frequencies). Honest substitute for the Coverage UI; the AI host can use the rollup to decide which URLs to deep-inspect.
gsc_inspect_urlInspect a single URL via the URL Inspection API: index verdict, coverage state, crawl info, canonicals, and mobile/rich-results summaries when present.
gsc_keyword_expandGround LLM-brainstormed keyword candidates against your own Search Console data to find net-new terms you have no current footprint on. YOU (the host) supply `candidates` -- brainstorm them from the site's winning queries first (call gsc_top_queries). For each candidate this returns a footprint verdict (covered / thin / none) and a confidence band from sibling-strength (does it share tokens with queries that already win impressions). 'none' means no VISIBLE footprint, not no demand (GSC hides ~75% of impressions); net-new terms are scored hypotheses, not facts. Read-only.
gsc_list_propertiesList every Search Console property the configured credentials can see, with each property's permission level. Use this to discover valid site_url values.
gsc_list_sitemapsList the sitemaps Google knows about for a property, with submission and indexing status.
gsc_new_queriesQueries that have impressions in the current window but had no impressions in the prior comparison window. Useful for spotting emerging topics or pages that just started ranking.
gsc_portfolio_summaryMulti-property fleet view. Lists every property the credentials can see and returns a one-row summary per property (total clicks, impressions, average CTR, average position) for the last N days. The single fastest answer to 'how is the portfolio doing?' across agency or multi-brand setups. Honors the v0.2.0 alias convention (`days`) and applies the configured data_state.
gsc_query_gapsQueries that drive impressions but very few clicks. These are content opportunity signals: a page is being shown for the query, the click experience is not landing. Returns rows sorted by impressions desc.
gsc_query_opportunitiesQueries already ranking in the top N positions but with below-target CTR. These are title and meta-description optimization candidates. Returns rows sorted by impressions desc (the bigger the impression volume, the more clicks a CTR lift unlocks).
gsc_request_indexingDescription is built at runtime.
gsc_search_analyticsQuery Search Console search analytics (clicks, impressions, CTR, position) for a property, with dimensions, a date range, optional dimension filters, and data_state. The workhorse GSC tool.
gsc_submit_sitemapSubmit a sitemap to Search Console. Requires the writable webmasters scope. Available by default (a routine SEO task; not gated). Accepts either `sitemap_url` (preferred, friendly name) or `feedpath` (the raw API field name; kept for back-compat).
gsc_top_pages_by_queryWhich pages rank for a specific query. The classic cannibalization audit input: if multiple pages rank for the same query, you typically want to consolidate or differentiate them. Filters search_analytics by an exact query match and returns rows by page dimension.
hreflang_consistency_checkValidate hreflang link tags across a set of URLs. Checks: missing reciprocity, broken target URLs, duplicate hreflang on one page, missing self-link, missing x-default when there are 3+ language variants. Returns per-URL findings and a global findings list.
indexnow_bulk_submitDescription is built at runtime.
indexnow_submitSubmit a single URL to IndexNow (Bing + Yandex + Naver + Seznam + Yep). Complements gsc_request_indexing for the non-Google engines. Requires SEO_MCP_INDEXNOW_KEY plus a key-verification file at https://<host>/<key>.txt.
inspect_metaFetch a single URL and return its on-page SEO surface: title, meta description, meta robots, canonical, Open Graph + Twitter Card tags, hreflang list, and the H1 count. Read-only HTTP GET.
inspect_schemaExtract every JSON-LD block from a page and report the schema.org @type counts plus a sample entity per type. Discovery tool: tells you what structured data exists. Pair with validate_schema to check required-field compliance.
internal_link_graphDescription is built at runtime.
internal_link_recommendRecommend specific internal links (source page -> target page, with anchor text) from high-authority pages to striking-distance pages. Crawls from start_url for the internal link graph (authority + existing links) and uses GSC to find striking-distance targets (default position 8-20 with real impressions). Ranks sources by lexical relevance to the target query + internal in-degree, skips pages that already link the target, balances anchor text, and never suggests nofollow. Free; read-only; does not guarantee a ranking change.
keyword_universeExternal keyword data (optional, paid). Its core value is the COMPETITOR keyword GAP: keywords competitors rank for that you don't (DataForSEO Domain Intersection; no Google equivalent). Optionally returns search volume/difficulty/intent for a keyword list via a provider chain (DataForSEO, else Google Ads volume-only). Requires DataForSEO and/or Google Ads to be configured. External volume is a degraded directional signal in 2026 -- never let a low/missing volume drop a high-intent term.
lighthouse_budgetRun PageSpeed Insights on a URL and verdict the results against a performance budget. Valid budget keys: higher-is-better Lighthouse scores on a 0-100 scale ('performance', 'accessibility', 'best-practices', 'seo'); lower-is-better latency in milliseconds ('LCP_ms', 'FCP_ms', 'TBT_ms', 'TTI_ms', 'speed_index_ms'); lower-is-better unitless shift score ('CLS'). Unknown keys are surfaced as a non-fatal finding with a 'did you mean' hint; the metric is NOT silently ignored. Returns per-metric verdict and an overall pass/fail. Useful as a CI / pre-deploy gate.
mixed_content_checkFetch an HTTPS page and report any sub-resource references that use plain http:// (img/script/iframe/form action/anchor href). Mixed content blocks browsers from running scripts and triggers warnings on user-facing pages. No-op for http:// pages (returns 'not_https').
onpage_serp_gapFind the headings, entities and schema the top SERP results have that a target page lacks, and turn them into on-page actions. Pass competitor_urls (free), or a query with DataForSEO configured to auto-fetch the SERP. When the SERP is auto-fetched, also returns winnability signals (AI-Overview presence, UGC/forum dominance = zero-click risk) and, with Open PageRank, competitor domain authority. Surfaces information-gain (add something novel), not just parity. Read-only; does not guarantee a ranking.
psi_analyzeRun PageSpeed Insights on a URL and return Lighthouse category scores, lab Core Web Vitals (synthetic), and field Core Web Vitals (real-user CrUX) when available. Defaults to the mobile strategy (Google ranks on mobile).
psi_opportunitiesRun PageSpeed Insights and return the actionable Lighthouse opportunity audits (estimated load-time savings) plus the Lighthouse SEO-category audits graded by severity (critical/high/medium/low). Lab data only; does not use field/CrUX data (use crux_snapshot / crux_history for real-user metrics). Defaults to the mobile strategy.
rank_change_attributionEstimate whether an on-site change moved a page's clicks, using difference-in-differences against a control group of untouched pages (never a naked before/after). Returns an estimated lift with a 95% confidence interval and a three-state verdict (likely_positive / likely_negative / inconclusive), plus a confounders block (algo-update proximity, GSC data-regime breaks, control quality, sample sizes). Clicks-based (position/CTR were corrupted by the 2025 GSC bugs). Observational, not proof of causation -- a server-side split test is the only true causal test.
redirect_chain_auditWalk the redirect chain for a URL without auto-following 3xx. Returns every hop (status, location, elapsed_ms) and flags issues: chain longer than 1, mixed-protocol hops (https -> http), loops, or non-2xx terminus. Cap defaults to 10 hops.
robots_ai_postureRecommend a Content-Signals posture (search / ai-input / ai-train) from a business goal and emit a ready-to-apply artifact: the Content-Signal directive line plus a full suggested robots.txt. Read-only, offline, deterministic - no network, no writes. Always returns the trade-off alternatives and the mandatory caveat that Content-Signal is honored only by adopting crawlers, is ignored by Googlebot, and is not a ranking factor.
robots_txt_validateFetch /robots.txt for a site, parse user-agent groups + Allow/Disallow + Crawl-delay + Sitemap, and return the structured ruleset. Optionally probe a list of (user_agent, url) pairs and return per-probe allow/deny verdicts using RFC 9309 longest-match.
serp_adjacency_expandExpand seed terms into adjacent terms from SERP signals. FREE core: Google Autocomplete (no key). Optional PAA + related-searches via DataForSEO if configured. Pass your winning queries as `seeds` (seed from gsc_top_queries). Returns per-seed suggestions plus the aggregated net-new terms (suggestions you didn't seed). Degrades gracefully: autocomplete-only without a DataForSEO key. Read-only. Note: the autocomplete endpoint is undocumented and may change.
sitemap_healthSample N URLs from a sitemap (or one level deep in a sitemap index) and HEAD-check each. Aggregates a status-code histogram and lists the first few non-2xx URLs so you can triage broken entries fast.
sitemap_validateFetch a sitemap or sitemap-index URL, validate its XML structure, count entries, and flag oversize (>50,000 URLs or >50 MiB), missing <lastmod>, and entries whose host does not match the sitemap host. Handles .gz transparently.
system_statusReport which SEO services are configured and reachable, the Google auth method and scopes, whether destructive mode is enabled, and the full catalog of available tools grouped by service. Call this first if unsure what is set up. Pass probe=true to confirm credentials work via one cheap live call per configured service (default false: config-only).
topic_cluster_mapMap a content cluster from your own Search Console data and surface missing subtopics. Define the cluster by cluster_path (a URL path prefix) or pillar_url. For each query the cluster's pages show for, classifies it into defend / optimize / create / monitor by demand and best position, flags cannibalization, and lists the create-quadrant queries (high demand, weak position) as missing-subtopic candidates for you to group into named subtopics. Free, GSC-only. 'create' = no VISIBLE strong coverage (GSC hides ~47% of queries); no external volume.
validate_schemaValidate every JSON-LD block on a page against the Google Rich Results required-field set. Per-entity verdict (pass/fail) and a list of missing required + recommended fields. Covers Article, NewsArticle, BlogPosting, Product, FAQPage, BreadcrumbList, Organization, LocalBusiness, Event, Review, Recipe.
Compare and alternatives
- SEO Monster vs Google Ads + Meta Ads + SEO/GEO MCP
- SEO Monster vs SEO Skill
- SEO Monster vs SEO Audit Console
Featured in
Signals
- Stars
- 553
- Forks
- 82
- Open issues
- 3
- Weekly downloads
- 313
- Last commit
- Sep 1, 2026 (1 month ago)
- Last release
- Sep 25, 2026 (1 month ago)
- Last package publish
- Aug 29, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.avansaber/seo-monster- Version
- 0.9.3
- Auth
- API key
- Packages
- pypi seo-monster
- License
- MIT
- Repository
- github.com/avansaber/seo-monster
- First seen
- Oct 24, 2026
- Last checked
- Oct 25, 2026
Cite this page
SEO Monster MCP server. Agent Mart. https://agentmart.dev/connectors/avansaber-seo-monster (last updated 2026-10-25)