Skip to main content
Glama

appdesigns App Store screenshots

Make a set in another language

translate_asset

Use this when the user wants a screenshot set or listing asset in another language (a localization for the App Store or Google Play): one they saved (asset_id), or one you made in this conversation (handle). You translate every text layer yourself (get_asset lists them, with their ids); this makes a copy in that language, its images copied and the original untouched, wrapping a long translation and moving the captions under it down as the editor's own Translate set does. A saved set's copy is saved into the same project (asset_id back); a copy of yours is a new set with its own handle and link, which joins the original's project when the user saves them. Returns a preview of every screen (check the line breaks) and warnings; fix any line with edit_asset. One call per language. With asset_id (something the user saved) it needs the user signed in to appdesigns (in Claude Code type /mcp, pick appdesigns and choose Authenticate (or run claude mcp login appdesigns in a separate terminal), in Codex run codex mcp login appdesigns; other agents open the sign-in page themselves); with handle (a set or design you made in this conversation, not saved yet) it needs no sign-in.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
textsYesEvery text layer that has words, translated. Keep names and brands as written; match the source's tone and length where the language allows.
handleNoInstead of asset_id: the project_handle create_project returned or the design_handle create_design returned, for something you made in this conversation that the user has not saved yet. Needs no sign-in.
asset_idNoThe asset_id list_projects returned.
languageYesApp Store Connect's code for the language, such as de-DE, fr-FR, ja, es-MX or pt-BR.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / handle
      Added value: +{
      +  "description": "Instead of asset_id: the project_handle create_project returned or the design_handle create_design returned, for something you made in this conversation that the user has not saved yet. Needs no sign-in.",
      +  "maxLength": 100,
      +  "minLength": 10,
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "asset_id",
      -  "language",
      -  "texts"
      -]New value: +[
      +  "language",
      +  "texts"
      +]
  2. Added

TDQS

A4.5/5.0
Behavior5/5

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

Far exceeds the annotations (which only say it is a non-destructive, non-idempotent write). It discloses that the original is untouched, where the copy lands (same project for asset_id, a new set with its own handle for handle), that the result is a preview of every screen plus warnings, and the exact sign-in requirements per agent for the asset_id path.

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

Conciseness3/5

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

The use case is front-loaded, but it is a single dense paragraph packed with parentheticals, including verbose per-agent sign-in commands (Claude Code /mcp flow, Codex command line). The sign-in detail is useful but makes the description hard to scan; it could be structured more tightly.

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 mutation tool with no output schema, it covers preconditions (sign-in per input mode), what is created and where, what is returned (screen previews and warnings), and the follow-up remedy (edit_asset). Nothing an agent needs to invoke it correctly is missing.

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 real workflow meaning: texts must cover every text layer listed by get_asset, translations are done by the model, and line breaks should be checked and fixed with edit_asset. The asset_id/handle distinction is also framed in terms of sign-in behavior rather than just repeating 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 specific verb and resource: it makes a copy of a screenshot set/listing asset in another language (App Store / Google Play localization), and it distinguishes the two input modes (saved asset_id vs. conversation-made handle). An agent can tell this apart from make_screenshot_set or edit_asset without opening any schema.

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?

Gives explicit when-to-use ('when the user wants a screenshot set or listing asset in another language'), routes the agent to asset_id vs. handle based on whether the user saved it, and states 'one call per language'. It does not explicitly exclude or compare against siblings like make_screenshot_set, 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.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.