Skip to main content
Glama
localseodata

Local SEO Data

Official

ai_top_sources

Read-only

Discover which domains AI models cite most for a keyword, with mention counts and AI search volume. Use it to identify the sources shaping AI answers in a country.

Instructions

Discovers which domains AI models cite most for a topic. Returns top_domains with domain, mentions count, and ai_search_volume. Reports at the domain level; ai_top_pages reports individual pages. 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
limitNoMax domains. Default: 10, max: 20
keywordYesKeyword to search for (e.g. "plumber near me")
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. "Seattle, WA"). Default: US
platformsNoPlatforms to query. Default: all

Output Schema

NameRequiredDescriptionDefault
keywordYes
languageNo
top_domainsYes
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": {
      +    "keyword": {
      +      "type": "string"
      +    },
      +    "language": {
      +      "type": "string"
      +    },
      +    "location_scope": {
      +      "enum": [
      +        "local",
      +        "country"
      +      ],
      +      "type": "string"
      +    },
      +    "location_used": {
      +      "type": "string"
      +    },
      +    "platforms_available": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "top_domains": {
      +      "items": {
      +        "additionalProperties": true,
      +        "properties": {
      +          "ai_search_volume": {
      +            "type": "number"
      +          },
      +          "domain": {
      +            "type": "string"
      +          },
      +          "mentions": {
      +            "type": "number"
      +          }
      +        },
      +        "required": [
      +          "domain",
      +          "mentions",
      +          "ai_search_volume"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "keyword",
      +    "top_domains"
      +  ],
      +  "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 read-only and open-world annotations, the description discloses that results are country-level regardless of the city passed, that location_used should be checked, and that the call costs 81 credits. These are meaningful behavioral constraints and operational details not present in the annotations or schema.

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 compact and front-loaded: purpose first, then return shape, sibling distinction, critical location caveat, alternatives, and cost. Every sentence carries useful information with no filler.

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 tool has an output schema, so return values need not be fully explained. The description still covers the key caveat, alternatives for different granularity, and credit cost, making it complete enough for an agent to select and invoke the tool correctly.

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 schema already documents all five parameters. The description adds critical meaning beyond the schema by explaining that location resolves to country level regardless of the provided city, which directly affects how the location parameter should be interpreted.

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 names a specific verb and resource: it discovers which domains AI models cite most for a topic. It also states the returned fields and explicitly distinguishes itself from ai_top_pages, which reports individual pages rather than domains.

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 explicitly directs agents to ai_top_pages for page-level results and to ai_scraper or ai_mode for city-level AI results. The country-level limitation is clearly stated, including the instruction to check location_used, which prevents incorrect usage.

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