A side-by-side look at the Seo Performance MCP and AI Visibility MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Seo Performance MCP for marketing work as a local process; choose AI Visibility for marketing as a local process. You can also run both side by side in one mcpServers block.
posts_list, posts_snapshot, posts_decay_curve.check_brand_visibility, check_single_query, get_visibility_score.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Marketing | Marketing |
| Quality signal | 60/100 · Good | 59/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | No auth required | Not declared |
| Pricing | Free | Not declared |
| Required env vars | None listed | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 3 | 10 |
| Directory activity | 3 views 0 installs 0 upvotes | 2 views 0 installs 0 upvotes |
| Tools | 9 | 6 |
| Full listing | View Seo Performance MCP | View AI Visibility |
posts_listDiscover posts via an XML sitemap (POSTS_SITEMAP_URL or the sitemap_url arg), a JSON override list (POSTS_LIST), or - if configured - the Ghost Admin API. Pass an explicit urls[] to skip discovery entirely.
Returns metadata: url, title, published_at, age_days, tags. Filter by minimum age or published-after date.
When to use: discover which URLs are eligible for snapshot / verdict / cohort analysis. Works with any CMS that exposes a sitemap.posts_snapshotPull a 30/60/90-day snapshot across every configured signal source for one post: GSC clicks/impressions/CTR/position + top queries, Matomo visits + dwell, GA4 pageviews, Clarity scroll/rage clicks, AI-citation counts.
Each source is best-effort: if its env vars are missing the field is omitted. Returns whatever is available.
Read-only. No third-party writes. Optionally persists to the local DuckDB cache when persist=true.posts_decay_curveBucket GSC clicks/impressions/avg-position into ~weekly windows for the last N weeks (default 12) and classify the trend: decay / plateau / growth.
Underpins the verdict engine's decay rules. Read-only GSC query.posts_verdictRun the rule-based verdict engine on a single post: combine snapshot + decay curve and emit a verdict with reason codes and a 0-1 confidence score.
Reason codes are deterministic. The mapping reasons -> verdict lives in src/verdict/rules.ts and can be inspected.
Reporting only - does NOT mutate anything. To act on the verdict, hand the brief to a writer or to an AI rewrite tool.posts_refresh_briefProduce a markdown brief for a human (or downstream LLM) editor: verdict + reasons + raw numbers + top queries + suggested actions.
Use this as the hand-off artefact when verdict is refresh / expand / merge / double_down.cohort_reportRun the verdict engine across a cohort (filtered by tag and/or min-age) and return a ranked table sorted by verdict priority then confidence.
Practical use: 'which three posts should I refresh this week?' - the top three rows with verdict=refresh and highest confidence are the answer.posts_cite_lossReturn the list of LLMs that previously cited this URL but no longer do, with the prior query and last-seen date. Optionally includes the URL that replaced ours.
Requires a configured citation-intelligence MCP endpoint (CITATION_INTELLIGENCE_URL). Otherwise returns an empty list.gsc_quick_winsScan GSC for (page, query) pairs sitting in positions 5-15 with non-trivial impressions and a CTR below their position-expected curve. These are the fastest title-rewrite wins.
Returns top results sorted by impressions desc. Pure GSC pull - platform-agnostic.bing_quick_winsScan Bing Webmaster Tools for queries sitting in positions 5-15 with non-trivial impressions. Bing's index backs Copilot, ChatGPT search, and Perplexity grounding, so a Bing rank gap is an LLM-citation gap.
Query-level only: Bing has no single page+query API, so - unlike gsc_quick_wins, which returns (page, query) pairs - these carry no url. Sorted by impressions desc.
Requires BING_WEBMASTER_API_KEY (Bing Webmaster Tools -> Settings -> API Access). Best-effort: returns config_missing if unset.check_brand_visibilityCheck a brand's visibility across AI platforms (ChatGPT, Perplexity, Claude, Gemini). Simulates realistic queries and analyzes mention rates, positions, sentiment, and competitor landscape.check_single_queryCheck if a brand is mentioned for a specific query on a specific AI platform. Returns mention status, position, context snippet, sentiment, and competitor mentions.get_visibility_scoreCalculate an overall AI visibility score (0-100) for a brand across all four AI platforms. Includes per-platform breakdowns and improvement recommendations.compare_brandsCompare the AI visibility of multiple brands side by side. Shows per-platform scores, overall rankings, and relative strengths.get_recommendationsGet actionable recommendations to improve a brand's AI visibility. Prioritized suggestions based on current score and industry best practices.list_platformsList all supported AI platforms with details about how each sources and presents brand information.Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"automatelab-tech-seo-performance-mcp": {
"command": "npx",
"args": [
"-y",
"@automatelab/seo-performance-mcp"
]
}
}
}
{
"mcpServers": {
"sharozdawa-ai-visibility": {
"command": "npx",
"args": [
"-y",
"ai-visibility-mcp"
]
}
}
}