Skip to main content
Glama

phone_open

Launches an iPhone app via iPhone Mirroring by searching Spotlight, OCR-matching the app row, and tapping it; returns to the home screen if no match.

Instructions

EXPERIMENTAL. Needs iPhone Mirroring and a python3 with pyobjc. Open an app via the mirroring Spotlight menu command/shortcut, type the name, OCR-pick the matching app row and tap it; returns to the home screen when not found.

Input Schema

NameRequiredDescriptionDefault
appNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.2

TDQS

A3.5/5.0
Behavior4/5

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

With no annotations at all, the description carries the full burden and does well: it flags EXPERIMENTAL, names the runtime dependencies, spells out the Spotlight/type/OCR/tap sequence, and discloses the fallback behavior on non-match. Remaining gaps are latency, whether the device must be unlocked, and what a failure looks like to the caller.

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?

A single dense sentence that front-loads the EXPERIMENTAL warning and prerequisites before the operational detail. No filler.

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?

No output schema and no annotations mean the description must cover both semantics and results. It explains the invocation path and the not-found fallback, but says nothing about what is returned on success, how long the OCR matching takes, or error conditions beyond not-found.

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?

One parameter at 0% schema coverage, and the schema allows arbitrary extra properties. The phrase 'type the name' implies the app param is the app name to search for, which is real added meaning, but it never states matching rules (exact vs partial, case sensitivity, localized names) that OCR row-picking would depend on.

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?

Specific verb and resource: 'Open an app' on a mirrored iPhone, plus the actual mechanism (Spotlight command, type name, OCR-pick row, tap). However it never distinguishes itself from the very close sibling phone_launch, which by name appears to do the same job, so an agent cannot pick between them from this text.

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

Usage Guidelines2/5

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

The description gives prerequisites (iPhone Mirroring, python3 with pyobjc) but no guidance on when to prefer this over phone_launch or the mac_* alternatives. 'Returns to the home screen when not found' hints at a failure path but no selection criteria are stated.

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