Skip to main content
Glama
localseodata

Local SEO Data

Official

ai_visibility

Read-only

Measures a domain's AI citation score across ChatGPT and Google, returning mentions, impressions, search volume, and platform breakdown by country for given keywords.

Instructions

Measures a single domain's overall AI citation score across platforms. Returns total_mentions, total_impressions, ai_search_volume, and platform_breakdown (chat_gpt, google). Covers one domain; ai_compare covers several side by side. 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.

Input Schema

NameRequiredDescriptionDefault
domainYesDomain to analyze (e.g. "example.com")
keywordsYesKeywords to check visibility for
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. "Austin, TX"). Default: US
platformsNoPlatforms to query. Default: all

Output Schema

NameRequiredDescriptionDefault
domainYes
languageNo
top_sourcesYes
location_usedNo
location_scopeNo
total_mentionsYes
ai_search_volumeYes
total_impressionsYes
platform_breakdownYes
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": {
      +    "ai_search_volume": {
      +      "type": "number"
      +    },
      +    "domain": {
      +      "type": "string"
      +    },
      +    "language": {
      +      "type": "string"
      +    },
      +    "location_scope": {
      +      "enum": [
      +        "local",
      +        "country"
      +      ],
      +      "type": "string"
      +    },
      +    "location_used": {
      +      "type": "string"
      +    },
      +    "platform_breakdown": {
      +      "additionalProperties": {
      +        "additionalProperties": true,
      +        "properties": {
      +          "ai_search_volume": {
      +            "type": "number"
      +          },
      +          "impressions": {
      +            "type": "number"
      +          },
      +          "mentions": {
      +            "type": "number"
      +          }
      +        },
      +        "required": [
      +          "mentions",
      +          "ai_search_volume",
      +          "impressions"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "object"
      +    },
      +    "platforms_available": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "top_sources": {
      +      "items": {
      +        "additionalProperties": true,
      +        "properties": {
      +          "domain": {
      +            "type": "string"
      +          },
      +          "impressions": {
      +            "type": "number"
      +          },
      +          "mentions": {
      +            "type": "number"
      +          }
      +        },
      +        "required": [
      +          "domain",
      +          "mentions",
      +          "impressions"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "total_impressions": {
      +      "type": "number"
      +    },
      +    "total_mentions": {
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "domain",
      +    "total_mentions",
      +    "total_impressions",
      +    "ai_search_volume",
      +    "platform_breakdown",
      +    "top_sources"
      +  ],
      +  "type": "object"
      +}
  2. First observedv0.1.0

TDQS

A4.6/5.0
Behavior4/5

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

Adds real behavioral context beyond the readOnly/openWorld annotations: a concrete cost (81 credits), the country-level resolution behavior that will silently differ from the requested city, and the instruction to verify location_used. It stops short of describing rate limits or failure modes, so not a 5.

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-loads purpose, then scope caveat, then alternatives, then cost. Every sentence carries distinct routing or behavioral information; nothing is padding, even though the field list partially duplicates the output schema.

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?

An output schema exists, so the return-value enumeration is mild redundancy rather than a gap. The description covers the two things an agent can't infer from structured fields: the credit cost and the country-level scoping gotcha. Minor omission: no hint about latency or how keywords affect volume of work.

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 baseline is 3. The description earns above baseline by correcting a misleading schema hint — 'location' is documented in the schema as accepting "Austin, TX"-style input, but the description warns the result is country-level regardless, which materially changes how an agent should use that 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?

States a specific verb and resource — measures a single domain's AI citation score across platforms — and immediately names the sibling it is not (ai_compare handles multiple domains side by side). An agent can distinguish it from ai_compare, ai_mentions, and ai_scraper without opening any schema.

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?

Explicitly routes three ways: single domain here, ai_compare for side-by-side comparison, and ai_scraper or ai_mode for city-level AI results. The country-level scope caveat also tells the agent when this tool will NOT give what it wants.

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