---
name: iphone
description: "Use when you need to window size in points; tap coordinates must stay inside this or other iphone operations from the shell. Run 'iphone describe' first."
---

# iphone

Generated by declick from mcp:python C:/Projects/phone-claude/scripts/phone_mcp.py. Deterministic, no screenshots, JSON by default when piped.

```
iphone (mcp)  source: mcp:python C:/Projects/phone-claude/scripts/phone_mcp.py  server: python C:/Projects/phone-claude/scripts/phone_mcp.py
  screen-info                  Window size in points; tap coordinates must stay inside this. [mutating]
  tap <x>                      Tap at (x, y) in points. [mutating]
  tap-text <text>              Find text on screen and tap it. [mutating]
  long-press <x>               Press and hold at (x, y) in points for 'seconds', then release. [mutating]
  swipe <x1>                   Drag from (x1, y1) to (x2, y2) in points over 'seconds'. [mutating]
  scroll                       Scroll the screen content. [mutating]
  type-text <text>             Type into the currently focused text field (tap the field first). [mutating]
  set-field-text <text>        Replace 'field''s contents with 'text'. [mutating]
  set-clipboard <text>         Set the iPhone system clipboard content. [mutating]
  press-home                   Go to the Home Screen, as if the physical Home gesture were used. [mutating]
  current-page                 Where the Home Screen is: {"index", "total", "zone"}, or None. [mutating]
  goto-home-page               Land on Home Screen page 'n' from anywhere. [mutating]
  open-app <name>              Open an app by friendly name ('Settings'), bundle id, or installed-app name. [mutating]
  open-apps                    The apps that are open, as the iOS app switcher lists them, newest [mutating]
  close-app <name>             Force-quit an app: the switcher's swipe-up. [mutating]
  current-app                  Frontmost app info from WDA (bundleId, name, pid). [mutating]
  ... 15 more verbs (31 total): declick describe iphone --grep <text> | --offset N --limit N | --verb v
common: --json --fields --limit --rows --where --dry-run --full   exit: 0 ok 1 err 2 missing 3 blocked 4 auth
```

Examples (replace UPPERCASE tokens with real values; 'declick describe iphone --verb <verb>' prints one verb's flags and what it returns):

```
iphone screen-info --dry-run
iphone tap X --x X --y Y --dry-run
iphone tap-text TEXT --text TEXT --dry-run
```

If 'iphone' is not on PATH, run every command as: declick run iphone <verb> ... (same output, same exit codes).
Every verb: --json (default when piped) --fields a,b --limit N; mutating verbs accept --dry-run. Success: {"ok":true,"data":...,"meta":{"count":N,"truncated":false}}. Failure: {"ok":false,"error":"...","exit":N}.
Exit 2 means the verb is not in the server tools list, 3 blocked by governance. Every verb starts mcp:python C:/Projects/phone-claude/scripts/phone_mcp.py, calls one tool and exits, so the server does not have to be running first.
