Skip to main content
Glama
AutomateLab-tech

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

Capabilities

Features and capabilities supported by this server

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

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_winsB

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.

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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AutomateLab-tech/seo-performance-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server