Skip to main content
Glama

Start or stop a cloud iPhone

phone

Cloud iPhone: Starts, reads or stops the account's NoMac phone, an iPhone Simulator on a Mac with Xcode, billed per minute from the account's credit. start answers once it is ready (usually about 4 s); status shows its state and the cost so far; extend keeps it running longer (minutes, up to 8 hours in all); stop ends it. save, restore, states and delete_state keep the phone's apps, data, keychain and permissions by name for the account, for any of its phones of the same model and iOS.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "action": "<action>"
    },
    "name": "phone"
  }
}

Input Schema

NameRequiredDescriptionDefault
stateNosave, restore, delete_state: its name; start: one to restore
actionYesstart, status, extend, stop, save, restore, states (the saved ones) or delete_state
deviceNostart: iphone (iPhone 17 Pro), ipad (iPad Pro 11-inch (M5)), iphone-pro-max (iPhone 17 Pro Max); the first is quickest
localeNostart: language and region, like fr_FR
minutesNoextend: the minutes to add, 60 by default
locationNostart: latitude,longitude
time_zoneNostart: time zone for its apps, like Europe/Paris
appearanceNostart: the phone's appearance
session_idNoThe phone; default: the account's running phone
request_keyNoRepeat a lost call with the same key

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / device / description
      Previous value: -"start: iphone (iPhone 17 Pro), ipad (iPad Pro 11-inch (M5)); the first is quickest"New value: +"start: iphone (iPhone 17 Pro), ipad (iPad Pro 11-inch (M5)), iphone-pro-max (iPhone 17 Pro Max); the first is quickest"
    • changedInput schema / properties / device / enum
      Previous value: -[
      -  "iphone",
      -  "ipad"
      -]New value: +[
      +  "iphone",
      +  "ipad",
      +  "iphone-pro-max"
      +]
  2. Added

TDQS

A4.1/5.0
Behavior5/5

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

With non-read-only, non-idempotent annotations the description supplies exactly the context annotations cannot: per-minute billing against account credit, roughly 4 s readiness latency for start, an 8-hour ceiling on extend, and the fact that saved states carry apps, data, keychain, and permissions and are portable across phones of the same model and iOS. It also implies request_key's role for retrying a lost call. This is meaningful behavioral disclosure rather than restatement.

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 purpose and billing model are front-loaded in the first sentence, and every subsequent clause maps to a real action or cost constraint. It is a dense single paragraph, so per-action semantics are harder to scan for a 8-action tool, but little text is wasted.

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 10-parameter, multi-action, mutating tool with no output schema, the description covers the cost model, timing, duration cap, and snapshot persistence semantics well enough to call it correctly. Remaining gaps are minor: no mention of auth/credit prerequisites or what status returns beyond state and cost.

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 100%, so the enum, patterns, and per-parameter descriptions already document every field, making 3 the baseline. The description adds only marginal meaning beyond the schema, mainly reinforcing that extend adds minutes up to 8 hours in total. It does not, for example, explain the interaction between session_id and the default running phone beyond what the schema already states.

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?

The description names the resource (a cloud iPhone / iPhone Simulator on a Mac with Xcode) and enumerates the specific verbs it performs: start, status, extend, stop, save, restore, states, delete_state. An agent can tell it drives the device lifecycle itself rather than acting inside the phone. It does not explicitly route away from siblings such as phone_device_use or phone_devices, which keeps it from a 5.

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?

Each action gets a one-line role: start answers once ready, status shows state and cost, extend keeps it running, stop ends it, and save/restore/states/delete_state manage named snapshots. That is clear when-to-use context per action. It stops short of explicit when-not guidance or naming the sibling tools to prefer for in-phone work.

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