Skip to main content
Glama

upload_screenshot

Destructive

Uploads a local PNG or JPEG file to an existing App Store screenshot set and handles Apple's asset reservation, byte upload, and commit steps.

Instructions

MUTATES App Store version metadata: upload a local PNG or JPEG to an existing screenshot set. The server follows Apple asset reservation, byte upload, and commit steps.

Input Schema

NameRequiredDescriptionDefault
filePathYes
screenshotSetIdYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true, so the safety profile is covered. The description adds genuinely new context by disclosing the three-step Apple flow (asset reservation, byte upload, commit), which explains why the call may be slow or partially fail. It does not clarify what 'destructive' means here — e.g. whether an existing screenshot is replaced or a new one appended.

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?

Two tight sentences with the mutation warning front-loaded and the protocol detail second. No redundant restatement of the name or schema.

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 two-parameter mutation with no output schema, the definition covers purpose, prerequisite, file type, and server-side flow, which is close to sufficient. It omits what the call returns (e.g. the created screenshot object or ID) and any failure/retry guidance for a non-idempotent multi-step operation.

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: it constrains filePath to a local PNG or JPEG and screenshotSetId to an existing set, which is meaningful added semantics. However, it gives no detail on path form (absolute vs relative), ID format, or size/dimension limits, leaving both parameters only partially characterized.

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 names a specific verb (upload) and resource (a local PNG/JPEG into an existing screenshot set), and the leading 'MUTATES App Store version metadata' frames the operation's category. It is clearly distinguishable from siblings such as create_screenshot_set and list_screenshots.

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?

Saying the upload targets an 'existing screenshot set' implicitly tells the agent a set must exist first (via create_screenshot_set or list_screenshot_sets), which is real usage context. It does not explicitly name those alternatives or state exclusions, so it falls 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.