Skip to main content
Glama
AutomateLab-tech

Citation Intelligence MCP

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SERPAPI_KEYNoSerpAPI key for Google AI Overview + Google AI Mode. 100 free lookups/month at serpapi.com.
BING_API_KEYNoBing Web Search API key for the bing_serp web_rank engine.
BRAVE_API_KEYNoBrave Search API key for the brave_serp web_rank engine. 2000 free queries/month.
GEMINI_API_KEYNoGoogle Gemini API key for the gemini api_proxy engine. Free tier available.
OPENAI_API_KEYNoOpenAI API key for the openai api_proxy engine (gpt-4o-search-preview). Paid only.
ANTHROPIC_API_KEYNoAnthropic API key for the claude api_proxy engine. Paid only.
CITATION_LOG_LEVELNoLog verbosity. Default: info. Logs go to stderr; stdout is reserved for JSON-RPC.
PERPLEXITY_API_KEYNoPerplexity Sonar API key (consumer_scrape engine). Free tier available at perplexity.ai.
CITATION_CONFIG_DIRNoOverride the config + cache directory. Default: ~/.config/citation-intelligence.
CITATION_CACHE_TTL_DAYSNoCache TTL in days for check_citations entries. Default: 7.
CITATION_AI_OVERVIEW_TTL_DAYSNoCache TTL in days for ai_overview entries. Default: 1.
CITATION_MAX_CONCURRENT_PER_HOSTNoMax concurrent fetches per host. Default: 4.
CITATION_MIN_INTERVAL_MS_PER_HOSTNoMin ms between fetches per host (rate limit). Default: 0.

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
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
citations_checkA

Return URLs cited by an AI engine (Perplexity, Claude, ChatGPT, Gemini, or Bing) for a query. Use this when an agent or user wants to see what sources an AI search engine grounds answers on. Requires at least one engine API key; auto-picks the first available.

domain_am_i_citedB

Check whether a domain is cited by an AI engine across a cluster of queries. Returns per-query presence, rank, and a citation-rate summary. Use to measure visibility for a brand, product, or content site in AI search.

signals_ai_overviewA

Check whether Google shows an AI Overview for a query, and which URLs it cites. Uses SerpAPI (free tier: 100/month). Set SERPAPI_KEY.

domain_cited_forA

List queries that the given domain has been cited for, served from the local cache. Build up a corpus by calling check_citations or am_i_cited first; cited_for queries it without spending API budget.

citations_predictA

Score citation likelihood for a URL from public signals (Wikipedia link presence, schema.org markup, /llms.txt, GitHub and Reddit references, canonical hygiene, HTTPS). No LLM fired - all heuristic. Returns 0-100 score, grade, signal breakdown, and ranked fixes.

panel_trackA

Save, load, or list named query panels. A panel is a persisted set of queries you want to monitor over time (e.g. editorial-watchlist). Use action=save with queries[] to create, action=load to read, action=list to enumerate. Panels live under /panels/.json.

panel_runA

Run a saved panel through am_i_cited and append a timestamped snapshot. Side effects: makes external API calls to the configured AI engine (costs API quota); writes one snapshot file to disk at /snapshots//.json. Requires at least one engine API key (same as am_i_cited). Returns per-query citation presence and a citation_rate summary for the run. Use panel_track to create a panel first; use citations_trend to read the accumulated trend after multiple runs.

report_visibilityA

Turnkey AI visibility report for a domain across a query set. Composes check_citations over every query (or a saved panel) and returns the metrics AI-visibility trackers sell as a dashboard, in one call: mention frequency (citation_rate), share_of_voice vs competitors, average rank when cited, and brand sentiment from the answer text. Side effects: one check_citations call per query (costs API quota for uncached queries; cached queries are free). Returns structured summary + top_domains + per_query, plus a rendered Markdown report (include_markdown=true) suitable for a public page. Provide queries[] or a panel name. Same engine selection as check_citations.

citations_trendA

Report citation rate over time for a panel from stored snapshots. Read-only; cache-only — makes no API calls to any AI engine and costs no API quota. Reads snapshot files from /snapshots//. Returns: snapshots[] (one entry per panel_run invocation, each with timestamp and citation_rate), plus per-query deltas (gained/lost/unchanged) comparing first vs last snapshot. Returns an empty series when no snapshots exist yet. No auth required. No rate limits. Use panel_run to accumulate snapshots first; use since to restrict the time window.

competitors_compareA

Run predict_citation on 2-10 URLs and return a side-by-side signal table plus a list of signals where the URLs diverge. Use to compare your URL to top-cited competitors for the same query.

signals_wikipediaA

List Wikipedia articles that reference the given domain. Read-only. One HTTPS GET to the Wikipedia API (en.wikipedia.org/w/api.php?action=query&list=exturlusage). No auth required; no API keys; no rate limits beyond Wikipedia's public API fair-use policy (~1 request/second). Returns article titles and URLs. Wikipedia backlinks are the highest-lift signal for LLM training corpora — a domain cited from Wikipedia is far more likely to appear in AI training data and citation pools. Use lang to query non-English Wikipedias.

audit_sitemapA

Fetch a sitemap.xml (or sitemap index) and run predict_citation on every URL. Returns results sorted worst-score-first. Surfaces systemic issues across a whole site in one pass. Zero engine keys needed.

competitors_competeA

End-to-end competitive snapshot for a single query. Calls check_citations to get the cited URLs, then runs compare_domains on your_url vs the top cited competitors. Returns your score, the average competitor score, and the gap.

citations_freshnessA

Score how recent the pages cited for a query are. Calls check_citations, then collects dateModified for each cited URL, returns a 0-100 recency_score (halflife=365d) plus per-URL freshness bucket (fresh/current/stale/ancient/unknown). Surfaces queries where AI cites old content - opportunity to ship fresher.

domain_cited_for_diffA

Diff cited_for between two time windows for a domain. Returns queries gained (cited now, not before baseline_until) and queries lost (cited before, not since current_since). Cache-only, no API spend. Use to track citation drift over time after publishing or migrating content.

signals_gsc_gapA

Join Google Search Console performance with am_i_cited per query. Surfaces queries where the domain ranks well in Google but is not cited in AI - the closest editorial wins. Requires GCP service account creds (credentials_path or GOOGLE_APPLICATION_CREDENTIALS env).

signals_bing_gapA

Join Bing Webmaster Tools query stats with am_i_cited per query. Surfaces queries where the domain ranks well in Bing but is not cited in AI - the closest editorial wins. Bing's index backs Copilot/ChatGPT/Perplexity grounding, so a Bing rank gap is an LLM-citation gap. Requires BING_WEBMASTER_API_KEY (Bing Webmaster Tools -> Settings -> API Access).

audit_schemaA

Deep schema.org validation for a URL. Parses every JSON-LD block and microdata node, checks required fields per @type (Article needs headline+author+datePublished, FAQPage needs mainEntity, HowTo needs step, etc.), and flags missing fields and malformed JSON-LD. Returns issues list and a valid/invalid verdict. Use to fix structured-data bugs that predict_citation flags but can't explain.

audit_llms_txtA

Generate an llms.txt file (https://llmstxt.org spec) from a sitemap. Parses sitemap.xml + nested indexes, groups URLs by top-level path, and emits a Markdown document with H1+description+sectioned link lists. Set fetch_titles=true to pull per URL (slower, richer output).

signals_answer_boxA

Locate where each cited URL appears in the AI's raw answer text. Calls check_citations, finds the first mention of each citation's URL (or hostname) in raw_answer, and bins by char position into early/middle/late thirds. Surfaces whether your URL is cited up-front or buried near the end. Returns 'unknown' for engines without raw_answer (Bing, Brave).

citations_provenanceA

Fan a query out across multiple AI engines and report per-URL cross-engine consensus. Returns each unique cited URL with the list of engines that cited it, plus a consensus_urls list (URLs cited by ALL engines). High engine_count = strong cross-engine citation signal; engine_count=1 = engine-specific.

citations_evidenceA

Extract the cited snippet from the AI engine's raw answer for each citation. Calls check_citations, then for each returned URL finds the first mention in raw_answer and returns a context window plus the nearest quoted span or containing sentence. Use to see why an engine cited a URL, not just that it did. Returns 'not found' for engines without raw_answer (Bing, Brave).

audit_crawler_accessA

Verify that major AI crawlers (GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot, CCBot, Google-Extended, Applebot-Extended, Bytespider, Meta-ExternalAgent, plus real-time fetch UAs) can fetch a URL. Parses robots.txt and does a live GET with each bot's User-Agent. Surfaces robots.txt blocks AND UA-based gating that breaks AI citation.

audit_sitemap_mapA

Cross-reference a sitemap with the citation cache. For each sitemap URL, reports whether it appears in cached citations (and how many queries/engines cited it). Inverse of audit_sitemap: not 'how citable is each URL', but 'has each URL actually been cited yet'. Cache must be primed via check_citations or run_panel first.

competitors_canonical_setA

Fan a query across engines and aggregate citations by registered domain (not URL). Returns top competitor domains ranked by cross-engine consensus, with per-engine breakdown and top URLs per domain. Use to identify the canonical competitor set for a query - the domains every engine treats as authoritative.

audit_structured_dataA

Suggest missing JSON-LD additions for a URL. Fetches the page, detects existing schema types, and returns ready-to-paste templates for types that are missing but signalled by page content (BlogPosting from og:type=article or bylines, FAQPage from Q&A pairs, HowTo from numbered steps, BreadcrumbList from nested paths, Organization on homepages). Templates are pre-filled from page metadata where possible; fields marked FILL: require manual completion.

Prompts

Interactive templates invoked by user choice

NameDescription
audit_citation_readinessScore a URL's citation likelihood across public signals, then deep-validate its schema.org markup, then list the top fixes. Uses citations_predict + audit_schema.
audit_competitor_snapshotBuild a cross-engine competitor map for a query and compare your own URL to the top-cited competitors. Uses competitors_canonical_set + competitors_compete.
audit_crawler_checkupVerify that all major AI crawlers (GPTBot, ClaudeBot, PerplexityBot, CCBot, Google-Extended, etc.) can fetch a URL and aren't being blocked at robots.txt or the server. Uses audit_crawler_access.
audit_gap_analysisSurface queries where a domain ranks well on Google but isn't cited by AI engines - the closest editorial wins. Uses signals_gsc_gap.
audit_sitemap_coverageMap a sitemap against the citation cache to see which URLs have been cited and which haven't. Identifies systemic visibility gaps. Uses audit_sitemap_map.

Resources

Contextual data attached and managed by the client

NameDescription
cache_summaryAggregate counts of cached entries by type, engine, unique queries, and unique URLs. Read-only view of the local citation cache.
panels_listList of saved query panels and per-panel snapshot counts. Mirrors panel_track action=list with snapshot context.
llms_txt_primerWhat llms.txt is, what it isn't, and how this server's tools help build one. Short markdown primer.
crawlers_primerQuick reference for the AI crawlers `audit_crawler_access` checks, grouped by training vs real-time fetch.

TDQS

A3.5/5.0

Scored across 26 tools

Disambiguation2/5

Multiple tools overlap: citations_check, domain_am_i_cited, and report_visibility all measure citation presence; citations_provenance and competitors_canonical_set both aggregate cross-engine citations; audit_sitemap vs audit_sitemap_map and competitors_compare vs competitors_compete are easily confused. Descriptions clarify but require careful reading, making misselection likely.

Naming Consistency3/5

Consistent snake_case with prefix categories (citations_, domain_, signals_, etc.), but within categories patterns mix verbs and nouns (citations_check vs citations_provenance), and domain_am_i_cited breaks the verb_noun convention. Readable but not fully predictable.

Tool Count2/5

26 tools is heavy for a single server; many are variations on citation checking or auditing, indicating over-proliferation rather than a tightly scoped set. Could be consolidated.

Completeness4/5

Covers the domain broadly: checking, predicting, auditing crawlers/schema/sitemaps, competitor analysis, panels, trends, and signals from GSC/Bing/Wikipedia. Minor gaps like cache management or panel deletion, but core workflows are well supported.

Maintenance

ActivityMaintained
ResponsivenessSlow