seo monster for VS Code
io.github.avansaber/seo-monster
Local-first SEO MCP: track AI citations, Search Console, GA4, PageSpeed, Cloudflare, IndexNow, CrUX.
client:VS Code
transport:stdio
runtime:pypi
Install seo monster in VS Code
.vscode/mcp.json
{
"inputs": [
{
"type": "promptString",
"id": "seo-mcp-google-oauth-client",
"description": "SEO_MCP_GOOGLE_OAUTH_CLIENT",
"password": true
},
{
"type": "promptString",
"id": "seo-mcp-google-token",
"description": "SEO_MCP_GOOGLE_TOKEN",
"password": true
},
{
"type": "promptString",
"id": "seo-mcp-gsc-default-site",
"description": "SEO_MCP_GSC_DEFAULT_SITE",
"password": true
},
{
"type": "promptString",
"id": "seo-mcp-ga4-property-id",
"description": "SEO_MCP_GA4_PROPERTY_ID",
"password": true
},
{
"type": "promptString",
"id": "psi-api-key",
"description": "PSI_API_KEY",
"password": true
},
{
"type": "promptString",
"id": "cf-api-token",
"description": "CF_API_TOKEN",
"password": true
},
{
"type": "promptString",
"id": "cf-zone",
"description": "CF_ZONE",
"password": true
},
{
"type": "promptString",
"id": "seo-mcp-indexnow-key",
"description": "SEO_MCP_INDEXNOW_KEY",
"password": true
},
{
"type": "promptString",
"id": "seo-mcp-indexnow-key-location",
"description": "SEO_MCP_INDEXNOW_KEY_LOCATION",
"password": true
},
{
"type": "promptString",
"id": "seo-mcp-allow-destructive",
"description": "SEO_MCP_ALLOW_DESTRUCTIVE",
"password": true
},
{
"type": "promptString",
"id": "seo-mcp-serp-provider",
"description": "SEO_MCP_SERP_PROVIDER",
"password": true
},
{
"type": "promptString",
"id": "serpbase-api-key",
"description": "SERPBASE_API_KEY",
"password": true
},
{
"type": "promptString",
"id": "dataforseo-login",
"description": "DATAFORSEO_LOGIN",
"password": true
},
{
"type": "promptString",
"id": "dataforseo-password",
"description": "DATAFORSEO_PASSWORD",
"password": true
},
{
"type": "promptString",
"id": "openpagerank-api-key",
"description": "OPENPAGERANK_API_KEY",
"password": true
},
{
"type": "promptString",
"id": "perplexity-api-key",
"description": "PERPLEXITY_API_KEY",
"password": true
},
{
"type": "promptString",
"id": "openai-api-key",
"description": "OPENAI_API_KEY",
"password": true
},
{
"type": "promptString",
"id": "anthropic-api-key",
"description": "ANTHROPIC_API_KEY",
"password": true
},
{
"type": "promptString",
"id": "gemini-api-key",
"description": "GEMINI_API_KEY",
"password": true
},
{
"type": "promptString",
"id": "google-ads-developer-token",
"description": "GOOGLE_ADS_DEVELOPER_TOKEN",
"password": true
},
{
"type": "promptString",
"id": "google-ads-customer-id",
"description": "GOOGLE_ADS_CUSTOMER_ID",
"password": true
}
],
"servers": {
"seo-monster": {
"type": "stdio",
"command": "uvx",
"args": [
"seo-monster"
],
"env": {
"SEO_MCP_GOOGLE_OAUTH_CLIENT": "${input:seo-mcp-google-oauth-client}",
"SEO_MCP_GOOGLE_TOKEN": "${input:seo-mcp-google-token}",
"SEO_MCP_GSC_DEFAULT_SITE": "${input:seo-mcp-gsc-default-site}",
"SEO_MCP_GA4_PROPERTY_ID": "${input:seo-mcp-ga4-property-id}",
"PSI_API_KEY": "${input:psi-api-key}",
"CF_API_TOKEN": "${input:cf-api-token}",
"CF_ZONE": "${input:cf-zone}",
"SEO_MCP_INDEXNOW_KEY": "${input:seo-mcp-indexnow-key}",
"SEO_MCP_INDEXNOW_KEY_LOCATION": "${input:seo-mcp-indexnow-key-location}",
"SEO_MCP_ALLOW_DESTRUCTIVE": "${input:seo-mcp-allow-destructive}",
"SEO_MCP_SERP_PROVIDER": "${input:seo-mcp-serp-provider}",
"SERPBASE_API_KEY": "${input:serpbase-api-key}",
"DATAFORSEO_LOGIN": "${input:dataforseo-login}",
"DATAFORSEO_PASSWORD": "${input:dataforseo-password}",
"OPENPAGERANK_API_KEY": "${input:openpagerank-api-key}",
"PERPLEXITY_API_KEY": "${input:perplexity-api-key}",
"OPENAI_API_KEY": "${input:openai-api-key}",
"ANTHROPIC_API_KEY": "${input:anthropic-api-key}",
"GEMINI_API_KEY": "${input:gemini-api-key}",
"GOOGLE_ADS_DEVELOPER_TOKEN": "${input:google-ads-developer-token}",
"GOOGLE_ADS_CUSTOMER_ID": "${input:google-ads-customer-id}"
}
}
}
}
VS Code prompts for each input the first time the server starts, so no secret is written to the file. VS Code docs