Skip to main content
Glama

Get Localization Languages

horizon_get_localization_languages
Read-onlyIdempotent

List every app translation language to pick a valid ISO 639-1 code or build a language menu before fetching localized texts.

Instructions

Lists the languages that have at least one translation for the app. Use when: before horizon_get_localization or horizon_get_all_localizations, to pick a valid lang or build a language menu. Not for: the texts themselves (use horizon_get_all_localizations). Side effects: None (read only). Returns: {languages, total}, where languages holds ISO 639-1 codes such as 'en' or 'de'; empty when the app has no translations. Errors: Needs HORIZON_API_KEY. Every failure returns an error result (isError) with the HTTP status and body: a 401 that horizon_test_connection also returns means HORIZON_API_KEY is wrong, 429 means the account's per-minute rate limit was reached (wait a minute, then retry).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
totalNo
languagesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.6.0
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": {},
      +  "properties": {
      +    "languages": {
      +      "anyOf": [
      +        {
      +          "description": "ISO 639-1 codes with at least one translation",
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "total": {
      +      "anyOf": [
      +        {
      +          "description": "Number of languages",
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    }
      +  },
      +  "type": "object"
      +}
  2. First observedv1.5.4

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the readOnly/idempotent/non-destructive annotations, the description adds auth requirements (HORIZON_API_KEY), the exact return shape ({languages, total} with ISO 639-1 codes, empty when no translations), and concrete failure semantics including distinguishing 401 from horizon_test_connection and the 429 per-minute rate limit with a retry hint.

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?

Organized as labeled, front-loaded sections (Use when / Not for / Side effects / Returns / Errors) with no filler. The only mild overlap is the Returns section against the existing output schema, but it is brief and non-redundant in substance.

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?

For a zero-parameter read tool, the definition covers routing, semantics, side effects, return structure and error behavior, so an agent can select and invoke it without further exploration. Nothing needed is missing given the annotations and output schema already present.

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?

The tool takes zero parameters, so the schema baseline applies (baseline 4). There is nothing for the description to clarify about inputs, and it correctly adds no invented parameter detail.

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+resource ('Lists the languages that have at least one translation for the app') and immediately bounds the scope to translated languages only. It is clearly distinguishable from horizon_get_localization and horizon_get_all_localizations, which return texts rather than the language list.

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 says when to use ('before horizon_get_localization or horizon_get_all_localizations, to pick a valid lang or build a language menu') and when not ('the texts themselves - use horizon_get_all_localizations'). Alternatives are named with the condition that selects them.

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