Observation
Screenshot, list devices, screen info, clipboard
User Interaction
Tap, swipe, long press, type, key presses
Playwright-style
Accessibility snapshot, wait for element, element exists
Device Management
Boot, shutdown, erase, open URLs, deep links
App Management
Install, launch, terminate, uninstall
Debugging & Diagnostics
Logs, crash reports, file browser, accessibility audit
System Simulation
GPS, push notifications, clipboard, permissions
UI Configuration
Dark mode, status bar, video recording
Advanced Debugging & Testing
Dynamic Type, biometric, keychain, UserDefaults, memory warnings
Category summary
| Category | Tools | What it covers |
|---|---|---|
| Observation | 6 | Screenshots, device listing, app info, clipboard, screen geometry |
| User Interaction | 6 | Tap, swipe, long press, type text, key presses, back navigation |
| Playwright-style | 3 | Accessibility snapshot, element waiting, element existence check |
| Device Management | 6 | Boot, shutdown, erase, open URLs, open Simulator app |
| App Management | 4 | Install, launch, terminate, uninstall apps |
| Debugging & Diagnostics | 9 | Logs, crash reports, file browser, accessibility audit, diagnostics |
| System Simulation | 5 | GPS location, push notifications, clipboard, media, permissions |
| UI Configuration | 4 | Appearance, status bar, video recording |
| Advanced Debugging & Testing | 14 | Dynamic Type, biometric, keychain, iCloud, UserDefaults, memory warnings |
| Total | 57 |
Observation
Tools for reading the state of the simulator — what’s on screen, what’s installed, and what the device looks like. View full reference →| Tool | Description |
|---|---|
simulator_screenshot | Take a JPEG screenshot optimized for AI chat (~200–400 KB). Returns image inline. |
simulator_list_devices | List simulators with name, UDID, state, runtime. Filter: booted, available, all. |
simulator_list_apps | List installed apps with bundle IDs. Toggle includeSystem for system apps. |
simulator_app_info | Get app metadata: name, version, bundle path, data path, type. |
simulator_get_clipboard | Read the simulator’s clipboard text. |
simulator_get_screen_info | Window geometry, coordinate mapping, scale factor. Debug tap accuracy. |
User Interaction
Tools for interacting with the simulator as a user would — touching the screen, typing, and pressing keys. View full reference →| Tool | Description |
|---|---|
simulator_tap | Tap at (x, y) in simulator screen points. Cursor-free via idb. |
simulator_swipe | Swipe between two points. Supports edge-swipe-back from x=1. |
simulator_long_press | Long press with configurable duration. Context menus, drag initiation. |
simulator_type_text | Type text into the focused field. |
simulator_press_key | Press special keys (return, escape, arrows, F-keys) with modifiers. |
simulator_navigate_back | Navigate back via Cmd+[. Workaround for edge-swipe limitations. |
Playwright-style
Accessibility-first tools inspired by Playwright MCP for web automation. View full reference →| Tool | Description |
|---|---|
simulator_snapshot | Preferred over screenshots. Structured accessibility tree — roles, labels, values, positions. No vision model needed. Like Playwright’s browser_snapshot. |
simulator_wait_for_element | Wait for an element to appear (by label, role, or text). Polls with configurable timeout. Like Playwright’s browser_wait_for. |
simulator_element_exists | Quick boolean check: does an element matching criteria exist on screen right now? |
Device Management
Tools for controlling the simulator device lifecycle. View full reference →| Tool | Description |
|---|---|
simulator_boot | Boot a device by name or UDID. Optional waitForBoot polling. |
simulator_shutdown | Shut down a running simulator. |
simulator_erase | Factory reset — erases all content and settings. |
simulator_open_url | Open URLs or deep links (e.g., myapp://screen). |
simulator_open_simulator | Open the Simulator.app application. |
simulator_get_booted_sim_id | Get the UDID of the currently booted simulator. |
App Management
Tools for installing and controlling apps. View full reference →| Tool | Description |
|---|---|
simulator_launch_app | Launch by bundle ID with optional args and env vars. |
simulator_terminate_app | Force-terminate a running app. |
simulator_install_app | Install a .app bundle or .ipa from a local path. |
simulator_uninstall_app | Uninstall by bundle ID. |
Debugging & Diagnostics
Tools for inspecting app behavior, reading files, and analyzing crashes. View full reference →| Tool | Description |
|---|---|
simulator_get_logs | Query device logs. Filter by process, subsystem, level, time range, message content. |
simulator_stream_logs | Live log streaming with start/read/stop lifecycle. Configurable buffer. |
simulator_get_app_container | Get filesystem path to app’s bundle, data, or shared group container. |
simulator_list_app_files | Browse an app’s Documents/, Library/, Caches/, tmp/ directories. |
simulator_read_app_file | Read plists (→JSON), SQLite (→schema), and text files from app data. |
simulator_get_crash_logs | Retrieve crash reports with stack traces and thread states. |
simulator_diagnose | Xcode version, disk usage, booted devices, system info. |
simulator_accessibility_audit | Full iOS accessibility tree — real UIButton/UILabel elements with labels, frames, roles. |
simulator_describe_point | Returns the accessibility element at given coordinates. |
System Simulation
Tools for simulating real-world system conditions like location, notifications, and permissions. View full reference →| Tool | Description |
|---|---|
simulator_set_location | Set GPS coordinates (lat/lng). Test location-based features. |
simulator_send_push | Send push notifications with full APNs payload JSON. |
simulator_set_clipboard | Set the simulator clipboard text. |
simulator_add_media | Add photos/videos to the camera roll from local files. |
simulator_grant_permission | Grant, revoke, or reset permissions (camera, location, photos, contacts, microphone, etc.). |
UI Configuration
Tools for configuring the visual state of the simulator. View full reference →| Tool | Description |
|---|---|
simulator_set_appearance | Switch between light and dark mode. |
simulator_override_status_bar | Set time, battery, signal, carrier, network type. |
simulator_record_video | Start screen recording. On stop, key frames are extracted as images for AI chat. |
simulator_stop_recording | Stop recording. Returns key frames inline (no disk clutter). Optional savePath to keep the video. |
Advanced Debugging & Testing
Tools for specialized testing scenarios — accessibility sizes, biometrics, keychain, and app configuration. View full reference →| Tool | Description |
|---|---|
simulator_set_content_size | Set Dynamic Type preferred size (13 categories from extra-small to accessibility-XXXL). |
simulator_set_increase_contrast | Toggle Increase Contrast accessibility setting. |
simulator_location_scenario | Run predefined GPS routes: Freeway Drive, City Run, City Bicycle Ride. |
simulator_location_route | Simulate movement along custom waypoints with configurable speed. |
simulator_memory_warning | Trigger simulated memory warning (didReceiveMemoryWarning). |
simulator_keychain | Add root certificates, add certificates, or reset the device keychain. |
simulator_icloud_sync | Trigger iCloud synchronization on the device. |
simulator_verbose_logging | Enable/disable verbose device logging for deep debugging. |
simulator_install_app_data | Install .xcappdata packages to restore test data snapshots. |
simulator_get_env | Read environment variables from the running simulator. |
simulator_biometric | Set Face ID / Touch ID enrollment state for auth testing. |
simulator_network_status | Get network configuration — DNS, interfaces, connectivity status. |
simulator_defaults_read | Read UserDefaults from inside the simulator (inspect app prefs, feature flags). |
simulator_defaults_write | Write UserDefaults inside the simulator (set flags, inject test config). |
Disabling specific tools
You can disable any tool by adding its name to the
PREFLIGHT_FILTERED_TOOLS environment variable. This is useful when your AI client has a tool limit or when you want to reduce noise from tools you don’t use.