# seo-audit-console

Joins Search Console history with a live crawl, then ranks each finding by the clicks a fix could bring back.

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

## What it does

The server runs inside Claude and pulls two things together: your Google Search Console history and a fresh crawl of the site. Findings come out ordered by the clicks a fix could recover, not by how alarming the check name sounds. Each one arrives with the fix written out — a redirect rule, JSON-LD, internal links.

The core audit needs only `GOOGLE_APPLICATION_CREDENTIALS`, the JSON key of a Google Cloud service account. That account has to be added as a user on your Search Console property, or the server sees nothing. DataForSEO, Majestic and `CRUX_API_KEY` come in later, once your questions turn to competitors and links. An empty value switches that tier off, and placeholder text such as `your-key-here` counts as empty too — the server says so in its log, so a tier that stays off is worth a look there.

Node.js 20 or newer is required. Your data stays on your machine. Three ways to read the result: the dashboard drawn in the chat, the full page in a browser at a local link like `http://127.0.0.1:53817/dashboard?siteUrl=…`, or one self-contained HTML file to send a client. The link answers on `127.0.0.1` only, and the port changes on every server start, so use the link from the latest reply.

## Requirements
- Needs: Node.js (commands run via npx)
- Environment variables: `GOOGLE_APPLICATION_CREDENTIALS`, `SAC_DATA_DIR`, `DATAFORSEO_USERNAME`, `DATAFORSEO_PASSWORD`, `DATAFORSEO_CACHE_DAYS`, `MAJESTIC_API_KEY`, `MAJESTIC_CACHE_DAYS`, `CRUX_API_KEY` — 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 GOOGLE_APPLICATION_CREDENTIALS=<GOOGLE_APPLICATION_CREDENTIALS> --env SAC_DATA_DIR=<SAC_DATA_DIR> --env DATAFORSEO_USERNAME=<DATAFORSEO_USERNAME> --env DATAFORSEO_PASSWORD=<DATAFORSEO_PASSWORD> --env DATAFORSEO_CACHE_DAYS=<DATAFORSEO_CACHE_DAYS> --transport stdio seo-audit-console -- npx -y @houtini/seo-audit-console
```
Replace <…> with your own values. 3 more environment variables are in the server README

### Codex

**Platform CLI**
```bash
codex mcp add seo-audit-console --env GOOGLE_APPLICATION_CREDENTIALS=<GOOGLE_APPLICATION_CREDENTIALS> --env SAC_DATA_DIR=<SAC_DATA_DIR> --env DATAFORSEO_USERNAME=<DATAFORSEO_USERNAME> --env DATAFORSEO_PASSWORD=<DATAFORSEO_PASSWORD> --env DATAFORSEO_CACHE_DAYS=<DATAFORSEO_CACHE_DAYS> -- npx -y @houtini/seo-audit-console
```
Replace <…> with your own values. 3 more environment variables are in the server README

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "seo-audit-console": {
            "command": "npx",
            "args": [
                "-y",
                "@houtini/seo-audit-console"
            ],
            "env": {
                "GOOGLE_APPLICATION_CREDENTIALS": "<GOOGLE_APPLICATION_CREDENTIALS>",
                "SAC_DATA_DIR": "<SAC_DATA_DIR>",
                "DATAFORSEO_USERNAME": "<DATAFORSEO_USERNAME>",
                "DATAFORSEO_PASSWORD": "<DATAFORSEO_PASSWORD>",
                "DATAFORSEO_CACHE_DAYS": "<DATAFORSEO_CACHE_DAYS>"
            }
        }
    }
}
```
Replace <…> with your own values. 3 more environment variables are in the server README

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "seo-audit-console": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@houtini/seo-audit-console"
            ],
            "env": {
                "GOOGLE_APPLICATION_CREDENTIALS": "<GOOGLE_APPLICATION_CREDENTIALS>",
                "SAC_DATA_DIR": "<SAC_DATA_DIR>",
                "DATAFORSEO_USERNAME": "<DATAFORSEO_USERNAME>",
                "DATAFORSEO_PASSWORD": "<DATAFORSEO_PASSWORD>",
                "DATAFORSEO_CACHE_DAYS": "<DATAFORSEO_CACHE_DAYS>"
            }
        }
    }
}
```
Replace <…> with your own values. 3 more environment variables are in the server README

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e GOOGLE_APPLICATION_CREDENTIALS=<GOOGLE_APPLICATION_CREDENTIALS> -e SAC_DATA_DIR=<SAC_DATA_DIR> -e DATAFORSEO_USERNAME=<DATAFORSEO_USERNAME> -e DATAFORSEO_PASSWORD=<DATAFORSEO_PASSWORD> -e DATAFORSEO_CACHE_DAYS=<DATAFORSEO_CACHE_DAYS> seo-audit-console npx -y @houtini/seo-audit-console
```
Replace <…> with your own values. 3 more environment variables are in the server README

## When to use it
- find pages losing clicks at a healthy position
- untangle keyword cannibalisation between pages
- check whether a robots-blocked section still earns traffic
- export a client-ready report as a single HTML file
- compare the current crawl against the previous one

## Example prompts
- Run an SEO audit on mysite.com
- Refresh mysite.com
- Generate the fix for finding #1

## Similar
- [New-Term Radar](https://affpapa.org/en/nevibecode/mcp/new-term-radar.md) — MCP server · ★ 1766
- [NotFair](https://affpapa.org/en/nevibecode/mcp/notfair.md) — MCP server · ★ 4055
- [seo-monster](https://affpapa.org/en/nevibecode/mcp/seo-monster.md) — MCP server · ★ 553
- [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

---
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
