Skip to main content
Glama
Rachit8484

geoseo-mcp

by Rachit8484

multi_llm_citation_check

Check how often ChatGPT, Claude, Gemini, Perplexity, Grok, and Brave cite or mention your target domain across buyer questions, with per-engine citation and mention rates.

Instructions

How often each configured LLM cites (or mentions) target_domain.

The headline GEO/AEO tool. Feed it your top 20-50 buyer questions and get a per-engine breakdown for ChatGPT/Claude/Gemini/Perplexity/Grok/Brave:

  • citation_rate (+ 95% interval): share of answers linking to your domain or any subdomain of it.

  • mention_rate / unlinked_mention_rate: answers that name your brand, with or without a link. Pass brand_aliases (e.g. ["Acme", "Acme CRM"]) if your brand isn't obvious from the domain.

  • top_competing_domains and per-question results.

LLM answers vary run to run, so every question is asked samples times per engine (default GEOSEO_CITATION_SAMPLES, 3; max 10). Cost scales with questions x samples x engines.

Input Schema

NameRequiredDescriptionDefault
enginesNo
samplesNo
questionsYes
brand_aliasesNo
target_domainYes
max_concurrencyNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv0.4.0
    • addedInput schema / properties / brand_aliases
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • addedInput schema / properties / max_concurrency
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • addedInput schema / properties / samples
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
  2. First observedv0.3.0

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full load, and it does disclose real behavioral traits: LLM answers vary run to run, each question is sampled `samples` times (default env var, max 10), and cost scales with questions x samples x engines. It does not explain what max_concurrency does or note the read-only/network cost profile beyond the scaling note.

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 headline sentence is front-loaded, the bullet list maps cleanly to output metrics, and the sampling/cost note is a tight closing paragraph. Minor redundancy between 'top_competing_domains and per-question results' and the output schema, but nothing gratuitous.

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 six-parameter, multi-engine batch tool with an output schema present, the description covers the workflow (feed questions, sample counts, cost), the key metric semantics, and brand-alias guidance. The gaps are the undocumented `engines` and `max_concurrency` parameters, which keep it from being fully complete.

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

Parameters3/5

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

Schema coverage is 0%, so the description must compensate. It explains `samples` (default env var, max 10), `brand_aliases` (with an example), and implicitly `questions` and `target_domain`, but leaves `engines` and `max_concurrency` completely undocumented — two of six parameters with no meaning anywhere.

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

Purpose4/5

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

The description gives a concrete verb+resource: it measures how often each configured LLM cites or mentions a target domain, with named metrics (citation_rate, mention_rate) and named engines. It self-identifies as the 'headline GEO/AEO tool', which helps an agent prioritize it, but it never explicitly differentiates itself from citation-checking siblings like aio_citation_check or perplexity_citation_check.

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?

It clearly tells the agent what to feed it ('your top 20-50 buyer questions') and when to pass brand_aliases ('if your brand isn't obvious from the domain'). No explicit when-not-to-use or named alternative routing, so it stops short of a 5.

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