Skip to main content
Glama

Cite42: AI visibility and SEO data for AI agents

cite42_compare

Read-only

Compare one brand head-to-head against competitors in AI answers, ChatGPT itself included on request, with a co-mention graph. Its requestId can be passed to cite42_recommendations when the user asks for improvement advice. Costs $0.01 to $0.06 per AI surface queried. Billed in USD (result field cite42Billing) to the user's prepaid Cite42 balance, and failed calls are free; exact prices from cite42_pricing (free). For plans over 20 calls or $5, estimate the cost and confirm with the user first.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "query": "<query>",
      "brand": "<brand>",
      "competitors": "<competitors>"
    },
    "name": "cite42_compare"
  }
}

Input Schema

NameRequiredDescriptionDefault
brandYesYour brand — ranked alongside the competitors.
queryYesThe query to compare the brand and competitors on.
modelsNoAI surfaces to query, each billed separately; pass a subset when the user names surfaces or wants a lower cost. Omit for the defaults (chatgpt = the OpenAI API, perplexity, gemini); fullSweep queries all five. google_ai_overview accepts queries up to 700 characters, the others 2000. chatgpt_app (ChatGPT itself, captured from its web interface) is opt-in and not in fullSweep; for every surface, list all six. It answers more slowly; if it does not answer in time, it has no result and is not charged.
countryNoOptional ISO-2 country to measure from, e.g. "gb". Omit for each surface's default. Gemini has no country setting and ignores it.
languageNoOptional ISO-2 language for google_ai_overview and chatgpt_app, which read in it. Needs country; defaults to the country's main language.
fullSweepNoQuery the five standard AI surfaces (adds claude and google_ai_overview) at a higher cost. It leaves out chatgpt_app, so list all six in models for every surface. Ignored when models is given.
competitorsYesCompetitor brand/domain names (up to 10) to rank against your brand.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / fullSweep / description
      Previous value: -"Query all five AI surfaces (adds claude and google_ai_overview) for full cross-surface coverage, at a higher cost. Ignored when models is given."New value: +"Query the five standard AI surfaces (adds claude and google_ai_overview) at a higher cost. It leaves out chatgpt_app, so list all six in models for every surface. Ignored when models is given."
    • changedInput schema / properties / models / description
      Previous value: -"AI surfaces to query, each billed separately; pass a subset when the user names surfaces or wants a lower cost. Omit for the defaults (chatgpt, perplexity, gemini); fullSweep queries all five. google_ai_overview accepts queries up to 700 characters, the others 2000. chatgpt_app (answers captured from the ChatGPT app itself) is opt-in and slower: a single call waits 30 s for it, then returns the OpenAI API answer in its place, labelled in measurement."New value: +"AI surfaces to query, each billed separately; pass a subset when the user names surfaces or wants a lower cost. Omit for the defaults (chatgpt = the OpenAI API, perplexity, gemini); fullSweep queries all five. google_ai_overview accepts queries up to 700 characters, the others 2000. chatgpt_app (ChatGPT itself, captured from its web interface) is opt-in and not in fullSweep; for every surface, list all six. It answers more slowly; if it does not answer in time, it has no result and is not charged."
  2. Changed1 schema field changed
    • changedInput schema / properties / models / description
      Previous value: -"AI surfaces to query, each billed separately; pass a subset when the user names surfaces or wants a lower cost. Omit for the defaults (chatgpt, perplexity, gemini); fullSweep queries all five. google_ai_overview accepts queries up to 700 characters, the others 2000. chatgpt_app (answers captured from the ChatGPT app itself) is opt-in and runs in trackers only for now."New value: +"AI surfaces to query, each billed separately; pass a subset when the user names surfaces or wants a lower cost. Omit for the defaults (chatgpt, perplexity, gemini); fullSweep queries all five. google_ai_overview accepts queries up to 700 characters, the others 2000. chatgpt_app (answers captured from the ChatGPT app itself) is opt-in and slower: a single call waits 30 s for it, then returns the OpenAI API answer in its place, labelled in measurement."
  3. Changed4 schema fields changed
    • addedInput schema / properties / country
      Added value: +{
      +  "description": "Optional ISO-2 country to measure from, e.g. \"gb\". Omit for each surface's default. Gemini has no country setting and ignores it.",
      +  "maxLength": 8,
      +  "type": "string"
      +}
    • addedInput schema / properties / language
      Added value: +{
      +  "description": "Optional ISO-2 language for google_ai_overview and chatgpt_app, which read in it. Needs country; defaults to the country's main language.",
      +  "maxLength": 8,
      +  "type": "string"
      +}
    • changedInput schema / properties / models / description
      Previous value: -"AI surfaces to query, each billed separately; pass a subset when the user names surfaces or wants a lower cost. Omit for the defaults (chatgpt, perplexity, gemini); fullSweep queries all five. google_ai_overview accepts queries up to 700 characters, the others 2000."New value: +"AI surfaces to query, each billed separately; pass a subset when the user names surfaces or wants a lower cost. Omit for the defaults (chatgpt, perplexity, gemini); fullSweep queries all five. google_ai_overview accepts queries up to 700 characters, the others 2000. chatgpt_app (answers captured from the ChatGPT app itself) is opt-in and runs in trackers only for now."
    • changedInput schema / properties / models / items / enum
      Previous value: -[
      -  "chatgpt",
      -  "claude",
      -  "perplexity",
      -  "gemini",
      -  "google_ai_overview"
      -]New value: +[
      +  "chatgpt",
      +  "claude",
      +  "perplexity",
      +  "gemini",
      +  "google_ai_overview",
      +  "chatgpt_app"
      +]
  4. Changed2 schema fields changed
    • changedInput schema / properties / fullSweep / description
      Previous value: -"Query all five AI surfaces instead of the three default ones, adding claude and google_ai_overview. Costs more per call. Use it when the user wants complete cross-model coverage, is comparing surfaces against each other, or asks specifically about Claude or Google AI Overviews. Ignored when models is given."New value: +"Query all five AI surfaces (adds claude and google_ai_overview) for full cross-surface coverage, at a higher cost. Ignored when models is given."
    • changedInput schema / properties / models / description
      Previous value: -"Optional model subset. Omit to query the default surfaces (chatgpt, perplexity, gemini). Pass [\"perplexity\"] or [\"perplexity\",\"claude\"] when the user names specific surfaces or wants to reduce cost. The full set is chatgpt, claude, perplexity, gemini, google_ai_overview — to query all of them, set fullSweep instead of listing them. Google AI Overview supports queries up to 700 characters; other AI surfaces accept up to 2000."New value: +"AI surfaces to query, each billed separately; pass a subset when the user names surfaces or wants a lower cost. Omit for the defaults (chatgpt, perplexity, gemini); fullSweep queries all five. google_ai_overview accepts queries up to 700 characters, the others 2000."
  5. Changed1 schema field changed
    • changedInput schema / properties / models / description
      Previous value: -"Optional model subset. Omit to query the default surfaces (chatgpt, perplexity, gemini). Pass [\"perplexity\"] or [\"perplexity\",\"claude\"] when the user names specific surfaces or wants to reduce cost. The full set is chatgpt, claude, perplexity, gemini, google_ai_overview — to query all of them, set fullSweep instead of listing them."New value: +"Optional model subset. Omit to query the default surfaces (chatgpt, perplexity, gemini). Pass [\"perplexity\"] or [\"perplexity\",\"claude\"] when the user names specific surfaces or wants to reduce cost. The full set is chatgpt, claude, perplexity, gemini, google_ai_overview — to query all of them, set fullSweep instead of listing them. Google AI Overview supports queries up to 700 characters; other AI surfaces accept up to 2000."
  6. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare readOnly/openWorld/non-destructive, but the description adds the economically critical traits they cannot express: per-surface cost of $0.01–$0.06, USD billing to a prepaid balance, the cite42Billing result field, and that failed calls are free. It also discloses that chatgpt_app is slow and goes uncharged if it times out, which is exactly the kind of behavior an agent needs before spending money.

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?

Front-loaded with the core comparison purpose, then cost and chaining details in descending priority. Dense but nearly every clause carries information; the billing block runs three sentences and could be tightened, but no sentence is filler.

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

Completeness4/5

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

For a paid, open-world tool with no output schema, the definition covers cost, billing, failure handling, and downstream chaining. The return shape is only partially sketched (co-mention graph, requestId, cite42Billing), so an agent still has limited expectations about the result structure.

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 nonetheless adds decision-relevant meaning by tying the models/fullSweep choice to cost (each surface billed separately, fullSweep is higher cost) and by flagging the chatgpt_app opt-in and timeout-not-charged rule. That economic framing genuinely informs parameter selection rather than restating the schema.

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 and resource — "Compare one brand head-to-head against competitors in AI answers" — plus the distinctive output (a co-mention graph) and the optional inclusion of ChatGPT itself. An agent can tell this apart from a plain rankings or search tool without opening the schema.

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

Usage Guidelines4/5

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

Gives concrete when-to-use routing: pass the returned requestId to cite42_recommendations when the user wants improvement advice, and check cite42_pricing for exact prices. It also tells the agent to estimate and confirm with the user before plans over 20 calls or $5, and to pass a models subset when the user names surfaces or wants lower cost. It stops short of explicit when-not-to-use guidance versus siblings like cite42_rankings or cite42_search.

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.