Skip to content

Tools

This page reflects the current MCP tool schema. Availability can still vary by platform, runner, and enabled feature gates; inspect the registered schema for the exact arguments supported by your connection.

Observe & navigate

Tool What it does
πŸ‘€ observe Gets the current screen view hierarchy.
πŸ” explore Explores an app to build a navigation graph.
πŸ—ΊοΈ navigateTo Navigates using the learned navigation graph.
πŸ“Š getNavigationGraph Retrieves the navigation graph for debugging.
πŸ”— identifyInteractions Suggests likely interactions.
πŸ–οΈ highlight Draws a visual highlight around a UI element.
πŸ” debugSearch Shows selector matches, the chosen match, and near-misses.

Interact with the UI

Tool What it does
πŸ‘† tapOn Taps by text, content description, resource ID, or Android test tag.
🎯 tapAny Taps any clickable element, optionally scoped to a container.
πŸ‘‰ swipeOn Swipes or scrolls the screen or an element.
↔️ dragAndDrop Drags one element to another.
🀏 pinchOn Pinches to zoom.
⌨️ inputText Types text; its optional mode is Android-only.
🧩 setUIState Sets multiple form fields to a desired state.
πŸ—‘οΈ clearText Clears the focused input.
✨ selectAllText Selects all text in the focused input.
↩️ imeAction Performs an IME action.
πŸ”˜ pressButton Presses a device or navigation button.
⌨️ keyboard Opens, closes, or detects the on-screen keyboard.
πŸ“‹ clipboard Copies, pastes, clears, or reads the clipboard.
Pinch rotation semantics

pinchOn.rotationDegrees describes how far the two-finger axis rotates during the pinch. The fingers start horizontally and finish on the rotated axis, so a non-zero value combines pinch and rotation. The default 0 is a plain pinch. Android and iOS share this convention.

Apps, files & app data

Tool What it does
πŸ“± listApps Provides guidance for listing installed apps through MCP resources.
πŸš€ launchApp Launches an app by package name.
❌ terminateApp Terminates an app by package name.
πŸ’₯ crashApp Intentionally crashes a running app through the platform crash path.
πŸ“¦ installApp Installs an APK, app bundle, or IPA.
πŸ—‘οΈ uninstallApp Uninstalls an app by package name or bundle identifier.
πŸ”— getDeepLinks Queries an app’s deep links.
πŸ“„ putAppFile Writes local-file, UTF-8, or base64 content into an app container.
πŸ“₯ stageSharedStorage Stages host-file, UTF-8, or base64 fixtures into a bounded Android Downloads namespace for system pickers (Android only).
βš™οΈ getPreference / βš™οΈ setPreference Reads or writes Android system properties, SharedPreferences, or iOS UserDefaults.
πŸ”‘ setKeyValue / πŸ”‘ removeKeyValue / πŸ”‘ clearKeyValueFile Manages an app key-value storage file.
πŸ—ƒοΈ listDataStores / πŸ—ƒοΈ getDataStore Lists or reads Android Jetpack DataStore entries with the SDK adapter.
πŸ—„οΈ sqlQuery Executes SQL against an app SQLite database.
πŸ” resetKeychain Resets all Keychain data on an iOS Simulator after explicit confirmation; unsupported on Android and physical iOS devices.
Intentional crash contract

crashApp accepts only an appId; it never accepts a PID, signal, or shell command. Android uses ActivityManager’s VM-crash path for the resolved user. iOS Simulator sends SIGABRT to the exact launchd application process. Physical iOS devices return supported: false and never fall back to normal termination.

Every result reports success, supported, platform, appId, mechanism, timestamp, and confirmed. It reports wasRunning whenever preflight established process state; confirmed crashes also report processId when available and include immediate OS diagnostic evidence. success: true and confirmed: true require fresh, target-specific crash evidence, not merely command dispatch or process disappearance.

Copy a fixture into an app container
{
  "tool": "putAppFile",
  "params": {
    "platform": "ios",
    "target": {
      "domain": "app_containers",
      "appId": "com.example.app",
      "container": "documents"
    },
    "files": [
      {
        "sourcePath": "/Users/me/fixtures/welcome.png",
        "destinationPath": "fixtures/welcome.png"
      }
    ]
  }
}
File containers

Android externalFiles maps to /sdcard/Android/data/{appId}/files. Private containers (documents, cache, and tmp) use run-as and require a debuggable app. iOS simulator containers include documents, library, cache, and tmp.

Devices & system state

Tool What it does
πŸ“‹ listDevices Lists booted devices; a note points to MCP resources for images and detail.
πŸ–ΌοΈ listDeviceImages Lists available device images.
πŸ€– getAndroid / 🍎 getApple Finds or recovers an Android AVD or iOS Simulator for automation.
🧱 provisionDevice Provisions an exact virtual-device identity.
πŸ”§ setActiveDevice Sets the active device.
❌ killDevice / 🧹 deleteDevice Stops a device, or stops and permanently deletes it.
πŸ“Έ deviceSnapshot Captures or restores a device snapshot.
πŸ”„ rotate Changes device orientation.
🌐 openLink Opens web URLs or routes app and universal deep links.
🧰 homeScreen / recentApps / systemTray Controls core system surfaces and notifications.
πŸ”“ wakeAndUnlock Wakes and unlocks the keyguard.
🌍 changeLocalization Changes locale, time zone, text direction, time format, and calendar.
βš™οΈ getDeviceState / βš™οΈ setDeviceState Reads or changes Do Not Disturb and simulator biometric enrollment.
🧬 getIosSimulatorCapabilities Discovers biometrics for a selected iOS Simulator device type and runtime.
πŸ«† biometricAuth Simulates biometric authentication.
πŸ“³ shake Shakes an Android emulator or iOS Simulator.
πŸ“ž phoneCall / πŸ’¬ sendSms Simulates an Android emulator phone call or incoming SMS.
πŸ”” postNotification Posts a notification through Android SDK hooks or iOS Simulator push.
πŸ”” getNotificationPolicy / πŸ”” setNotificationPolicy Reads or changes app notification and Do Not Disturb policy.
πŸ›‚ getAppPermissions / πŸ›‚ setAppPermissions Reads or changes app permissions.

Network, plans & recording

Tool What it does
🌐 network Controls network capture and error simulation.
🎭 mockNetwork / 🧹 clearMockNetwork Adds or clears mock network response rules.
πŸ•ΈοΈ getNetworkGraph Returns the aggregate captured network graph.
πŸ§ͺ executePlan Executes YAML plan steps and stops at the first failure.
πŸ”’ criticalSection Synchronizes devices, then runs steps serially.
🚧 barrier Synchronizes devices, then lets them proceed concurrently.
πŸ“ recordSteps Records MCP calls to YAML; begin and end require –mcp-recording.
⏺️ startTestRecording Starts recording user interactions for exportPlan.
πŸ“€ exportPlan Stops the active recording and exports a YAML plan.
πŸŽ₯ videoRecording Starts or stops device video recording.
πŸ› bugReport Saves screen state, hierarchy, logs, window info, and a screenshot to a shareable report.

Accessibility & session tools

Tool What it does
β™Ώ accessibility Reads or controls Android TalkBack and iOS VoiceOver, returning fresh device state.
🎯 accessibilityFocus Sets or clears Android TalkBack focus by resource ID, text, or content description.
πŸ”€ setToolEnabled Enables or disables one exact AutoMobile tool for the current MCP session.

For the observe β†’ act β†’ observe behavior behind interaction tools, see the interaction loop. For per-session public tool selection, see Dynamic Tools.