Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

Citation Intelligence

NPM · @AUTOMATELAB/CITATION-INTELLIGENCE · SCANNED AUG 3

Check what Perplexity, Claude, ChatGPT, Gemini, and Google AI Overviews cite for any query.

+15 this week 66 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security70
  • No malware found by supply-chain analysis.Pass
  • CVE check failed: a known high-severity CVE affects undici 7.25.0, a direct dependency. A fixed version is available. View diagnostics → Fail
  • No install/post-install scripts declared.Pass
  • Only part of the dependency tree could be resolved (140 of 145), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability83
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 4378 tokens (~145/item across 30 items; 26 tools + 4 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · @automatelab/citation-intelligence

# add to Claude Code
claude mcp add automatelab-tech-citation-intelligence -- npx -y @automatelab/citation-intelligence
# add to Codex CLI
codex mcp add automatelab-tech-citation-intelligence -- npx -y @automatelab/citation-intelligence
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "automatelab-tech-citation-intelligence": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@automatelab/citation-intelligence"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add automatelab-tech-citation-intelligence --command npx --arg -y --arg @automatelab/citation-intelligence
# ~/.hermes/config.yaml
mcp_servers:
  automatelab-tech-citation-intelligence:
    command: "npx"
    args: ["-y", "@automatelab/citation-intelligence"]
// mcp.json
{
  "mcpServers": {
    "automatelab-tech-citation-intelligence": {
      "command": "npx",
      "args": [
        "-y",
        "@automatelab/citation-intelligence"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Aug 26 +4
    • Stability: unverified → 0.27 functional
  • 2 Aug 26 +37
    • GHSA-frvp-7c67-39w9 affects this package: high security
    • CVE-2026-6733 affects this package: high security
    • CVE-2026-12151 affects this package: high security
    • CVE-2026-9697 affects this package: high security
    • CVE-2026-9678 affects this package: high security
    • CVE-2026-6734 affects this package: high security
    • CVE-2026-41907 affects this package: high security
    • CVE-2026-11525 affects this package: high security
    • CVE-2026-9679 affects this package: high security
    • Provenance: unverified → fail security
    • Known CVEs: unverified → fail security
    • Install scripts: unverified → pass security
    • Malware scan: unverified → pass security
    • Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
    • Tool coverage: 100 → unverified functional
    • Schema quality: 100 → unverified functional
    • Schema quality: unverified → excellent functional
    • License: unverified → pass functional
    • Maintenance: unverified → pass functional
    • MCP protocol: unverified → pass functional
    • Dependency health: unverified → partial functional
    • Licence: MIT functional
  • 31 Jul 26 +19
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 −45
    • Malware scan: pass → unverified security
    • Schema quality: 100 → unverified functional
    • Tool coverage: 100 → unverified functional
  • 27 Jul 26 51

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Analysed npm/@automatelab/[email protected]

Provenance none

Ecosystem: npm · Outcome: none

Vulnerabilities 9 findings
ID CVE Severity Vector Fix available
GHSA-frvp-7c67-39w9 medium CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N yes
GHSA-35p6-xmwp-9g52 CVE-2026-6733 low CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N yes
GHSA-g8m3-5g58-fq7m CVE-2026-11525 low CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N yes
GHSA-hm92-r4w5-c3mj CVE-2026-6734 high CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H yes
GHSA-p88m-4jfj-68fv CVE-2026-9679 medium CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N yes
GHSA-pr7r-676h-xcf6 CVE-2026-9678 medium CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N yes
GHSA-vmh5-mc38-953g CVE-2026-9697 high CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N yes
GHSA-vxpw-j846-p89q CVE-2026-12151 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes
GHSA-w5hq-g745-h8pq CVE-2026-41907 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N yes
Dependencies 140 packages

140 packages in the resolved dependency tree · 140 deprecated · 40 stale.

The dependency tree was only partially resolved, so these counts may be incomplete.

MCP tools — 26 exposed · ~4,260 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
audit_crawler_access ~180

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.

NameTypeReqDescription
botsarrayOverride the default bot list. Each entry is a User-Agent token (e.g. 'GPTBot', 'ClaudeBot').
fetch_with_uabooleanIf true, do a live GET as each bot's User-Agent and report status. Disable to only parse robots.txt (no extra requests).
urlstringyesPage URL to test for AI crawler access.
NameTypeReqDescription
botsarrayyesPer-bot access verdict combining robots.txt + live UA test.
fetched_atstringyesUTC ISO-8601 timestamp.
notestring
robots_errorstring|nullyesError message if robots.txt fetch failed.
robots_presentbooleanyesWhether a non-empty robots.txt was found.
robots_statusnumber|nullyesHTTP status of the robots.txt fetch.
robots_urlstringyesrobots.txt URL that was parsed.
summaryobjectyes
urlstringyesThe URL that was audited.

No examples provided.

audit_llms_txt ~208

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 <title> per URL (slower, richer output).

NameTypeReqDescription
fetch_titlesbooleanIf true, fetch each URL to extract <title> for richer links. Slower (one HEAD-ish GET per URL). Default false uses the URL path as the link text.
limitintegerMax URLs to include. Truncated after sitemap parse, before title fetch.
site_descriptionstringOne-paragraph site description placed under the H1. Optional but strongly recommended.
site_titlestringyesSite title - top H1 in the generated llms.txt file.
sitemap_urlstringyesURL of sitemap.xml (or sitemap index). Nested sitemaps are followed.
NameTypeReqDescription
contentstringyesGenerated llms.txt file content; save to /llms.txt at site root.
fetched_atstringyesUTC ISO-8601 timestamp.
notestring
sectionsnumberyesNumber of top-level sections in the generated file.
sitemap_urlstringyesSitemap URL that was processed.
titles_fetchednumberyesNumber of pages fetched to extract <title>.
total_urls_in_sitemapnumberyesTotal URLs found in the sitemap.
urls_includednumberyesURLs included after applying the limit.

No examples provided.

audit_schema ~113

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.

NameTypeReqDescription
urlstringyesURL whose JSON-LD and microdata to validate against schema.org expected fields.
NameTypeReqDescription
fetched_atstringyesUTC ISO-8601 timestamp.
issuesarrayyesValidation issues found.
json_ld_blocksnumberyesTotal JSON-LD blocks found.
json_ld_parse_errorsnumberyesNumber of JSON-LD blocks that failed to parse.
microdata_types_presentarrayyesSchema types found via microdata (itemtype).
notestring
schema_types_presentarrayyes@type values found across all JSON-LD blocks.
summaryobjectyes
urlstringyesURL that was audited.

No examples provided.

audit_sitemap ~113

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.

NameTypeReqDescription
concurrencyintegerParallel predict_citation calls. Higher is faster but more rate-limit risk.
limitintegerMax URLs to score. Sitemap is sliced after parsing.
sitemap_urlstringyesURL of sitemap.xml (or a sitemap index). Nested sitemaps are followed.
NameTypeReqDescription
auditednumberyesNumber of URLs that were scored.
average_scorenumberyesMean predict_citation score across scored URLs.
errorsarrayyesURLs whose audit threw an error.
fetched_atstringyesUTC ISO-8601 timestamp.
sitemap_urlstringyesThe sitemap URL that was audited.
total_urlsnumberyesTotal URLs found in the sitemap.
worst_firstarrayyesUp to 20 lowest-scoring URLs, worst first.

No examples provided.

audit_sitemap_map ~160

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.

NameTypeReqDescription
domainstringDomain to look up citations for. If omitted, inferred from the sitemap host.
limitintegerMax sitemap URLs to consider.
sincestringISO date floor; only count citations recorded on or after this date.
sitemap_urlstringyesURL of sitemap.xml (or a sitemap index). Nested sitemaps are followed.
NameTypeReqDescription
citations_in_cachenumberyesTotal citation cache entries for this domain.
coverage_pctnumberyesPercentage of sitemap URLs that have been cited (0-100).
domainstringyesDomain whose citation cache was queried.
fetched_atstringyesUTC ISO-8601 timestamp.
mappednumberyesURLs found in the citation cache.
mapped_urlsarrayyesSitemap URLs present in the cache, sorted by citation count desc.
notestring
sincestring
sitemap_urlstringyesThe sitemap that was processed.
total_urlsnumberyesTotal sitemap URLs considered.
unmappednumberyesURLs not yet seen in the citation cache.
unmapped_urlsarrayyesSitemap URLs not yet cited (up to 200).

No examples provided.

audit_structured_data ~133

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.

NameTypeReqDescription
urlstringyesURL to inspect for missing JSON-LD. The page is fetched and its content signals are used to suggest schema types.
NameTypeReqDescription
fetched_atstringyesUTC ISO-8601 timestamp.
notestring
schema_types_presentarrayyes@type values already present on the page.
signals_detectedobjectyesContent signals detected (e.g. og:type=article).
suggestionsarrayyesSchema additions suggested for this page.
summaryobjectyes
urlstringyesURL that was inspected.

No examples provided.

citations_check ~247

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.

NameTypeReqDescription
enginestringEngine to query. • perplexity / google_ai_mode — consumer_scrape: closest to real product behavior. • claude / openai / gemini — api_proxy: API-tier call, may differ from consumer product. • bing_ser…
max_resultsintegerMaximum citations to return.
perplexity_modelstringPerplexity model override (e.g. 'sonar', 'sonar-pro', 'sonar-reasoning'). Only used when engine='perplexity'. Defaults to 'sonar-pro'.
querystringyesThe search query to test (what would a user ask an AI?)
NameTypeReqDescription
cachedbooleanyesWhether the result was served from the local cache.
citationsarrayyesCited URLs ordered by rank.
enginestringyesEngine used for this response.
fetched_atstringyesUTC ISO-8601 timestamp of the fetch.
interpretation_notestringyesGuidance on how to interpret results from this engine.
querystringyesThe query that was executed.
raw_answerstring|nullRaw answer text from the engine, if available. Absent for web_rank engines (bing_serp, brave_serp) that return ranked URLs without a synthesized answer.
surfacestringyesEngine surface type: consumer_scrape, api_proxy, or web_rank.

No examples provided.

citations_evidence ~183

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

NameTypeReqDescription
context_charsintegerHalf-width of the snippet window around each citation mention (chars). Total snippet is up to 2x this.
enginestringAI engine to query. web_rank engines (bing_serp, brave_serp) lack raw_answer and return no evidence.
max_resultsintegerMax citations to extract evidence for.
querystringyesSearch query whose AI answer to extract citation evidence from.
NameTypeReqDescription
citations_totalnumberyes
enginestringyesEngine used.
evidencearrayyesPer-citation evidence extracted from the raw answer.
evidence_foundnumberyesCitations whose URL was located in the raw answer.
fetched_atstringyesUTC ISO-8601 timestamp.
has_raw_answerbooleanyesWhether the engine returned a raw answer.
notestring
querystringyesThe query whose answer was analyzed.
raw_answer_charsnumberyesLength of the engine's raw answer.

No examples provided.

citations_freshness ~129

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.

NameTypeReqDescription
enginestringAI engine to query for the citation set.
max_resultsintegerHow many cited URLs to inspect.
querystringyesSearch query whose cited URLs to score for freshness.
NameTypeReqDescription
average_days_oldnumber|nullyesMean age in days across URLs with a detectable dateModified.
bucketsobjectyesFreshness bucket distribution.
enginestringyesEngine used.
fetched_atstringyesUTC ISO-8601 timestamp.
notestring
per_urlarrayyesPer-URL freshness details.
querystringyesThe query whose citations were scored.
recency_scorenumberyes0-100 average recency weight across cited URLs (halflife=365d).

No examples provided.

citations_predict ~85

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.

NameTypeReqDescription
urlstringyesURL to score for citation likelihood. Must be absolute http(s).
NameTypeReqDescription
fetched_atstringyesUTC ISO-8601 timestamp.
fixesarrayyesRanked list of concrete improvements to raise the score.
gradestringyesLetter grade (A-F) derived from the score.
scorenumberyes0-100 citation likelihood score.
signalsobjectyesPer-signal boolean/numeric values used to compute the score.
urlstringyesURL that was scored.

No examples provided.

citations_provenance ~156

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.

NameTypeReqDescription
enginesarrayEngines to query. If omitted, uses all LLM engines with a configured API key (perplexity, claude, openai, gemini, google_ai_mode). Include bing_serp/brave_serp only when you explicitly want web_rank…
max_resultsintegerMax citations per engine.
querystringyesSearch query to fan out across multiple engines.
NameTypeReqDescription
consensus_urlsarrayyesURLs cited by ALL succeeding engines (requires >=2 engines).
enginesarrayyesPer-engine run summary.
engines_queriednumberyes
engines_succeedednumberyes
fetched_atstringyesUTC ISO-8601 timestamp.
notestring
per_urlarrayyesAll unique cited URLs sorted by cross-engine consensus (engine_count desc).
querystringyesThe query that was fanned across engines.
summaryobjectyes

No examples provided.

citations_trend ~167

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 <config>/snapshots/<panel>/. 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.

NameTypeReqDescription
panelstringyesPanel name to report on.
sincestringISO date floor, e.g. '2026-01-01'. Only include snapshots on or after.
NameTypeReqDescription
domainstringDomain tracked by the panel.
first_taken_atstringTimestamp of the oldest snapshot.
last_taken_atstringTimestamp of the newest snapshot.
panelstringyesPanel name.
query_deltasarrayyesPer-query changes between first and last snapshot.
seriesarrayyesTime-series of citation rates, one entry per snapshot.
snapshotsnumberyesNumber of snapshots available.

No examples provided.

competitors_canonical_set ~184

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.

NameTypeReqDescription
enginesarrayEngines to query. If omitted, uses all LLM engines with a configured API key (google_ai_mode, perplexity, claude, openai, gemini). Include bing_serp/brave_serp only for web_rank comparison.
exclude_domainsarrayDomains to filter out (e.g. your own brand, Wikipedia, Reddit). Suffix-match.
max_resultsintegerMax citations per engine.
querystringyesSearch query to fan out across engines.
top_nintegerMax competitor domains to return.
NameTypeReqDescription
domainsarrayyesCompetitor domains ranked by cross-engine consensus.
enginesarrayyesPer-engine run summary.
engines_queriednumberyes
engines_succeedednumberyes
excluded_domainsarrayyesRegistered domains that were filtered out.
fetched_atstringyesUTC ISO-8601 timestamp.
notestring
querystringyesThe query that was fanned across engines.
top_nnumberyesMaximum domains returned.
total_unique_domainsnumberyesTotal unique competitor domains found before top_n truncation.

No examples provided.

competitors_compare ~82

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.

NameTypeReqDescription
urlsarrayyesURLs to compare side-by-side. 2-10 URLs. One is typically yours and the rest are cited competitors.
NameTypeReqDescription
diverging_signalsarrayyesSignals where at least one URL differs from the others.
fetched_atstringyesUTC ISO-8601 timestamp.
rowsarrayyesPer-URL predict_citation rows (or { url, error } on failure).

No examples provided.

competitors_compete ~151

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.

NameTypeReqDescription
enginestringAI engine to query for the citation set. 'auto' picks the first available key.
max_competitorsintegerHow many cited URLs to compare against your_url. Capped at 9 (compare_domains accepts max 10 URLs total including yours).
querystringyesSearch query to test (what would a user ask an AI?).
your_urlstringyesYour URL to benchmark against the cited competitors.
NameTypeReqDescription
average_competitor_scorenumber|nullyesMean score across competitor URLs.
comparisonyesFull compare_domains result.
competitorsarrayyesCompetitor URLs that were compared.
enginestringyesEngine used for the citation fetch.
fetched_atstringyesUTC ISO-8601 timestamp.
querystringyesThe query that was tested.
score_gapnumber|nullyesyour_score minus average_competitor_score.
your_in_citationsbooleanyesWhether your URL appeared in the engine's citation list.
your_scorenumber|nullyespredict_citation score for your URL (null on error).
your_urlstringyesYour URL that was benchmarked.

No examples provided.

domain_am_i_cited ~171

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.

NameTypeReqDescription
domainstringyesDomain to check, e.g. 'automatelab.tech' (without protocol).
enginestringLLM engine to check for citations. 'auto' runs all available LLM engines and returns per-engine breakdown + cross-engine consensus. Pin to a specific engine to reduce cost. 'bing_serp' and 'brave_ser…
queriesarrayyesQueries to test the domain against. 1-20 queries per call.
NameTypeReqDescription
consensusobjectCross-engine consensus stats (multi_engine mode).
domainstringyesThe domain that was checked.
enginestringEngine used (single_engine mode only).
enginesarrayPer-engine summary rows (multi_engine mode).
fetched_atstringyesUTC ISO-8601 timestamp.
modestringyesWhether one or multiple engines were queried.
per_enginearrayFull per-engine detail (multi_engine mode).
resultsarrayPer-query results (single_engine mode).
summaryobjectAggregate summary (single_engine mode).
surfacestringEngine surface type (single_engine mode only).

No examples provided.

domain_cited_for ~128

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.

NameTypeReqDescription
domainstringyesDomain to look up, e.g. 'automatelab.tech'.
enginestringFilter by engine. Omit to include all.
limitintegerMaximum results.
sincestringISO date floor, e.g. '2026-01-01'. Only return entries fetched on or after this date.
NameTypeReqDescription
domainstringyesDomain that was looked up.
engine_filterstringEngine filter applied, if any.
resultsarrayyesCache entries where this domain was cited.
sincestringISO date floor applied, if any.
sourcestringyesAlways 'local_cache' — no external calls made.
totalnumberyesTotal entries returned.

No examples provided.

domain_cited_for_diff ~153

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.

NameTypeReqDescription
baseline_untilstringyesISO date (or ISO datetime). Baseline window = all cache entries fetched on or before this timestamp.
current_sincestringISO date floor for the 'current' window. Defaults to baseline_until.
domainstringyesDomain to diff, e.g. 'automatelab.tech'.
enginestringFilter by engine. Omit to include all.
NameTypeReqDescription
baseline_untilstringyesUpper bound of the baseline window.
countsobjectyes
current_sincestringyesLower bound of the current window.
domainstringyesDomain that was diffed.
engine_filterstringEngine filter applied, if any.
fetched_atstringyesUTC ISO-8601 timestamp.
gainedarrayyesQueries gained (newly cited) since the baseline.
lostarrayyesQueries lost (were cited, no longer are).
sourcestringyes
unchanged_queriesarrayyesQueries cited in both windows.

No examples provided.

panel_run ~175

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 <config>/snapshots/<panel>/<iso>.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.

NameTypeReqDescription
domainstringOverride the panel's default domain for this run.
enginestringAI engine to query. Use bing_serp/brave_serp for web_rank comparison only — am_i_cited will refuse them.
namestringyesPanel name previously saved via track_queries.
NameTypeReqDescription
saved_tostringyesAbsolute file path of the snapshot that was written.
snapshotobjectyesThe snapshot that was appended.

No examples provided.

panel_track ~174

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 <config>/panels/<name>.json.

NameTypeReqDescription
actionstring'save' writes the panel, 'load' returns an existing panel, 'list' enumerates all panels.
domainstringDefault domain to track for this panel, e.g. 'automatelab.tech'.
namestringyesPanel name, e.g. 'editorial-watchlist'. Used to save and recall the query set.
queriesarrayQueries to save under this panel. Omit to read the existing panel.
NameTypeReqDescription
errorstringError message when the panel was not found.
panelobjectThe panel object that was saved or loaded.
panelsarrayAll panel names (action=list).
savedbooleanTrue when action=save succeeded.

No examples provided.

report_visibility ~332

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.

NameTypeReqDescription
brand_termsarrayBrand name variants to detect in answer text for sentiment (defaults to the domain's second-level label).
competitorsarrayOptional competitor domains to surface explicitly in the share-of-voice table.
domainstringyesThe domain you are measuring visibility for (e.g. automatelab.tech).
enginestringAI engine to query. 'auto' picks the first configured key. Same selection as check_citations.
include_markdownbooleanIf true (default), include a rendered Markdown report under `markdown`.
max_resultsintegerMax citations to pull per query.
panelstringName of a saved panel (see panel_track) to pull queries from. Provide this OR `queries`.
queriesarrayQueries to run. Provide this OR `panel`. Each is sent to the AI engine via check_citations.
NameTypeReqDescription
errorstring
markdownstringRendered Markdown report. Present when include_markdown=true.
per_queryarrayyes
summaryobjectyes
top_domainsarrayyesShare-of-voice table, most-cited domains first.

No examples provided.

signals_ai_overview ~95

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

NameTypeReqDescription
hlstringLanguage code, default 'en'.
locationstringLocation string, e.g. 'United States'. Affects AI Overview eligibility.
querystringyesSearch query to check for Google AI Overview.
NameTypeReqDescription
ai_overview_presentbooleanyesWhether Google returned an AI Overview for this query.
ai_overview_textstring|nullyesAI Overview text, if present.
cachedbooleanyesWhether the result was served from local cache.
fetched_atstringyesUTC ISO-8601 timestamp.
querystringyesThe query checked.
sourcesarrayyesURLs cited in the AI Overview.

No examples provided.

signals_answer_box ~150

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

NameTypeReqDescription
enginestringAI engine to query. web_rank engines (bing_serp, brave_serp) lack raw_answer and will return position 'unknown'.
max_resultsintegerMax citations to locate.
querystringyesSearch query whose AI answer to measure citation positions on.
NameTypeReqDescription
answer_charsnumberyesTotal length of the engine's raw answer in characters.
bucketsobjectyesCount of citations per position bucket.
citations_totalnumberyesTotal citations returned by the engine.
enginestringyesEngine used.
fetched_atstringyesUTC ISO-8601 timestamp.
notestring
positionsarrayyesPer-citation position in the AI answer.
querystringyesThe query that was tested.

No examples provided.

signals_bing_gap ~190

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

NameTypeReqDescription
domainstringyesDomain to analyze, e.g. 'automatelab.tech'. Used for the citation check.
enginestringAI engine for the citation check.
queriesarrayyesQueries to cross-reference. 1-20 per call.
site_urlstringVerified Bing Webmaster site URL. Defaults to 'https://<domain>/'. Bing uses the https origin WITH a trailing slash, NOT the sc-domain: form GSC uses.
NameTypeReqDescription
closest_winsarrayyesQueries where domain ranks in Bing top-10 but is not AI-cited (the editorial gap).
domainstringyesDomain analyzed.
enginestringEngine used for the citation check.
rowsarrayyesPer-query Bing rank + AI citation cross-reference.
site_urlstringyesBing Webmaster siteUrl used (https origin with trailing slash).

No examples provided.

signals_gsc_gap ~223

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

NameTypeReqDescription
credentials_pathstringPath to GCP service account JSON. Defaults to env GOOGLE_APPLICATION_CREDENTIALS.
domainstringyesDomain to analyze, e.g. 'automatelab.tech'. Used both for the GSC site URL and the citation check.
end_datestringyesISO date for GSC range end, e.g. '2026-05-01'.
enginestringAI engine for the citation check.
queriesarrayyesQueries to cross-reference. 1-20 per call.
site_urlstringOverride the GSC siteUrl. Defaults to 'sc-domain:<domain>'.
start_datestringyesISO date for GSC range start, e.g. '2026-04-01'.
NameTypeReqDescription
closest_winsarrayyesQueries where domain ranks in Google top-10 but is not AI-cited (the editorial gap).
domainstringyesDomain analyzed.
enginestringEngine used for the citation check.
rangeobjectyesGSC date range.
rowsarrayyesPer-query GSC + AI citation cross-reference.
site_urlstringyesGSC siteUrl used.

No examples provided.

signals_wikipedia ~178

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.

NameTypeReqDescription
domainstringyesDomain to search for, e.g. 'automatelab.tech' (without protocol).
langstringWikipedia language subdomain, e.g. 'en', 'de', 'fr'.
limitintegerMaximum mention rows to return.
NameTypeReqDescription
domainstringyesDomain that was searched.
fetched_atstringyesUTC ISO-8601 timestamp.
langstringyesWikipedia language subdomain used.
mentionsarrayyesList of Wikipedia articles that cite the domain.
totalnumberyesNumber of Wikipedia articles referencing this domain.

No examples provided.