Skip to content
VS Code

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

seo monster in other clients