Per-URL SEO verdicts from GSC, GA4, Matomo, Clarity, AI citations: refresh/expand/merge/kill.
Per-URL SEO verdicts from GSC, GA4, Matomo, Clarity, AI citations: refresh/expand/merge/kill. That is what the seo performance mcp mcp server brings to an AI assistant: the same capability, reachable through the Model Context Protocol rather than a separate app or dashboard.
A MCP server that turns your scattered SEO and analytics data into one clear verdict per URL. Plug it into Claude, Cursor, or any MCP-aware client and ask: "Which three posts should I update this week?" - and get an answer backed by hard numbers.
The server publishes 8 tools. What each one is for:
posts_list — Posts with {url, title, age_days, tags} from sitemap, Ghost, or your POSTS_LISTposts_snapshot — Per-URL unified rollup for a 30/60/90-day window: GSC + Matomo + GA4 + Clarity + citations + metaposts_decay_curve — Weekly GSC clicks/impressions/position buckets + a decay/plateau/growth trend labelposts_verdict — Verdict (refresh/expand/merge/kill/double_down/hold) + reason codes + 0-1 confidenceposts_refresh_brief — Markdown brief for a human or downstream LLM editor: numbers, top queries, suggested actionscohort_report — Cohort verdict table sorted by priority + confidence. "Which three posts should I refresh this week?"posts_cite_loss — LLM citations that dropped off for a given URL. Needs CITATION_INTELLIGENCE_URLgsc_quick_wins — (page, query) pairs at positions 5-15 with low CTR - fastest title-rewrite winsInstallation goes through your MCP client rather than a global install: point it at @automatelab/seo-performance-mcp on npm and it is fetched when the client starts. The copy-paste blocks for Claude Desktop, Claude Code and Cursor are further down this page.
Configuration is passed through the environment: POSTS_SITEMAP_URL, GSC_SERVICE_ACCOUNT_JSON, GSC_SITE_URL, MATOMO_URL, MATOMO_TOKEN, MATOMO_SITE_ID, GA4_PROPERTY_ID, GA4_SERVICE_ACCOUNT_JSON. Treat anything key-shaped as a real credential — scope it to the minimum the server needs, and rotate it if it ever lands in a shared config.
Plenty of AI and media services servers cover similar ground. The differences that matter in practice are scope of access and how much setup stands between you and a working tool call. SEO Performance MCP's toolset — posts_list, posts_snapshot, posts_decay_curve and 5 more — is a fair guide to whether it matches your workflow. It is maintained by AutomateLab-tech; worth a glance at recent repository activity before you build anything load-bearing on it.
SyncDev reviews every entry in this directory against the project's own documentation before publishing, and revisits them as servers change.
| Tool | What it does |
|---|---|
| posts_list | Posts with {url, title, age_days, tags} from sitemap, Ghost, or your POSTS_LIST. |
| posts_snapshot | Per-URL unified rollup for a 30/60/90-day window: GSC + Matomo + GA4 + Clarity + citations + meta. |
| posts_decay_curve | Weekly GSC clicks/impressions/position buckets + a decay/plateau/growth trend label. |
| posts_verdict | Verdict (refresh/expand/merge/kill/double_down/hold) + reason codes + 0-1 confidence. |
| posts_refresh_brief | Markdown brief for a human or downstream LLM editor: numbers, top queries, suggested actions. |
| cohort_report | Cohort verdict table sorted by priority + confidence. "Which three posts should I refresh this week?" |
| posts_cite_loss | LLM citations that dropped off for a given URL. Needs CITATION_INTELLIGENCE_URL. |
| gsc_quick_wins | (page, query) pairs at positions 5-15 with low CTR - fastest title-rewrite wins. |
{
"mcpServers": {
"seo-performance": {
"command": "npx",
"args": ["-y", "@automatelab/seo-performance-mcp"],
"env": {
"POSTS_SITEMAP_URL": "your-value",
"GSC_SERVICE_ACCOUNT_JSON": "your-value",
"GSC_SITE_URL": "your-value",
"MATOMO_URL": "your-value",
"MATOMO_TOKEN": "your-value",
"MATOMO_SITE_ID": "your-value",
"GA4_PROPERTY_ID": "your-value",
"GA4_SERVICE_ACCOUNT_JSON": "your-value"
}
}
}
}Add to claude_desktop_config.json, then restart Claude Desktop.
| Variable | Description | Required |
|---|---|---|
| POSTS_SITEMAP_URL | Endpoint or connection string the server talks to. | Yes |
| GSC_SERVICE_ACCOUNT_JSON | Configuration value read at startup. | Optional |
| GSC_SITE_URL | Endpoint or connection string the server talks to. | Yes |
| MATOMO_URL | Endpoint or connection string the server talks to. | Yes |
| MATOMO_TOKEN | Credential the server authenticates with. | Yes |
| MATOMO_SITE_ID | Configuration value read at startup. | Optional |
| GA4_PROPERTY_ID | Configuration value read at startup. | Optional |
| GA4_SERVICE_ACCOUNT_JSON | Configuration value read at startup. | Optional |
Build a programmable telecommunications stack for connecting telephony services with the Internet via a cloud-based utility.
Search built for AI, not humans — semantic web search that returns model-ready content, plus code context.
Answers, not links — delegate questions to Perplexity's search-grounded models and get cited responses back.
Give your assistant a voice — text-to-speech, voice cloning and audio tools from the ElevenLabs API.
Give your assistant a real code sandbox — isolated cloud VMs for actually running the code it writes.
The ML hub in your context window — search models, datasets, papers and run Spaces from the official server.