ios_orientation
Set the screen orientation of an iOS device. Requires an active iOS automation session.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| udid | Yes | iOS device UDID | |
| orientation | Yes | Orientation: PORTRAIT or LANDSCAPE |
Set the screen orientation of an iOS device. Requires an active iOS automation session.
| Name | Required | Description | Default |
|---|---|---|---|
| udid | Yes | iOS device UDID | |
| orientation | Yes | Orientation: PORTRAIT or LANDSCAPE |
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the requirement of an active session but does not specify whether the orientation change affects the device's UI orientation immediately, whether a rotation animation is involved, or if any side effects occur. It also doesn't state error conditions (e.g., becomes a no-op in landscape-only apps) or interaction with other orientation-related tools.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently states the purpose and a key prerequisite. It is front-loaded with the action and resource, and there is no filler. The only minor deduction is for the lack of any additional useful behavioral context that could be added without much length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two well-documented parameters and no output schema, the description covers the basics: what it does and a key prerequisite. However, it lacks guidance on typical use cases (e.g., testing landscape layout) and doesn't mention whether it restores orientation or handles multiple sessions, which could be relevant. Overall, it's adequate but not fully complete for an agent with no other context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents both parameters with 100% coverage (udid and orientation enum). The description adds no new meaning beyond what the schema provides, so it receives the baseline score of 3. The enum values are self-explanatory; the description's mention of 'screen orientation' aligns with the 'orientation' parameter without adding syntax details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Set'), the resource ('screen orientation of an iOS device'), and the target platform. It distinguishes the tool from generic 'device_orientation' and 'ios_rotate' siblings by specifying it sets the screen orientation to PORTRAIT or LANDSCAPE, not arbitrary rotation angles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by stating 'Requires an active iOS automation session', indicating it must be used in that context. However, it does not explicitly state when to use this vs. alternatives like ios_rotate_hid or device_rotate, nor when not to use it. The guidance is clear but not differentiated from siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.