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.