Skip to main content
Glama

Replace App Store screenshots

upload_screenshots
Destructive

Start a screenshot replacement for one display type and iOS version. PNGs are validated and prior images are backed up. Reuse request_key and the original body when retrying. Poll get_screenshot_upload until complete, rolled_back or needs_attention; accepted means still in progress. images: [{filename, data: base64 PNG}].

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
imagesYesScreenshots in display order as [{filename, data}], where data is a base64 PNG of the exact size for display_type.
localeNoApp Store locale code, for example en-US or de-DE. Defaults to en-US.en-US
project_idYesNoMac project ID (prj_…). push_project and connect_status list your projects.
request_keyNoUnique per replacement; reuse this key and the same images on a retry
display_typeYesApple screenshot display type, for example APP_IPHONE_67. get_metadata_schema lists types and exact pixel sizes.
version_stringNoDefaults to the pushed source marketing version

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
errorNoPresent only when the call failed

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Adds substantive behavior beyond the annotations: PNGs are validated, prior images are backed up (contextualizing the destructiveHint=true), and the async lifecycle states are enumerated with the meaning of "accepted." The retry guidance also meaningfully supplements idempotentHint=false.

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?

Front-loaded with the action, then the safety/retry facts, then the lifecycle states — good ordering with no filler sentences. Minor deduction because the trailing inline images spec duplicates the schema without adding new information.

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; the description instead covers validation, backup, retry semantics, and terminal polling states. Nothing an agent needs to invoke and correctly follow up on this async tool is missing.

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 all six parameters are already documented in the schema, and the description's "images: [{filename, data: base64 PNG}]" restates rather than extends that. Baseline 3 applies since the schema carries the parameter burden.

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 — "Start a screenshot replacement" — and scopes it to "one display type and iOS version," which cleanly separates it from sibling upload_store_asset and from the read-side get_screenshot_upload. An agent can identify the operation without opening 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 Guidelines4/5

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

Gives clear post-call workflow guidance: poll get_screenshot_upload until complete/rolled_back/needs_attention, and reuse request_key plus the original body on retry. It does not, however, say when to prefer this over the sibling upload_store_asset, so the alternative-selection guidance is incomplete.

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