# seo-monster

A local MCP server that answers SEO questions inside your assistant, pulling Search Console, GA4, PageSpeed and Cloudflare data from your own machine.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 553
- Author: avansaber
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/avansaber/seo-monster
- Updated: 2026-10-18
- HTML: https://affpapa.org/en/nevibecode/mcp/seo-monster

## What it does

seo-monster runs as a stdio MCP server and hands your assistant 70 tools: Search Console, GA4, PageSpeed, CrUX, Cloudflare, IndexNow, brand mentions in AI search answers, keyword discovery and technical checks. Every call returns the same JSON envelope, so replies stay readable in chat. Thirteen named workflow prompts ship with it.

Install runs through `uvx seo-monster`; the package lives on PyPI. That path needs Python 3.11 or newer plus `uv`, which supplies `uvx`. GUI hosts ignore your shell profile, so put the full path to `uvx` in the MCP config — `which uvx` prints it. Sign in to Google once with `uvx --from seo-monster seo-monster auth`, then have the assistant call `system_status` to see what is connected.

Reads always work. Two routine writes — sitemap submission and indexing requests — are enabled by default. Cloudflare write tools (cache purge, redirects, settings, robots.txt management) sit behind `SEO_MCP_ALLOW_DESTRUCTIVE`, and the riskiest ones also want a `confirm` token on the call itself. Credentials come from your environment or config file; nothing leaves your machine.

## Requirements
- Needs: Python and uv (commands run via uvx)
- Environment variables: `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` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env SEO_MCP_GOOGLE_OAUTH_CLIENT=<SEO_MCP_GOOGLE_OAUTH_CLIENT> --env SEO_MCP_GOOGLE_TOKEN=<SEO_MCP_GOOGLE_TOKEN> --env SEO_MCP_GSC_DEFAULT_SITE=<SEO_MCP_GSC_DEFAULT_SITE> --env SEO_MCP_GA4_PROPERTY_ID=<SEO_MCP_GA4_PROPERTY_ID> --env PSI_API_KEY=<PSI_API_KEY> --transport stdio seo-monster -- uvx seo-monster
```
Replace <…> with your own values. 14 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from seo-monster <command>

### Codex

**Platform CLI**
```bash
codex mcp add seo-monster --env SEO_MCP_GOOGLE_OAUTH_CLIENT=<SEO_MCP_GOOGLE_OAUTH_CLIENT> --env SEO_MCP_GOOGLE_TOKEN=<SEO_MCP_GOOGLE_TOKEN> --env SEO_MCP_GSC_DEFAULT_SITE=<SEO_MCP_GSC_DEFAULT_SITE> --env SEO_MCP_GA4_PROPERTY_ID=<SEO_MCP_GA4_PROPERTY_ID> --env PSI_API_KEY=<PSI_API_KEY> -- uvx seo-monster
```
Replace <…> with your own values. 14 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from seo-monster <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "seo-monster": {
            "command": "uvx",
            "args": [
                "seo-monster"
            ],
            "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>"
            }
        }
    }
}
```
Replace <…> with your own values. 14 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from seo-monster <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "seo-monster": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "seo-monster"
            ],
            "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>"
            }
        }
    }
}
```
Replace <…> with your own values. 14 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from seo-monster <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -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> seo-monster uvx seo-monster
```
Replace <…> with your own values. 14 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from seo-monster <command>

## When to use it
- find topics where the site already ranks close to the top and get a brief
- check a page for technical SEO and structured-data issues before publishing
- submit a new URL for indexing to Google, Bing and Yandex
- compare rankings before and after a change against a control group
- see how often the brand shows up in AI answer engines

## Example prompts
- What should I write about next? Check Search Console and show topics at positions 8–20.
- Run the technical SEO and structured-data checks on `/blog/new-post`.
- Get this URL indexed and tell me what Google and Bing replied.

## Similar
- [Google Maps MCP Server](https://affpapa.org/en/nevibecode/mcp/google-maps-mcp-server.md) — MCP server · ★ 479
- [squirrelscan](https://affpapa.org/en/nevibecode/mcp/squirrelscan.md) — MCP server · ★ 296
- [Tin](https://affpapa.org/en/nevibecode/mcp/tin.md) — MCP server · ★ 263
- [lighthouse-mcp](https://affpapa.org/en/nevibecode/mcp/lighthouse-mcp.md) — MCP server · ★ 212
- [SerpApi](https://affpapa.org/en/nevibecode/mcp/serpapi.md) — MCP server · ★ 182
- [Analook — Competitor Intelligence](https://affpapa.org/en/nevibecode/mcp/analook-competitor-intelligence.md) — MCP server · ★ 111

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
