Skip to main content
Glama

ai_citations

Read-onlyIdempotent

This site's OWN first-party AI-citation data, the part no scan can see. observed_citations: citations recorded in REAL logged-in AI answers (ChatGPT, Perplexity, Gemini, Copilot, Claude, AI Overviews) by the user's browser extension, with per-engine counts and best rank - engines personalize and gate their APIs, so a server-side scan sees a de-personalized view while this sees what a real human was shown. brand_facts: the canonical business facts this site publishes for AI engines, plus internal-link health; use them to spot an AI answer contradicting the owner's own declaration. Counts only, never prompt or answer text. scan_results reads the latest server-side SCAN instead: per-engine brand visibility, the prompts where the brand was MISSED and who won them, competitors, and the sources engines cite. Observed vs scanned is the key distinction - observed is what a real logged-in human saw, scanned is a clean de-personalized baseline comparable over time. For AI traffic per page use traffic_analytics. Already scoped to the connected workspace and its site; call directly, no domain or site parameter is needed. Cost: FREE - reads your connected/stored data, no AI credits.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
daysNolook-back window in days (1-90, default 28).
actionYesWhich operation to run. observed_citations (real logged-in AI answers that cited this site); brand_facts (declared canonical facts + internal-link health); scan_results (latest scan: per-engine visibility, missed prompts, competitors, cited sources).
scanIdNoscan_results only: a specific scan id from recentScans. Omit for the latest completed scan.
user_intentNoOptional: one short sentence describing what the user is ultimately trying to achieve with this request. Used by SEOmatic to tailor answers and improve the product; never required.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / action / description
      Previous value: -"Which operation to run. observed_citations (real logged-in AI answers that cited this site); brand_facts (declared canonical facts + internal-link health)."New value: +"Which operation to run. observed_citations (real logged-in AI answers that cited this site); brand_facts (declared canonical facts + internal-link health); scan_results (latest scan: per-engine visibility, missed prompts, competitors, cited sources)."
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "observed_citations",
      -  "brand_facts"
      -]New value: +[
      +  "observed_citations",
      +  "brand_facts",
      +  "scan_results"
      +]
    • addedInput schema / properties / scanId
      Added value: +{
      +  "description": "scan_results only: a specific scan id from recentScans. Omit for the latest completed scan.",
      +  "type": "string"
      +}
  2. Added

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint, idempotentHint, destructiveHint), the description discloses key behavioral traits: it returns counts only, never prompt/answer text; it is free and reads connected/stored data; it is already scoped to the workspace, requiring no domain/site parameter. These details go well beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose but every sentence contributes value—it front-loads the core distinction (observed vs. scanned), then methodically covers operations, scope, cost, and alternatives. It is well-structured and avoids fluff, though a slightly tighter version could improve readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a multi-operation tool with an output schema present, the description is remarkably complete. It explains all three actions, the key distinction, scoping, cost, and even points to an alternative tool. No critical information is missing for an agent to decide and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds significant meaning to the action parameter by explaining what each enum value returns (domestic citations vs. brand facts vs. scan results) and clarifies the 'days' and 'scanId' parameters implicitly through the operations. It enhances the schema without redundancy.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool provides first-party AI-citation data and enumerates three distinct operations (observed_citations, brand_facts, scan_results) with specific definitions. It explicitly differentiates from server-side scans and traffic_analytics, making the purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance: it contrasts observed vs. scanned data, tells users to use traffic_analytics for per-page AI traffic, and clarifies when to use each of the three actions. Alternatives are named and conditions are stated, leaving no ambiguity about when to invoke this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.