Skip to main content
Glama
localseodata

Local SEO Data

Official

ai_compare

Read-only

Compares AI visibility across 2–5 domains side by side, returning total mentions, impressions, and AI search volume per domain.

Instructions

Compares 2–5 domains' AI visibility side by side. Returns per-domain total_mentions, total_impressions, and ai_search_volume. For one domain's detailed platform breakdown, see ai_visibility. IMPORTANT: results are country-level (location_scope: "country") regardless of the location passed — a city resolves to its country and the numbers cover all of it. Check location_used. For city-level AI results use ai_scraper or ai_mode. Costs 81 credits per domain compared (2 domains = 162).

Input Schema

NameRequiredDescriptionDefault
domainsYesDomains to compare (e.g. ["yoursite.com", "competitor.com"])
keywordsYesKeywords to compare across
languageNoLanguage as ISO 639-1 code or name (e.g. "fr", "French"). Defaults to English wherever we hold English AI data for that country, and to the largest database that country has otherwise.
locationNoLocation for results (e.g. "Denver, CO"). Default: US

Output Schema

NameRequiredDescriptionDefault
keywordsYes
languageNo
by_domainYes
location_usedNo
location_scopeNo
platforms_availableNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv1.1.0
    • addedInput schema / properties / language
      Added value: +{
      +  "description": "Language as ISO 639-1 code or name (e.g. \"fr\", \"French\"). Defaults to English wherever we hold English AI data for that country, and to the largest database that country has otherwise.",
      +  "type": "string"
      +}
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": true,
      +  "properties": {
      +    "by_domain": {
      +      "items": {
      +        "additionalProperties": true,
      +        "properties": {
      +          "ai_search_volume": {
      +            "type": "number"
      +          },
      +          "domain": {
      +            "type": "string"
      +          },
      +          "total_impressions": {
      +            "type": "number"
      +          },
      +          "total_mentions": {
      +            "type": "number"
      +          }
      +        },
      +        "required": [
      +          "domain",
      +          "total_mentions",
      +          "total_impressions",
      +          "ai_search_volume"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "keywords": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "language": {
      +      "type": "string"
      +    },
      +    "location_scope": {
      +      "enum": [
      +        "local",
      +        "country"
      +      ],
      +      "type": "string"
      +    },
      +    "location_used": {
      +      "type": "string"
      +    },
      +    "platforms_available": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "keywords",
      +    "by_domain"
      +  ],
      +  "type": "object"
      +}
  2. First observedv0.1.0

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the basic readOnly and destructive hints in annotations, the description adds vital behavioral context: the cost (81 credits per domain), the guaranteed scope (country-level), and the specific metrics returned. This significantly reduces ambiguity.

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 definition is highly efficient. It front-loads the core function, immediately provides the necessary operational constraints (cost/metrics), and ends with clear decision trees (when to use this vs. when to use siblings).

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?

The description addresses all likely cognitive blockers for the agent: output metrics, cost, hard operational constraints (2-5 domains), and scope limitations (country-level). It is perfectly suited for its complexity.

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?

Since schema coverage is 100%, the description does not need to explain data types. However, it enhances semantics by adding critical structural constraints that the schema handles passively, such as the 2-5 domain limit and the definitive country-level scope of the location parameter.

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 defines the function (compares 2-5 domains' AI visibility) and the exact output metrics (total_mentions, total_impressions, ai_search_volume). It also provides immediate differentiation by referring the user to ai_visibility for a detailed platform breakdown.

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?

It provides extensive usage guidance by defining clear boundaries: 1) for detailed breakdowns, use ai_visibility; 2) for city-level results, use ai_scraper or ai_mode. Crucially, it establishes that the tool operates strictly at a country level, despite location input.

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