Skip to main content
Glama
yuraist

App Store Connect MCP Server

by yuraist

upload_reserved_asset

Destructive

Uploads a local file into an existing Apple reservation and commits its checksum for screenshots, app previews, review attachments, or build files.

Instructions

Upload a local file into an existing Apple reservation and commit its checksum. Supports screenshots, app previews, review attachments and build files. Create the reservation through write_api first; upload instructions are fetched directly from Apple.

Input Schema

NameRequiredDescriptionDefault
filePathYes
resourceIdYes
resourceTypeYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.2.1

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, openWorldHint=true and idempotentHint=false, so the safety profile is covered. The description contributes real context beyond that — reservation must pre-exist, instructions are fetched from Apple (open-world behavior), checksum is committed — but never explains what the destructive behavior actually destroys (e.g. overwriting an existing asset) or what happens on a checksum mismatch.

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?

Three short sentences, front-loaded with the core action and its constraint, with zero filler. The closing note about Apple-sourced upload instructions is slightly tangential but still earns its place as behavioral context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, open-world mutation with no output schema and no parameter documentation, the description covers the prerequisite chain but omits the result contract (is the checksum echoed back? what signals success?) and failure modes. Adequate to attempt a call, not enough to call it confidently.

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 coverage is 0%, so the description carries the burden and it partially does: the four enumerated resource types are spelled out in prose, mapping to the resourceType enum. However, filePath (local vs remote path) and resourceId (what ID space it lives in) get no explanation at all, leaving two of three parameters undocumented anywhere.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource pair: upload a local file into an existing Apple reservation and commit its checksum, which is more precise than the name alone. It does not explicitly differentiate itself from the sibling upload_build, even though buildUploadFiles is listed as one of its resource types, leaving a small ambiguity an agent must resolve.

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 a clear prerequisite: the reservation must exist and is created through write_api first, and notes that upload instructions come from Apple. It stops short of stating when to choose this over upload_build or what to do on failure, so no explicit exclusions are offered.

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