Skip to main content
Glama

Update version metadata

update_version_localization
Idempotent

Updates App Store version metadata for a single locale—description, keywords, What’s New, promotional text, and URLs—changing only supplied fields and adding the locale if needed.

Instructions

Sets an App Store version's metadata for one locale: description, keywords, what's new, promotional text or URLs. Only the fields you pass change. Adds the locale to the version if it isn't there yet.

Input Schema

NameRequiredDescriptionDefault
localeYesLocale code as used by App Store Connect, e.g. en-US, fr-FR, ja.
keywordsNoComma-separated search keywords (up to 100 characters).
whatsNewNoWhat's New in This Version text (release notes).
versionIdYesApp Store version ID (from list_app_store_versions).
supportUrlNoSupport URL.
descriptionNoFull App Store description (up to 4000 characters).
marketingUrlNoMarketing URL.
promotionalTextNoPromotional text (up to 170 characters). Can be changed without a new version.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true and destructiveHint=false, so the low-risk mutation profile is covered. The description adds two genuinely non-obvious behaviors beyond that: partial-update semantics ("Only the fields you pass change") and implicit locale-localization creation. It does not mention required permissions or failure modes for invalid locale/versionId, keeping it below 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?

Three short sentences with zero filler; the scope statement comes first, followed by the two behavioral caveats that matter most for correct invocation. Every sentence carries unique information.

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?

With 8 fully-documented params, no output schema, and annotations carrying the safety profile, the description covers the essentials an agent needs: locale scoping, partial update, and auto-creation of the localization. It stops short of stating permission requirements or what happens on an unknown locale code, which would complete it.

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 description coverage is 100%, so the schema already documents every parameter including character limits and locale format. The description's field list (description, keywords, what's new, promotional text, URLs) mirrors the schema rather than adding new meaning, so baseline 3 applies.

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 ("Sets") and a precise resource ("an App Store version's metadata for one locale") and enumerates the field families it covers. The version-locale scope clearly separates it from update_app_info_localization and list_version_localizations without needing the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the update workflow (pass versionId + locale, pass only fields you want changed) but never states when to use this versus update_app_info_localization or create_app_store_version. The upsert note on locale implies a create-if-missing path, but no explicit when/when-not guidance or prerequisites are given.

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