Skip to main content
Glama
SEO Performance MCP

SEO Performance MCP

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MATOMO_URLNoURL of the Matomo analytics server
POSTS_LISTNoJSON array of posts with url, title, published_at, tags, word_count
GSC_SITE_URLNoGoogle Search Console site URL (e.g., sc-domain:example.com)
MATOMO_TOKENNoMatomo API token
MATOMO_SITE_IDNoMatomo site ID
GA4_PROPERTY_IDNoGoogle Analytics 4 property ID
CLARITY_API_TOKENNoMicrosoft Clarity API token
POSTS_SITEMAP_URLNoURL to the sitemap or sitemap index for post discovery
CLARITY_PROJECT_IDNoMicrosoft Clarity project ID
GHOST_ADMIN_API_KEYNoGhost Admin API key
GHOST_ADMIN_API_URLNoGhost Admin API URL for richer metadata
GA4_SERVICE_ACCOUNT_JSONNoBase64-encoded GA4 service account JSON
GSC_SERVICE_ACCOUNT_JSONNoBase64-encoded Google Search Console service account JSON
CITATION_INTELLIGENCE_URLNoURL for AI citation tracking service

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
posts_listA

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

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

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

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

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

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

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

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

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

Prompts

Interactive templates invoked by user choice

NameDescription
audit_cohortRun cohort_report on posts >=90 days old, then generate refresh briefs for every URL whose verdict is refresh / expand / merge.
find_quick_winsPull pages at positions 5-15 with low CTR and propose query-verbatim title/H1 rewrites.
citation_loss_sweepFind URLs that lost LLM citations and generate refresh briefs targeted at recovering them.

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.9/5.0

Scored across 9 tools

Disambiguation4/5

Each tool targets a distinct stage of the pipeline (discover, snapshot, analyze, verdict, brief, cohort, citation-loss, two platform-specific quick-win scans). posts_snapshot and posts_decay_curve both draw on GSC data but are clearly differentiated by purpose (raw multi-source snapshot vs. weekly trend classification), so only minor overlap remains.

Naming Consistency4/5

Most tools follow a consistent domain_action pattern (posts_list, posts_snapshot, posts_verdict, gsc_quick_wins, bing_quick_wins). cohort_report and the quick_wins names break the verb-style slightly, but all remain readable and predictable.

Tool Count5/5

Nine tools map cleanly onto a coherent SEO-analysis workflow, each earning its place without redundancy. This is squarely in the well-scoped 3-15 range.

Completeness4/5

The surface covers discovery, multi-source snapshots, decay analysis, verdict, human briefs, cohort ranking, citation loss, and GSC/Bing quick wins - a full read-side lifecycle. Gaps like historical time-series comparison or competitor benchmarking are minor and workable around.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues