seo-audit-console — Claude Code MCP server: SEO audit
Joins Search Console history with a live crawl, then ranks each finding by the clicks a fix could bring back.
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-consoleWhat seo-audit-console 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.
What it helps with
- 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 for the agent
- Run an SEO audit on mysite.com
- Refresh mysite.com
- Generate the fix for finding #1
How to install seo-audit-console
Platform CLI
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-consoleReplace <…> with your own values. 3 more environment variables are in the server README
Platform CLI
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-consoleReplace <…> with your own values. 3 more environment variables are in the server README
Config file
{
"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
Config file
{
"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
Platform CLI
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-consoleReplace <…> with your own values. 3 more environment variables are in the server README
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about seo-audit-console
How do I install seo-audit-console in Claude Code?
With one command: `claude mcp add seo-audit-console -e GOOGLE_APPLICATION_CREDENTIALS=<GOOGLE_APPLICATION_CREDENTIALS> -e DATAFORSEO_PASSWORD=<DATAFORSEO_PASSWORD> -e MAJESTIC_API_KEY=<MAJESTIC_API_KEY> -e CRUX_API_KEY=<CRUX_API_KEY> -- npx -y @houtini/seo-audit-console`. The service account key is required; the other variables can stay empty.
What does seo-audit-console do?
It reads your Google Search Console history, crawls the site, and ties every finding to the traffic at stake. Each problem comes with a suggested fix.
What do I need besides the service account key?
Node.js 20 or newer. The service account from the JSON key also has to be added as a user on your Search Console property, otherwise the server cannot see your data.