Skip to main content
Glama

Configure Survey Language

configure_survey_language
DestructiveIdempotent

Adds a LANGUAGE LAYER to a survey (or upserts translations of an existing layer). A language is a layer on the SAME survey: structure, logic and the collected dataset are shared; only texts are overlaid. Respondents pick the language via ?Language= on the share link or the survey's language selector; anything untranslated falls back to the source text. Author content (question texts, option labels, matrix rows, survey title, custom end message) is seeded with the SOURCE texts as the translation worklist. Supply translations in translations[]: {question, text} for a question's text, {question, option:, text} for an option label, {question, row:, text} for a matrix row, {target:'survey-title'|'survey-description'|'end-message'|, text} for named targets. IMPORTANT: built-in localization of service texts (buttons, validators, service pages) exists for ru/de/en ONLY — for any other language those slots stay on the English/source fallback; the reply lists the service slot keys still needing translations — translate them and call again (idempotent upsert). Add languages LAST: questions added after the layer are not in it until you re-run configure_survey_language (the survey still works — they fall back to source text). Verified by re-reading the stored translation set. Requires the edit-survey right.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
codeYesSurvey publication code — the 8-character code from the survey's public link (e.g. 1a2b3c4d). Returned by list_surveys.
languageYesLanguage code of the layer, e.g. fr, zh, pt-BR. Must differ from the survey's default language. Codes from the QS catalog register canonically (endonym + text direction); an unknown code additionally needs languageName and direction.
directionNoText direction, 'ltr' or 'rtl'. Required ONLY when the code is not in the QS catalog; catalog codes resolve it canonically.
languageNameNoThe language's own name shown to respondents in the language selector. Required ONLY when the code is not in the QS catalog; ignored for catalog codes.
translationsNoOptional translations to apply (see the tool description for the addressing forms). Anything not supplied stays on the source-language fallback.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
messageNoWhat the call did, verified, refused or previewed — the complete human-readable outcome.
previewNotrue when the call was a preview (confirm not passed): nothing was changed.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations cover safety (destructive/idempotent/openWorld), and the description goes well beyond them: shared structure/logic/dataset with text overlay, respondent language selection via ?Language=<code>, source-text fallback, seeded translation worklist, the ru/de/en-only limit on built-in service-text localization, and verification by re-reading the stored set. It even discloses the destructive edge implicitly via 'upserts translations of an existing layer'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in sentence one and nearly every clause carries information (fallback, ordering, service-slot limits, idempotence). It is nonetheless a dense, run-on block with caps emphasis and parenthetical asides that make it harder to scan than it needs to be.

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?

An output schema exists, so return values need not be explained, yet the description still tells the agent that the reply lists unlocalized service slot keys. Combined with auth requirements, ordering constraints and fallback behavior, an agent has everything needed to call it 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 baseline is 3, but the description adds addressing semantics the schema does not: the four translations[] item shapes ({question, text}, {question, option:<code>, text}, {question, row:<n>, text}, {target:..., text}) and the named target values. It doesn't restate the catalog-vs-unknown-code rules for direction/languageName, but those are already fully in the schema.

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 concrete verb+resource ('Adds a LANGUAGE LAYER to a survey ... upserts translations') and immediately defines the domain concept (a language is a layer on the same survey, not a separate survey). No sibling tool does anything similar, so it is unambiguous which tool to pick.

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?

Explicit sequencing guidance: 'Add languages LAST', what happens to questions added after the layer, and that re-running is an idempotent upsert to pick them up. It also states the prerequisite ('Requires the edit-survey right') and the for-other-languages follow-up call, so the when/how is fully specified.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources