Skip to main content
Glama

Robot Actions — Remote Device Control

ios_safari_set_input_files

Set the files on a file-upload input () in Safari on an iOS device, WITHOUT opening the device's file picker. This is the only way to test an upload flow end to end on iOS: tapping an upload control opens a native sheet that automation cannot drive. Provide file content inline, or name a file already on the device (see ios_file_push / ios_upload_targets) to have it read from there. Fires the input and change events afterwards so framework bindings and validation run, then reads the input back and reports the file names and sizes the PAGE actually sees — so a silent no-op can't pass as success. Total content limit 2 MB.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
udidYesiOS device UDID
filesYesFiles to attach. Pass several only for a multiple-file input
indexNoWhich match to use when the selector matches several (0-based, default 0)
pageIdNoCDP target id. Omit to use the page ios_safari_navigate last landed on
selectorYesCSS selector for the file input. Must resolve to an <input type="file"> element

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations provided, the description carries the full behavioral burden and does so thoroughly. It discloses that the tool bypasses the picker, fires input and change events, reads back the page-visible file names and sizes to catch silent no-ops, and enforces a 2 MB total content limit.

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?

The description is longer than typical but every sentence carries distinct operational value: the iOS-specific rationale, the file-provisioning options, event firing, post-set verification, and the size limit. It is front-loaded with the core purpose and constraint, so an agent can quickly decide relevance.

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?

For a tool with no annotations and no output schema, the description covers the critical operational context: why native automation fails, how to provide files, what events fire, how success is verified, and the 2 MB limit. Parameter-specific details not in the description are fully covered by the 100%-covered schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds value above that by explaining the strategic choice between inline content and device-side files, referencing ios_file_push and ios_upload_targets, and stating the 2 MB aggregate limit that applies across the files array.

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 exactly what the tool does: set files on an <input type="file"> element in Safari on iOS without opening the native file picker. It also differentiates it from naive tapping of upload controls and from related file staging tools like ios_file_push and ios_upload_targets.

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?

It clearly explains when this tool is necessary: tapping an upload control on iOS opens a native sheet automation cannot drive, making this the only way to test upload flows end to end. It also points to ios_file_push and ios_upload_targets for files already on the device, but does not explicitly enumerate exclusions such as web_upload_file or playwright_upload_file.

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