Skip to main content
Glama

Robot Actions — Remote Device Control

ios_upload_targets

Find where to push a file so a FILE PICKER on the device can select it — for driving an upload in Safari or in an app under test. Call this before ios_file_push when the file is meant to be chosen by a picker, because writing a file and a picker seeing it are not the same thing: the shared media directory is writable but NO picker reads it (a JPEG pushed to /DCIM does not enter the Photos library, verified on iOS 26.6 even across a reboot, and the media Downloads folder is not the Files app's Downloads). Returns app containers with pickable_from: ["files_app"] means that app declares UIFileSharingEnabled, so its Documents/ is listed under "On My iPad" in the Files app — which is what Safari's "Choose File" browses. An empty pickable_from means the push still works and the app itself can read the file, but no picker will show it. Pickable targets sort first; push to targets[0].push_path. If nothing is pickable, advice says what to change.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
udidYesiOS device UDID

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description carries the full disclosure burden and meets it thoroughly: it explains that the shared media directory is writable but unreadable by pickers, reports verified behavior on iOS 26.6, and defines the meaning of pickable_from including the empty-list case. It also tells the agent what the output means and what action to take (push to targets[0].push_path).

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?

The description is longer than average but every sentence earns its place: purpose, when-to-call, the counterintuitive picker behavior, output semantics, and actionable advice. It front-loads the purpose and usage condition before entering technical detail.

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?

Given the single parameter, the absence of an output schema, and the subtlety of the domain, the description is complete: it explains the return fields (pickable_from, targets[0].push_path, advice), what they mean, and how to act on them. An agent has everything needed to call this correctly.

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?

The only parameter, udid, is fully described by the schema ('iOS device UDID'), and schema coverage is 100%, so the baseline of 3 applies. The description does not need to add parameter-level detail; it focuses on the output contract instead.

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 states a specific verb and resource: 'Find where to push a file so a FILE PICKER on the device can select it', and narrows the scope to picker-driven uploads in Safari or an app. It clearly distinguishes this discovery step from the sibling ios_file_push by positioning it as the step to call before pushing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

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

'Call this before ios_file_push when the file is meant to be chosen by a picker' is an explicit when-to-use with a named sibling alternative. The description also cautions that writing a file and a picker seeing it are not the same, giving the agent a concrete test for when this tool is necessary.

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