Skip to main content
Glama
localseodata

Local SEO Data

Official

related_keywords

Read-only

Expand a keyword list with semantically related terms from up to 20 seed keywords, returning search volume, CPC, and competition data sorted by volume.

Instructions

Use when expanding a keyword list with semantically related terms. Accepts up to 20 seed keywords. Returns related keywords with search_volume, cpc, competition, and competition_level, sorted by volume. A null search_volume means no data, not zero searches. Costs 72 credits.

Input Schema

NameRequiredDescriptionDefault
limitNoMax results. Default: 50, max: 1000
keywordsYesArray of seed keywords
languageNoLanguage as ISO 639-1 code or name (e.g. "fr", "fr-FR", "French"). Defaults to English wherever we hold an English database for that country, and to the largest database that country has otherwise.
locationYesGeographic location (e.g. "Orchard Park, NY")

Output Schema

NameRequiredDescriptionDefault
keywordsYes
languageNo
locationYes
data_sourceNo
total_countYes
volume_scopeNo
location_usedNo
seed_keywordsYes
location_alternativesNo

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\", \"fr-FR\", \"French\"). Defaults to English wherever we hold an English database 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": {
      +    "data_source": {
      +      "type": "string"
      +    },
      +    "keywords": {
      +      "items": {
      +        "additionalProperties": true,
      +        "properties": {
      +          "competition": {
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "competition_level": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "cpc": {
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "keyword": {
      +            "type": "string"
      +          },
      +          "search_volume": {
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "keyword",
      +          "search_volume",
      +          "cpc",
      +          "competition"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "language": {
      +      "type": "string"
      +    },
      +    "location": {
      +      "type": "string"
      +    },
      +    "location_alternatives": {
      +      "items": {
      +        "additionalProperties": true,
      +        "properties": {
      +          "code": {
      +            "type": "number"
      +          },
      +          "name": {
      +            "type": "string"
      +          },
      +          "type": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "name",
      +          "code",
      +          "type"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "location_used": {
      +      "type": "string"
      +    },
      +    "seed_keywords": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "total_count": {
      +      "type": "number"
      +    },
      +    "volume_scope": {
      +      "enum": [
      +        "local",
      +        "country"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "keywords",
      +    "total_count",
      +    "seed_keywords",
      +    "location"
      +  ],
      +  "type": "object"
      +}
  2. First observedv0.1.0

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly/openWorld/non-destructive, so the description earns credit for what it adds: a concrete credit cost (72), the output ordering (sorted by volume), and the crucial null search_volume semantics (no data, not zero searches). It does not cover rate limits or how many credits scale with result limit, which keeps it from 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?

Four dense sentences with zero filler: usage condition first, then constraints, then return shape, then cost and the null caveat. Every sentence carries information an agent would otherwise lack.

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?

With an output schema present, the description needn't enumerate return values, and it still adds cost, ordering, and null-interpretation guidance. For a read-only keyword expansion tool this is complete enough to invoke correctly on the first try.

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 100%, so all four parameters are already documented in the schema, and the description's "up to 20 seed keywords" merely restates maxItems: 20. The null-volume note describes return data rather than parameter behavior, so there is no meaningful semantic addition over the schema. Baseline 3 applies.

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?

States a specific verb and resource: expanding a keyword list with semantically related terms, and names the input bound (up to 20 seeds) and output fields. It is clearly distinguishable in kind from siblings like search_volume or keyword_trends, but it never explicitly contrasts itself with the closest alternatives (keyword_suggestions, keyword_opportunities, keywords_for_site).

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?

"Use when expanding a keyword list with semantically related terms" gives a clear activation condition, which is more than most keyword tools offer. There are no exclusions or named alternatives for the overlapping suggestion tools, 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.