Seo Monster

web MCP Server

SEOMonster: a local, user-credential-driven MCP server for SEO workflows over Google Search Console, GA4, PageSpeed Insights, and Cloudflare. Read-first, open source.

Verified
webwebgcp
5 views2 stars0 forksMIT

Why This Matters

Discovered via github-topic:mcp and last synced 3mo ago.

Verified
Source
github-topic:mcp
Stars
2
Last synced
3mo ago
Install
Check source

Install

Install instructions not detected yet

Check the source repository for the latest setup steps.

View source instructions
62
Tools
0
Resources
0
Prompts
Standard I/O
Transport

Available Tools (62)

gsc_list_sitemaps

registered sitemaps and their status.

ga4_run_report

the workhorse: arbitrary dimensions/metrics/date range,

cf_list_dns

DNS records (read-only); useful for verifying canonical host

inspect_meta(url)

on-page surface in one call: title, meta description,

crux_history(url? | origin?, form_factor?, metrics?)

25 weeks of p75

gsc_top_queries

/ `gsc_top_pages` - convenience top-N wrappers.

gsc_query_opportunities

queries already ranking top N with below-target

ga4_organic_search_overview

organic totals plus a day-by-day trend.

cf_purge_cache_all

purge an entire zone (gated + confirm token).

gsc_list_properties

properties the credentials can see, with permission

gsc_compare_periods

current vs prior window with per-key deltas.

gsc_submit_sitemap

submit a sitemap (write, un-gated; needs the writable

gsc_query_gaps

queries that draw impressions but barely any clicks.

ga4_top_landing_pages

top landing pages, organic-only by default.

psi_analyze

Lighthouse scores, lab Core Web Vitals, and field (CrUX) Core

cf_web_analytics

read-only edge Web Analytics (RUM), to compare against

indexnow_submit(url)

submit a single URL to Bing, Yandex, Naver, Seznam,

check_canonical(url)

canonical-link audit: self-referential / cross-host

robots_txt_validate(site_url, probes?)

parses robots.txt (per-group

hreflang_consistency_check(urls)

cross-page hreflang audit on a

gsc_inspect_url

URL Inspection (index verdict, coverage, canonicals).

gsc_request_indexing

request (re)crawl via the Indexing API (write,

gsc_new_queries

queries appearing in the current window with no prior

ga4_traffic_by_channel

sessions/engagement/conversions by channel group.

cf_list_zones

zones the token can see.

cf_purge_cache

purge specific URLs (gated).

indexnow_bulk_submit(urls)

up to 10,000 URLs sharing one host in a

mixed_content_check(url)

parses an HTTPS page and flags any `http://`

sitemap_validate(sitemap_url)

validates a sitemap or sitemap-index XML,

inspect_schema(url)

extract every JSON-LD block from a page; report

internal_link_graph(start_url, max_depth=2, max_pages=50)

small

gsc_batch_inspect_urls

inspect up to 25 URLs, per-URL failures collected.

gsc_top_pages_by_query

which pages rank for a specific query. The

cf_zone_info

status, plan, name servers for a zone.

no

new credentials.

lighthouse_budget(url, budget)

wraps `psi_analyze` and verdicts

redirect_chain_audit(url, max_redirects=10)

walks the chain hop by hop.

validate_schema(url, types?)

verdict each JSON-LD entity against the

gsc_coverage_audit(urls, site_url?)

heuristic coverage audit. The GSC

cf_list_redirects(zone?)

list a zone's single (dynamic) redirect rules

supplied

URL list (typically pulled from a sitemap) and bulk-inspects

psi_opportunities(url, strategy?)

the actionable Lighthouse "opportunity"

cf_create_redirect(source, target, status_code?, ...)

create one edge

sitemap_health(sitemap_url, sample_size=25)

sample-HEAD audit. Status

content_opportunities(site_url?, days?, count?, impressions_min?)

ranks

cf_delete_redirect(rule_id, zone?)

remove a single-redirect rule by id

system_status

which services are configured/reachable, the Google auth

cf_bulk_redirect_upsert(items, list_name, confirm, ...)

create/append many

cf_managed_robots(action, zone?, ...)

get / configure / disable

policy

overriding your origin -

gsc_search_analytics

the workhorse: clicks/impressions/CTR/position by

put

that in your origin robots.txt. Writes are gated, need

gsc_portfolio_summary(days, include?, exclude?)

multi-property fleet

ga4_setup_audit(property_id?)

read-only SEO-measurement-readiness audit:

robots_ai_posture(goal?, sitemap_url?)

deterministic, offline advisor for

gsc_trending_pages(days, limit)

pages whose impressions grew most over

ga4_site_search(days?, limit?)

internal site-search query report (a

cf_settings_audit(zone?)

read-only audit of SEO-relevant Cloudflare zone

gsc_decaying_pages(days, limit)

same wrapper, ascending sort. Pages

ga4_landing_page_conversions(days?, organic_only?, limit?)

organic

cf_settings_update(settings, zone?, confirm?, acknowledge_hsts_risk?, dry_run?)

write the SEO/crawl/security settings the audit grades (SSL mode, Always-Use-

crux_snapshot(url? | origin?, form_factor?)

the current p75 Core Web