Skip to main content
Glama
vantagemcp

vantage-mcp

check_prompt_coverage

Read-onlyIdempotent

Check which of your target keywords cite your domain in AI answers and which don't, so you can see where you're visible and where you're invisible before deciding what to fix.

Instructions

Check which of several prompts/keywords actually cite a specific domain, and which ones don't. This is usually the first real question in an AI-answer-engine audit - not "what does a winning answer look like" (analyze_citation_structure) or "who wins this one topic" (find_citation_leaders), but "out of everything we care about, where do we already show up, and where are we invisible." Use this first, then use analyze_citation_gap on whichever keywords come back not cited to see what to actually change.

Read-only for the caller, safe to retry. Costs 1 quota unit per keyword per sample (1 sample by default; free tier is 30 units/month shared across every metered tool, so up to 30 keyword checks that period if nothing else is used). A per-keyword provider error doesn't fail the whole call - that keyword's entry just carries an "error" field instead. On the hosted endpoint each keyword's result is remembered for 180 days against your API key, so the next check of the same domain and keyword reports what changed (see "previous" and "change"); get_check_history reads that record back for free.

Returns: {"domain", "engine", "samples", "keywords_checked" (int, excludes any that errored), "keywords_cited" (int), "coverage_pct" (float, 0-100), "not_cited" (list of the keyword strings where domain was not cited - the actionable list), "newly_cited" and "no_longer_cited" (keywords whose status flipped since your last check of them), "results" (one entry per keyword, in the order given: {"keyword", "cited" (bool: cited in at least half of the samples), "cited_runs" (how many sampled answers cited it), "samples_ok" (how many answers came back), "rank" (int|null, best 1-based position among the answers' sources, null when never cited), "num_sources_cited", "source_domains" (who IS cited, for a keyword you are not in), "source_mix" (how much of that is community sites such as Reddit, YouTube, X - where to get discussed to close the gap), "source_frequency" (only with samples above 1: {"domain", "runs"} per domain), "leads_with_list", "opening_word_count", "mentioned" (bool - the answer's text names the domain or brand in at least half of the samples, whether or not it links to it), "model", "checked_at", "previous" ({"checked_at", "cited_runs", "samples", "best_rank"} from your last check of this domain and keyword on the same engine and market, or null), "change" ("first_check", "up", "down" or "same", comparing citation rates)}, or {"keyword", "error"} for one that failed), "keywords_mentioned" (int), "mentioned_not_cited" (keywords where the answer names you but does not cite you - the model already knows you, it just isn't linking you), "mention_terms" (exactly what was looked for in the answer text)}. "Cited" and "mentioned" are separate claims and are never merged. Answers change from run to run: with samples=1 a single answer decides "cited", so use samples=3 before telling someone they are or are not cited.

Args: domain: bare domain to check, e.g. "example.com" (no https://, no www). keywords: prompts/topics to check it against, e.g. ["best project management software", "asana alternatives", "free project management tool"]. Max 10. brand: optional brand name to look for in the answer text, e.g. "Notion". Without it, the domain's first label is used ("notion" for notion.so), which can match an ordinary word by accident for a dictionary-word domain, so pass the real brand when known. country: market to read the answers in, e.g. "Italy". Defaults to "United States". language: language code, e.g. "it". Defaults to "en". Write the keywords in that language too. engine: "chat_gpt" (default), "gemini" or "perplexity", as in analyze_citation_structure. samples: independent answers to read per keyword, 1 to 5. Default 1.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
brandNo
domainYes
engineNochat_gpt
countryNoUnited States
samplesNo
keywordsYes
languageNoen

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv1.8.0
    • addedInput schema / properties / engine
      Added value: +{
      +  "default": "chat_gpt",
      +  "title": "Engine",
      +  "type": "string"
      +}
    • addedInput schema / properties / samples
      Added value: +{
      +  "default": 1,
      +  "title": "Samples",
      +  "type": "integer"
      +}
  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.6.0

TDQS

A5/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, but the description goes far beyond that: it discloses quota costs, per-keyword error handling, 180-day result retention, the separation of 'cited' vs 'mentioned', and the run-to-run variability of answers. This is exactly the kind of behavioral context annotations cannot express.

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?

The description is long but every section earns its place: purpose, workflow position, cost, failure semantics, retention, return format, and parameter details. It is front-loaded with the core purpose and usage guidance before the detailed return spec. No filler or tautology.

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?

With 7 parameters, no output schema, and a rich return payload, the description is complete: it documents all parameters, all major return fields, error behavior, cost, retention, and workflow ordering. It also covers edge cases like dictionary-word domains and samples=1 instability. Nothing needed to invoke it correctly 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 description coverage is 0%, but the description fully compensates by explaining every parameter in the Args section: domain format with anti-examples, keyword examples and max count, brand's purpose and dictionary-word pitfall, country/language defaults, engine values, and samples range. This is more valuable than a typical schema description.

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 opens with a specific verb and resource: 'Check which of several prompts/keywords actually cite a specific domain, and which ones don't.' It then explicitly differentiates from siblings by naming analyze_citation_structure and find_citation_leaders and stating what this tool is not. An agent can immediately identify its role in the workflow.

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 explicitly states when to use this tool ('usually the first real question in an AI-answer-engine audit'), how to sequence it ('Use this first, then use analyze_citation_gap'), and names the alternatives it is not. It also gives a practical recommendation to use samples=3 before making claims about citation status.

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