Skip to main content
Glama
vantagemcp

vantage-mcp

Track a site's AI citations over time

analyze_citation_trend
Read-onlyIdempotent

Track month-over-month AI citation counts for a domain to see if visibility is growing or fading, and compare competitor trends.

Instructions

Track how a domain's AI-citation count has moved month over month, so you can see whether visibility is growing or fading instead of only ever checking a single point in time. Use this to answer 'is our AI visibility improving' or 'did that content push actually move the needle'. Pass compare_domains to put competitors' trends next to it.

Read-only: no side effects, safe to retry. Costs 1 quota unit per domain (the main domain plus each one in compare_domains; free tier is 30 units/month shared across every metered tool, so up to 30 single-domain calls to this tool alone if nothing else is used that period).

Returns: {"domain", "platform", "months" (list of {"year", "month", "mentions" (int, 0 for a month with no tracked citations. A zero between two large months can be a gap in the provider's history rather than a real drop, so read isolated zeros with care), "ai_search_volume"}, oldest to newest), "trend": {"direction" ("up"/"down"/"flat"/"no_data"), "earliest_mentions", "latest_mentions", "excluded_current_partial_month" (bool, only present and true when the most recent calendar month was excluded from the trend calculation because it is still in progress and its count is not yet final - it is still returned inside months, just not compared)}}.

The most recent entry in months (or trend.latest_mentions when the current month is not excluded) already IS the current count, so there is no need for a separate call just to see it right now.

With compare_domains the result also carries "comparisons" (one {"domain", "months", "trend"} per extra domain, same shape and month window as above, in the order given, or {"domain", "error"} for one the provider failed on - that one is refunded and the rest still return).

Args: domain: bare domain to check, e.g. "example.com" (no https://, no www). compare_domains: optional list of up to 5 more bare domains to track over the same months, e.g. ["asana.com", "monday.com"]. platform: "chat_gpt" or "google" (Google's AI Overview). Defaults to chat_gpt. Perplexity and Gemini aren't available - the underlying data provider doesn't cover them for this check. months: how many recent months of history to return. Defaults to 6, capped at 13 - DataForSEO's historical data only goes back to 2025-08-01. country: market to check, e.g. "Italy". Defaults to "United States". chat_gpt only has data for the United States; use platform "google" for any other country. language: language code, e.g. "it". Defaults to "en" (the only option for chat_gpt).

Input Schema

NameRequiredDescriptionDefault
domainYes
monthsNo
countryNoUnited States
languageNoen
platformNochat_gpt
compare_domainsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.11.0
    • addedInput schema / properties / compare_domains
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Compare Domains"
      +}
  2. Changed2 schema fields changedv1.7.0
    • addedInput schema / properties / country
      Added value: +{
      +  "default": "United States",
      +  "title": "Country",
      +  "type": "string"
      +}
    • addedInput schema / properties / language
      Added value: +{
      +  "default": "en",
      +  "title": "Language",
      +  "type": "string"
      +}
  3. Addedv1.3.0

TDQS

A5/5.0
Behavior5/5

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

Annotations already cover the read-only/idempotent profile, and the description goes well beyond them: quota cost per domain, the 30-unit free tier, refund behavior for a failed comparison domain, provider coverage limits (no Perplexity/Gemini), the 2025-08-01 history floor, and the warning that isolated zero months may be provider gaps rather than real drops.

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

Conciseness5/5

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

Front-loaded with purpose, then cost, then return shape, then args. It is long, but with no output schema the return-object breakdown is load-bearing rather than padding, and the Args block only restates parameters because the schema documents none of them.

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 6-parameter, no-output-schema tool this covers everything an agent needs: purpose, when to use, cost, return structure, edge cases (excluded partial month, failed comparison domain), and per-parameter rules. Nothing material is missing.

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

Parameters5/5

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

Schema coverage is 0%, so the description must carry all six parameters, and it does: bare-domain format (no https://, no www), compare_domains cap of 5 with examples, platform enum values, months default/cap plus the reason for the cap, country default with the chat_gpt-US-only constraint, and language defaulting to 'en'.

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?

States a specific verb+resource+dimension: 'Track how a domain's AI-citation count has moved month over month.' It also contrasts itself with a single-point-in-time check, which cleanly separates it from siblings like analyze_citation_coverage and analyze_citation_gap.

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?

Gives concrete trigger questions ('is our AI visibility improving', 'did that content push actually move the needle') and names compare_domains as the way to bring competitors in. It even pre-empts a wasted call by noting the latest `months` entry already is the current count.

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