Local-first SEO MCP: track AI citations, Search Console, GA4, PageSpeed, Cloudflare, IndexNow, CrUX.
Connect Runs on your machine
claude mcp add seo-monster -e SEO_MCP_GOOGLE_OAUTH_CLIENT=<SEO_MCP_GOOGLE_OAUTH_CLIENT> -e SEO_MCP_GOOGLE_TOKEN=<SEO_MCP_GOOGLE_TOKEN> -e SEO_MCP_GSC_DEFAULT_SITE=<SEO_MCP_GSC_DEFAULT_SITE> -e SEO_MCP_GA4_PROPERTY_ID=<SEO_MCP_GA4_PROPERTY_ID> -e PSI_API_KEY=<PSI_API_KEY> -e CF_API_TOKEN=<CF_API_TOKEN> -e CF_ZONE=<CF_ZONE> -e SEO_MCP_INDEXNOW_KEY=<SEO_MCP_INDEXNOW_KEY> -e SEO_MCP_INDEXNOW_KEY_LOCATION=<SEO_MCP_INDEXNOW_KEY_LOCATION> -e SEO_MCP_ALLOW_DESTRUCTIVE=<SEO_MCP_ALLOW_DESTRUCTIVE> -e DATAFORSEO_LOGIN=<DATAFORSEO_LOGIN> -e DATAFORSEO_PASSWORD=<DATAFORSEO_PASSWORD> -e OPENPAGERANK_API_KEY=<OPENPAGERANK_API_KEY> -e PERPLEXITY_API_KEY=<PERPLEXITY_API_KEY> -e OPENAI_API_KEY=<OPENAI_API_KEY> -e ANTHROPIC_API_KEY=<ANTHROPIC_API_KEY> -e GEMINI_API_KEY=<GEMINI_API_KEY> -e GOOGLE_ADS_DEVELOPER_TOKEN=<GOOGLE_ADS_DEVELOPER_TOKEN> -e GOOGLE_ADS_CUSTOMER_ID=<GOOGLE_ADS_CUSTOMER_ID> -- uvx seo-monster==0.9.3
{
"mcpServers": {
"seo-monster": {
"command": "uvx",
"args": [
"seo-monster==0.9.3"
],
"env": {
"SEO_MCP_GOOGLE_OAUTH_CLIENT": "<SEO_MCP_GOOGLE_OAUTH_CLIENT>",
"SEO_MCP_GOOGLE_TOKEN": "<SEO_MCP_GOOGLE_TOKEN>",
"SEO_MCP_GSC_DEFAULT_SITE": "<SEO_MCP_GSC_DEFAULT_SITE>",
"SEO_MCP_GA4_PROPERTY_ID": "<SEO_MCP_GA4_PROPERTY_ID>",
"PSI_API_KEY": "<PSI_API_KEY>",
"CF_API_TOKEN": "<CF_API_TOKEN>",
"CF_ZONE": "<CF_ZONE>",
"SEO_MCP_INDEXNOW_KEY": "<SEO_MCP_INDEXNOW_KEY>",
"SEO_MCP_INDEXNOW_KEY_LOCATION": "<SEO_MCP_INDEXNOW_KEY_LOCATION>",
"SEO_MCP_ALLOW_DESTRUCTIVE": "<SEO_MCP_ALLOW_DESTRUCTIVE>",
"DATAFORSEO_LOGIN": "<DATAFORSEO_LOGIN>",
"DATAFORSEO_PASSWORD": "<DATAFORSEO_PASSWORD>",
"OPENPAGERANK_API_KEY": "<OPENPAGERANK_API_KEY>",
"PERPLEXITY_API_KEY": "<PERPLEXITY_API_KEY>",
"OPENAI_API_KEY": "<OPENAI_API_KEY>",
"ANTHROPIC_API_KEY": "<ANTHROPIC_API_KEY>",
"GEMINI_API_KEY": "<GEMINI_API_KEY>",
"GOOGLE_ADS_DEVELOPER_TOKEN": "<GOOGLE_ADS_DEVELOPER_TOKEN>",
"GOOGLE_ADS_CUSTOMER_ID": "<GOOGLE_ADS_CUSTOMER_ID>"
}
}
}
}
{
"mcpServers": {
"seo-monster": {
"command": "uvx",
"args": [
"seo-monster==0.9.3"
],
"env": {
"SEO_MCP_GOOGLE_OAUTH_CLIENT": "<SEO_MCP_GOOGLE_OAUTH_CLIENT>",
"SEO_MCP_GOOGLE_TOKEN": "<SEO_MCP_GOOGLE_TOKEN>",
"SEO_MCP_GSC_DEFAULT_SITE": "<SEO_MCP_GSC_DEFAULT_SITE>",
"SEO_MCP_GA4_PROPERTY_ID": "<SEO_MCP_GA4_PROPERTY_ID>",
"PSI_API_KEY": "<PSI_API_KEY>",
"CF_API_TOKEN": "<CF_API_TOKEN>",
"CF_ZONE": "<CF_ZONE>",
"SEO_MCP_INDEXNOW_KEY": "<SEO_MCP_INDEXNOW_KEY>",
"SEO_MCP_INDEXNOW_KEY_LOCATION": "<SEO_MCP_INDEXNOW_KEY_LOCATION>",
"SEO_MCP_ALLOW_DESTRUCTIVE": "<SEO_MCP_ALLOW_DESTRUCTIVE>",
"DATAFORSEO_LOGIN": "<DATAFORSEO_LOGIN>",
"DATAFORSEO_PASSWORD": "<DATAFORSEO_PASSWORD>",
"OPENPAGERANK_API_KEY": "<OPENPAGERANK_API_KEY>",
"PERPLEXITY_API_KEY": "<PERPLEXITY_API_KEY>",
"OPENAI_API_KEY": "<OPENAI_API_KEY>",
"ANTHROPIC_API_KEY": "<ANTHROPIC_API_KEY>",
"GEMINI_API_KEY": "<GEMINI_API_KEY>",
"GOOGLE_ADS_DEVELOPER_TOKEN": "<GOOGLE_ADS_DEVELOPER_TOKEN>",
"GOOGLE_ADS_CUSTOMER_ID": "<GOOGLE_ADS_CUSTOMER_ID>"
}
}
}
}
{
"servers": {
"seo-monster": {
"type": "stdio",
"command": "uvx",
"args": [
"seo-monster==0.9.3"
],
"env": {
"SEO_MCP_GOOGLE_OAUTH_CLIENT": "<SEO_MCP_GOOGLE_OAUTH_CLIENT>",
"SEO_MCP_GOOGLE_TOKEN": "<SEO_MCP_GOOGLE_TOKEN>",
"SEO_MCP_GSC_DEFAULT_SITE": "<SEO_MCP_GSC_DEFAULT_SITE>",
"SEO_MCP_GA4_PROPERTY_ID": "<SEO_MCP_GA4_PROPERTY_ID>",
"PSI_API_KEY": "<PSI_API_KEY>",
"CF_API_TOKEN": "<CF_API_TOKEN>",
"CF_ZONE": "<CF_ZONE>",
"SEO_MCP_INDEXNOW_KEY": "<SEO_MCP_INDEXNOW_KEY>",
"SEO_MCP_INDEXNOW_KEY_LOCATION": "<SEO_MCP_INDEXNOW_KEY_LOCATION>",
"SEO_MCP_ALLOW_DESTRUCTIVE": "<SEO_MCP_ALLOW_DESTRUCTIVE>",
"DATAFORSEO_LOGIN": "<DATAFORSEO_LOGIN>",
"DATAFORSEO_PASSWORD": "<DATAFORSEO_PASSWORD>",
"OPENPAGERANK_API_KEY": "<OPENPAGERANK_API_KEY>",
"PERPLEXITY_API_KEY": "<PERPLEXITY_API_KEY>",
"OPENAI_API_KEY": "<OPENAI_API_KEY>",
"ANTHROPIC_API_KEY": "<ANTHROPIC_API_KEY>",
"GEMINI_API_KEY": "<GEMINI_API_KEY>",
"GOOGLE_ADS_DEVELOPER_TOKEN": "<GOOGLE_ADS_DEVELOPER_TOKEN>",
"GOOGLE_ADS_CUSTOMER_ID": "<GOOGLE_ADS_CUSTOMER_ID>"
}
}
}
}
Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.
Tools
This server runs locally, so its tools are listed by your MCP client once it starts.
Environment variables
| Name | Description |
|---|---|
SEO_MCP_GOOGLE_OAUTH_CLIENTOptional | Path to your Desktop-app OAuth client-secrets JSON, downloaded from Google Cloud Console. Required for Search Console, Indexing, and GA4 tools. |
SEO_MCP_GOOGLE_TOKENOptional | Writable 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.json |
SEO_MCP_GSC_DEFAULT_SITEOptional | Default Search Console property, e.g. 'sc-domain:example.com' or 'https://www.example.com/'. |
SEO_MCP_GA4_PROPERTY_IDOptional | Default GA4 property, e.g. 'properties/123456789' or bare '123456789'. |
PSI_API_KEYOptional, secret | Google API key shared by PageSpeed Insights and Chrome UX Report History tools. Optional; both work anonymously at a tighter rate limit when unset. |
CF_API_TOKENOptional, secret | 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:Edit, Zone Settings:Edit, and (for bulk redirects) Account Rulesets:Edit + Account Filter Lists:Edit. |
CF_ZONEOptional | Default Cloudflare zone hostname, e.g. 'example.com'. |
SEO_MCP_INDEXNOW_KEYOptional, secret | IndexNow shared key (any 8-128 hex string you generate). Required only for the IndexNow tools. Host the key file at https://<your-host>/<key>.txt for engine verification. |
SEO_MCP_INDEXNOW_KEY_LOCATIONOptional | Override the default IndexNow key-file URL (https://<host>/<key>.txt). Set only if you host the key file at a non-standard path. |
SEO_MCP_ALLOW_DESTRUCTIVEOptional | Set to 'true' to enable the Cloudflare cache-purge tools. Default false: all destructive tools refuse to run. |
DATAFORSEO_LOGINOptional, secret | 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_adjacency_expand / onpage_serp_gap auto-fetch / ai_citation_track. |
DATAFORSEO_PASSWORDOptional, secret | DataForSEO Basic-auth password. Optional (v0.9). Required alongside DATAFORSEO_LOGIN. |
OPENPAGERANK_API_KEYOptional, secret | Open PageRank (DomCop) free API key. Optional (v0.9). Free competitor domain-authority proxy for onpage_serp_gap. |
PERPLEXITY_API_KEYOptional, secret | Perplexity Sonar API key. Optional (v0.9). One of the AI answer-engines for ai_citation_track. |
OPENAI_API_KEYOptional, secret | OpenAI API key (Responses web_search). Optional (v0.9). One of the AI answer-engines for ai_citation_track. |
ANTHROPIC_API_KEYOptional, secret | Anthropic API key (web_search tool). Optional (v0.9). One of the AI answer-engines for ai_citation_track. |
GEMINI_API_KEYOptional, secret | Google Gemini API key (Search grounding). Optional (v0.9). One of the AI answer-engines for ai_citation_track. |
GOOGLE_ADS_DEVELOPER_TOKENOptional, secret | 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_IDOptional | Google Ads customer id (digits). Optional (v0.9). Required alongside GOOGLE_ADS_DEVELOPER_TOKEN. |
Details
| Package | [email protected] (PYPI, stdio) |
| First published | 25 Sep 2026 |
| Last updated | 25 Sep 2026 |
| Registry name | io.github.avansaber/seo-monster |
More marketing and seo servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
