Skip to main content
Glama

asc_upload_iap_screenshot

Destructive

Upload the App Store review screenshot required for an in-app purchase, completing Apple's reserve-upload-commit sequence to clear the MISSING_METADATA status.

Instructions

Upload the App Store review screenshot for an in-app purchase, performing Apple’s reserve → upload → commit sequence. This is a different resource from a listing screenshot and is the usual reason an in-app purchase stays in MISSING_METADATA when everything else about it is complete — it is the one required field with no text to type. Apple rejects non-standard aspect ratios: a window capture at 1706x1610 fails IMAGE_BAD_ASPECT_RATIO, while 2880x1800 passes. Validation is asynchronous, so a rejected image commits cleanly and only then reports FAILED.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
iapYesNumeric in-app purchase id. asc_pricing_get lists them.
confirmNoConfirmation token from a previous gated call. Not needed when the user is prompted directly.
dry_runNoReport what would be sent, including the checksum, without sending it.
file_nameNoName to store it under. Defaults to the file’s own name.
file_pathYesAbsolute path to the image on this machine.
Behavior5/5

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

Beyond annotations, the description discloses the reserve→upload→commit sequence, asynchronous validation, and the surprising behavior that a rejected image commits cleanly and only then reports FAILED. The aspect-ratio example adds concrete failure context. No contradiction with the annotations exists.

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?

Four sentences, each dense and non-redundant: the action, the resource distinction, a concrete validation constraint, and the async failure model. It is appropriately sized for the complexity and front-loads the main purpose.

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?

For a mutation tool with destructive annotations and no output schema, the description covers the operation's side-effect sequence, validation behavior, and failure mode well. It could add what success returns or how confirm interacts with gating, but overall it is strong and nearly complete.

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% and parameter descriptions already document iap, file_path, confirm, dry_run, and file_name, so the baseline is 3. The aspect-ratio guidance adds useful context for file_path, but the description does not substantially extend parameter semantics beyond 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?

The description opens with a specific verb and resource: uploading the App Store review screenshot for an in-app purchase, and names the reserve→upload→commit sequence. It also differentiates this from a listing screenshot, which helps disambiguate against sibling tools like asc_upload_screenshot.

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?

The description gives a clear use case: this is the usual reason an in-app purchase stays in MISSING_METADATA when everything else is complete, so an agent knows when it is needed. It also explicitly says this resource is different from a listing screenshot, but it does not name the sibling tool to use as an alternative.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/abd3lraouf-studios/app-store-connect-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server