SEO Monster
Overview
Description from the maker (original English)
Local-first SEO MCP: track AI citations, Search Console, GA4, PageSpeed, Cloudflare, IndexNow, CrUX.
PopNx MCP’s three pillars
These three are never merged into one score: opinions, measurements and popularity are different things.
- User voiceiNo reviews yetReviews open together with accounts in a later step
- Our basic checksi1 of 1 passedChecked from public information; code not scanned yet
- UsageiEarly↓ 537/wk · ★ –
What you can do with it
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
- Connection: Runs on your computer
- Transport: stdio
- Category: Marketing & social media
- You need to fill in: PSI_API_KEY, CF_API_TOKEN, SEO_MCP_INDEXNOW_KEY, DATAFORSEO_LOGIN, DATAFORSEO_PASSWORD, OPENPAGERANK_API_KEY, PERPLEXITY_API_KEY, OPENAI_API_KEY, ANTHROPIC_API_KEY, GEMINI_API_KEY, GOOGLE_ADS_DEVELOPER_TOKEN
Install
Pick the AI app you use, then copy the settings.
Before you install
- Basic checks: 1 of 1 passed
- Runs on your computer with your user’s permissions (files, network, apps).
- You fill in yourself:
SEO_MCP_GOOGLE_OAUTH_CLIENT,SEO_MCP_GOOGLE_TOKEN,SEO_MCP_GSC_DEFAULT_SITE,SEO_MCP_GA4_PROPERTY_ID,PSI_API_KEY,CF_API_TOKEN,CF_ZONE,SEO_MCP_INDEXNOW_KEY,SEO_MCP_INDEXNOW_KEY_LOCATION,SEO_MCP_ALLOW_DESTRUCTIVE,DATAFORSEO_LOGIN,DATAFORSEO_PASSWORD,OPENPAGERANK_API_KEY,PERPLEXITY_API_KEY,OPENAI_API_KEY,ANTHROPIC_API_KEY,GEMINI_API_KEY,GOOGLE_ADS_DEVELOPER_TOKEN,GOOGLE_ADS_CUSTOMER_ID
Values marked secret are keys to your account. Never share them or paste them into a chat.
You need
- PyPIPython’s uv installed (for the uvx command)
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"seo-monster": {
"command": "uvx",
"args": [
"seo-monster"
],
"env": {
"SEO_MCP_GOOGLE_OAUTH_CLIENT": "your-value",
"SEO_MCP_GOOGLE_TOKEN": "your-value",
"SEO_MCP_GSC_DEFAULT_SITE": "your-value",
"SEO_MCP_GA4_PROPERTY_ID": "your-value",
"PSI_API_KEY": "your-value",
"CF_API_TOKEN": "your-value",
"CF_ZONE": "your-value",
"SEO_MCP_INDEXNOW_KEY": "your-value",
"SEO_MCP_INDEXNOW_KEY_LOCATION": "your-value",
"SEO_MCP_ALLOW_DESTRUCTIVE": "your-value",
"DATAFORSEO_LOGIN": "your-value",
"DATAFORSEO_PASSWORD": "your-value",
"OPENPAGERANK_API_KEY": "your-value",
"PERPLEXITY_API_KEY": "your-value",
"OPENAI_API_KEY": "your-value",
"ANTHROPIC_API_KEY": "your-value",
"GEMINI_API_KEY": "your-value",
"GOOGLE_ADS_DEVELOPER_TOKEN": "your-value",
"GOOGLE_ADS_CUSTOMER_ID": "your-value"
}
}
}
}Run this in your terminal
claude mcp add seo-monster --env SEO_MCP_GOOGLE_OAUTH_CLIENT=your-value --env SEO_MCP_GOOGLE_TOKEN=your-value --env SEO_MCP_GSC_DEFAULT_SITE=your-value --env SEO_MCP_GA4_PROPERTY_ID=your-value --env PSI_API_KEY=your-value --env CF_API_TOKEN=your-value --env CF_ZONE=your-value --env SEO_MCP_INDEXNOW_KEY=your-value --env SEO_MCP_INDEXNOW_KEY_LOCATION=your-value --env SEO_MCP_ALLOW_DESTRUCTIVE=your-value --env DATAFORSEO_LOGIN=your-value --env DATAFORSEO_PASSWORD=your-value --env OPENPAGERANK_API_KEY=your-value --env PERPLEXITY_API_KEY=your-value --env OPENAI_API_KEY=your-value --env ANTHROPIC_API_KEY=your-value --env GEMINI_API_KEY=your-value --env GOOGLE_ADS_DEVELOPER_TOKEN=your-value --env GOOGLE_ADS_CUSTOMER_ID=your-value -- uvx seo-monsterFill in the empty values before running it.
Or copy the settings yourself
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"seo-monster": {
"command": "uvx",
"args": [
"seo-monster"
],
"env": {
"SEO_MCP_GOOGLE_OAUTH_CLIENT": "your-value",
"SEO_MCP_GOOGLE_TOKEN": "your-value",
"SEO_MCP_GSC_DEFAULT_SITE": "your-value",
"SEO_MCP_GA4_PROPERTY_ID": "your-value",
"PSI_API_KEY": "your-value",
"CF_API_TOKEN": "your-value",
"CF_ZONE": "your-value",
"SEO_MCP_INDEXNOW_KEY": "your-value",
"SEO_MCP_INDEXNOW_KEY_LOCATION": "your-value",
"SEO_MCP_ALLOW_DESTRUCTIVE": "your-value",
"DATAFORSEO_LOGIN": "your-value",
"DATAFORSEO_PASSWORD": "your-value",
"OPENPAGERANK_API_KEY": "your-value",
"PERPLEXITY_API_KEY": "your-value",
"OPENAI_API_KEY": "your-value",
"ANTHROPIC_API_KEY": "your-value",
"GEMINI_API_KEY": "your-value",
"GOOGLE_ADS_DEVELOPER_TOKEN": "your-value",
"GOOGLE_ADS_CUSTOMER_ID": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Or copy the settings yourself
Paste into .vscode/mcp.json in your project
{
"servers": {
"seo-monster": {
"type": "stdio",
"command": "uvx",
"args": [
"seo-monster"
],
"env": {
"SEO_MCP_GOOGLE_OAUTH_CLIENT": "your-value",
"SEO_MCP_GOOGLE_TOKEN": "your-value",
"SEO_MCP_GSC_DEFAULT_SITE": "your-value",
"SEO_MCP_GA4_PROPERTY_ID": "your-value",
"PSI_API_KEY": "your-value",
"CF_API_TOKEN": "your-value",
"CF_ZONE": "your-value",
"SEO_MCP_INDEXNOW_KEY": "your-value",
"SEO_MCP_INDEXNOW_KEY_LOCATION": "your-value",
"SEO_MCP_ALLOW_DESTRUCTIVE": "your-value",
"DATAFORSEO_LOGIN": "your-value",
"DATAFORSEO_PASSWORD": "your-value",
"OPENPAGERANK_API_KEY": "your-value",
"PERPLEXITY_API_KEY": "your-value",
"OPENAI_API_KEY": "your-value",
"ANTHROPIC_API_KEY": "your-value",
"GEMINI_API_KEY": "your-value",
"GOOGLE_ADS_DEVELOPER_TOKEN": "your-value",
"GOOGLE_ADS_CUSTOMER_ID": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
Values you fill in
SEO_MCP_GOOGLE_OAUTH_CLIENTenvPath to your Desktop-app OAuth client-secrets JSON, downloaded from Google Cloud Console. Required for Search Console, Indexing, and GA4 tools.SEO_MCP_GOOGLE_TOKENenvWritable path where the cached OAuth token is stored. On first use, a browser opens for one-time consent and the token is written here. Default: ${HOME}/.config/seo-monster/token.jsonSEO_MCP_GSC_DEFAULT_SITEenvDefault Search Console property, e.g. 'sc-domain:example.com' or 'https://www.example.com/'.SEO_MCP_GA4_PROPERTY_IDenvDefault GA4 property, e.g. 'properties/123456789' or bare '123456789'.- Google API key shared by PageSpeed Insights and Chrome UX Report History tools. Optional; both work anonymously at a tighter rate limit when unset.
- Cloudflare API token. Optional; needed only for the Cloudflare tools. Scopes: Zone:Read, DNS:Read, Account Analytics:Read, and (only when destructive mode is on) Cache Purge:Purge, Single Redirect:Ed…
CF_ZONEenvDefault Cloudflare zone hostname, e.g. 'example.com'.- IndexNow shared key (any 8-128 hex string you generate). Required only for the IndexNow tools. Host the key file at https:// / .txt for engine verification.
SEO_MCP_INDEXNOW_KEY_LOCATIONenvOverride the default IndexNow key-file URL (https:// / .txt). Set only if you host the key file at a non-standard path.SEO_MCP_ALLOW_DESTRUCTIVEenvSet to 'true' to enable the Cloudflare cache-purge tools. Default false: all destructive tools refuse to run.- DataForSEO Basic-auth login. Optional (v0.9). Unlocks SERP/PAA/related, keyword volume+difficulty+intent, competitor keyword-gap, and Google AI Overview citations for keyword_universe / serp_adjacenc…
- DataForSEO Basic-auth password. Optional (v0.9). Required alongside DATAFORSEO_LOGIN.
- Open PageRank (DomCop) free API key. Optional (v0.9). Free competitor domain-authority proxy for onpage_serp_gap.
- Perplexity Sonar API key. Optional (v0.9). One of the AI answer-engines for ai_citation_track.
- OpenAI API key (Responses web_search). Optional (v0.9). One of the AI answer-engines for ai_citation_track.
- Anthropic API key (web_search tool). Optional (v0.9). One of the AI answer-engines for ai_citation_track.
- Google Gemini API key (Search grounding). Optional (v0.9). One of the AI answer-engines for ai_citation_track.
- Google Ads API developer token. Optional (v0.9). Volume-only alternative to DataForSEO for keyword_universe; live use also needs an adwords-scope OAuth re-consent.
GOOGLE_ADS_CUSTOMER_IDenvGoogle Ads customer id (digits). Optional (v0.9). Required alongside GOOGLE_ADS_DEVELOPER_TOKEN.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
What it can do
Runs on your computer; the tool list appears in your AI app after you install it.
Basic checksi
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026
- ✓ Pass
Maker matches the repo
The registry name was verified with the GitHub account avansaber, which owns the repo
- … Not checked yet
Still maintained
We have not read this repo from GitHub yet
- … Not checked yet
Has a licence
We have not read this repo from GitHub yet
- – Not applicable
Endpoint responds
This one runs on your computer; there is no internet endpoint
- – Not applicable
Sign-in with OAuth
Runs on your computer and uses local settings instead
- … Not checked yet
No hidden instructions in tool descriptions
Runs on your computer; we can only read tool lists from internet endpoints
Compared with others in Marketing & social mediai
- More stars than 0% of the other 3603 servers in this category
- Published to the registry more recently than 39% of the other 3603 servers in this category
- Basic checks equal to or better than 100% of the other 3603 servers in this category
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
Common questions
Is SEO Monster safe?
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
What keys or codes does it need?
You need to fill in: PSI_API_KEY, CF_API_TOKEN, SEO_MCP_INDEXNOW_KEY, DATAFORSEO_LOGIN, DATAFORSEO_PASSWORD, OPENPAGERANK_API_KEY, PERPLEXITY_API_KEY, OPENAI_API_KEY, ANTHROPIC_API_KEY, GEMINI_API_KEY, GOOGLE_ADS_DEVELOPER_TOKEN
Does it run on my computer or in the cloud?
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
Is it still maintained?
The GitHub repo last changed –, and the latest version (0.9.3) reached the registry 44 days ago.
Which apps can use it?
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.
What can I use instead?
In the same category: MCP YouTube Transcript, Google Analytics MCP, BibiGPT YouTube Video Summarizer
Alternatives
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Google Analytics MCP
GA4 MCP server for AI agents: schema discovery, server-side aggregation, analysis-ready defaults.
BibiGPT YouTube Video Summarizer
AI video summarizer: summarize and transcribe YouTube, Bilibili, TikTok and podcast videos.
README from the maker
Open the README
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Don't learn another SEO dashboard. Just ask.
The open-source SEO analyst that lives inside the AI assistant you already use — working from your own Search Console, Analytics, and PageSpeed data, on your machine.
You don't open a new tool — you just ask, in plain English, inside Claude (or Cursor / Cline / Codex):
You *"What should I write about next?"*
🦖 SEOMonster Pulls your Search Console and surfaces three topics you're *almost* ranking for — positions 8–20 with real demand — ranked by opportunity. Say the word and it drafts the brief.
| You ask … | … SEOMonster does |
|---|---|
| *"What should I write about next?"* | Surfaces near-ranking topics from your own Search Console demand |
| *"Is this page ready to publish?"* | Runs the technical-SEO + structured-data checks before you ship |
| *"Get this indexed."* | Nudges Google (Indexing API) and Bing / Yandex (IndexNow) |
| *"Did my change actually move rankings?"* | Before/after attribution vs a matched control group — with a confidence interval, not a guess |
| *"Is ChatGPT recommending us, or our competitors?"* | Tracks your brand's share of voice across the AI answer engines |
70 tools across Search Console, GA4, PageSpeed, Cloudflare, AI-citation tracking, keyword discovery, and technical SEO — every one returning the same JSON result envelope, every one driven by your own credentials. No new dashboard to learn; you chat with the assistant you already use.
[!NOTE]
Published on PyPI as `seo-monster` (so the command is
uvx seo-monster). The import package isseo_mcp;seo-mcpis a dev/local alias. The package ships zero secrets — every credential is resolved at runtime from your own environment or config file.
- Your data, your machine. User-credential-driven; nothing is sent to any third party.
- Read-first, safe by default. Reads always work; the two routine writes (sitemap submit, indexing request) are on by default; the Cloudflare write tools (cache purge, redirects, settings, managed robots.txt) are gated behind
SEO_MCP_ALLOW_DESTRUCTIVE, and the riskier ones also need a per-callconfirmtoken. - Lean. Standard library + the
mcpSDK + the Google client libraries; PageSpeed and Cloudflare ride onurllib, no extra HTTP dependency.
Local evidence workbench
SEOmonster Workbench is a separately installed local companion for preserving source evidence, inspecting recommendation calculations, drafting action plans and comparing later observations. Its CLI stores project records in SQLite and supports portable exports, backup/restore and deterministic replay. The optional MCP interface exposes 17 tools for one configured project. Plans and recorded approvals remain separate from execution; the workbench has no external executor.
Start with the offline fixture workflow. The CLI needs no provider credentials or paid data. SDK 2 capture requires SEOmonster 0.10.0 or later, the first engine release on MCP SDK 2. The Workbench itself installs from source; it is not published on PyPI.
Quickstart
[!TIP]
Fastest path: the one-click install buttons above. Or add it to any MCP client by hand:
{
"mcpServers": { "seomonster": { "command": "uvx", "args": ["seo-monster"] } } }
Run the one-time Google sign-in once — uvx --from seo-monster seo-monster auth — then ask your assistant to call `system_status` to confirm what's connected. Full per-client setup and credentials are in Install and Auth.
How it works
Provider requests and local records
Selected tools contact Google Search Console, Indexing, GA4 Data/Admin, Google Ads, PageSpeed Insights, CrUX, Cloudflare or IndexNow. Optional research uses DataForSEO, Open PageRank, Perplexity, OpenAI, Anthropic or Gemini. Technical checks fetch the requested websites and related robots, sitemap, redirect or verification URLs. Providers receive the arguments and credentials needed for the selected request; optional paid calls can incur provider charges. These calls do not add maintainer telemetry.
The engine does not keep a query/result history. The separately installed local Workbench stores user-owned evidence and decision records in SQLite and creates exports only when requested. Your MCP host controls its own transcripts and logs. See Privacy for destinations and persistence scopes.
flowchart LR
U["You — plain English"] --> H["Claude · Cursor · Cline · Codex"] H -- "MCP · stdio" --> S["SEOMonster 70 tools"] S --> GSC["Search Console · GA4"] S --> PSI["PageSpeed · CrUX"] S --> CF["Cloudflare · IndexNow"] S --> AI["AI engines · SERP (optional)"] S -. "your creds · your machine" .-> U
SEOMonster is a stdio MCP server: your AI host launches it, it calls Google / Cloudflare / the AI engines with *your* credentials, and returns a consistent JSON envelope the assistant reads back to you in plain language.
Requirements
For the `.mcpb` bundle path (Claude Desktop): just Claude Desktop on macOS or Windows. The bundle declares Python 3.11+ as a runtime; Claude Desktop materializes the environment for you. No prior uv install needed.
For the `uvx` path (Cursor, Cline, Codex, advanced Claude Desktop): Python 3.11 or newer plus uv (which provides uvx). Find the absolute path to uvx with which uvx; GUI hosts do not read your shell profile, so MCP configs need the full path.
Tools
70 tools, grouped by service. All return the same result envelope (see Result envelope). Call system_status first if unsure what is configured. The server also publishes thirteen named workflow prompts.
Cross-service
system_status- which services are configured/reachable, the Google auth method and scopes, whether destructive mode is on, the full tool catalog, and the list of registered prompts.
📂 Browse all 70 tools — grouped by service (GSC · GA4 · AI/GEO · keyword discovery · content · PageSpeed/CrUX · Cloudflare · IndexNow · technical · schema). Click to expand.
Google Search Console (18)
*Workhorses*
gsc_list_properties- properties the credentials can see, with permission level and a derivedwritableflag (true forsiteOwner/siteFullUser).gsc_search_analytics- the workhorse: clicks/impressions/CTR/position by dimensions, date range, filters, anddata_state.gsc_top_queries/gsc_top_pages- convenience top-N wrappers.gsc_compare_periods- current vs prior window with per-key deltas. v0.2.0 addedsort_by,sort_dir,min_delta_clicks/_impressions/_position,anomalies_only+sigma_threshold, andtopfor one-call movers / losers / outliers reporting.gsc_inspect_url- URL Inspection (index verdict, coverage, canonicals).gsc_batch_inspect_urls- inspect up to 25 URLs, per-URL failures collected.gsc_list_sitemaps- registered sitemaps and their status.gsc_submit_sitemap- submit a sitemap (write, un-gated; needs the writable scope). Accepts eithersitemap_url(friendly) orfeedpath(raw API field).gsc_request_indexing- request (re)crawl via the Indexing API (write, un-gated). Accepts singularurlorurls.
*Query intelligence (v0.2.0)*
gsc_query_opportunities- queries already ranking top N with below-target CTR. Title and meta optimization candidates.gsc_query_gaps- queries that draw impressions but barely any clicks. Content opportunity signal.gsc_new_queries- queries appearing in the current window with no prior impressions. Emerging topics.gsc_top_pages_by_query- which pages rank for a specific query. The cannibalization audit input.
*Multi-property + lifecycle (v0.5.0)*
gsc_portfolio_summary(days, include?, exclude?)- multi-property fleet view. Per-property one-row summary (clicks, impressions, CTR, position) for the last N days, plus a portfolio-level rollup. Honors optionalinclude/excludefilters. The single fastest answer to "how is the whole portfolio doing?" across agency or multi-brand setups.gsc_trending_pages(days, limit)- pages whose impressions grew most over the last N days vs the prior N days. Wrapper ongsc_compare_periodswithdimensions=["page"], sort_by="delta_impressions", sort_dir="desc".gsc_decaying_pages(days, limit)- same wrapper, ascending sort. Pages to rescue.gsc_coverage_audit(urls, site_url?)- heuristic coverage audit. The GSC Index Coverage report is not exposed in the API; this tool takes a user- supplied URL list (typically pulled from a sitemap) and bulk-inspects each, then rolls up verdicts (PASS / PARTIAL / FAIL) and coverage_state frequencies.
Content intelligence (4)
content_opportunities(site_url?, days?, count?, impressions_min?)- ranks data-grounded content topics from your own Search Console data: fuses CTR-vs-expected gap (curve self-calibrated from your own per-position CTR), striking-distance position, demand, and momentum into a transparent opportunity score; flags cannibalization. If a GA4 property is configured, it also weights each topic by the organic conversions its top page already drives (up to +50%), so topics that convert rank higher;filters_applied.ga4_value_statusreports whether that ran and why (applied/no_ga4_property/ga4_unreachable/no_conversions). Prioritizes demand you already have; does not
Only the beginning is shown; read the rest in the repo