Mobile Pilot MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WDA_HOST | No | The host of the WebDriverAgent (WDA) server. Default is localhost. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tasks | {
"list": {},
"cancel": {},
"requests": {
"tools": {
"call": {}
},
"prompts": {
"get": {}
},
"resources": {
"read": {}
}
}
} |
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_devicesB | List all iOS simulators (booted and available). |
| get_deviceC | Get information about a specific simulator. |
| boot_simulatorC | Boot an iOS simulator. |
| shutdown_simulatorC | Shutdown an iOS simulator. |
| start_bridgeB | Check WebDriverAgent connection (WDA must be running separately via xcodebuild). |
| get_screenshotC | Capture a screenshot from the simulator with resizing and format options. |
| get_ui_treeB | Get the UI accessibility tree showing all visible elements with indices for tapping. |
| tapB | Tap an element by index (from UI tree), predicate, or coordinates. |
| type_textB | Type text (tap input field first to focus, or provide predicate). |
| swipeC | Perform a swipe gesture. |
| go_homeC | Navigate to home screen. |
| launch_appB | Launch an application by bundle ID. |
| terminate_appC | Terminate an application. |
| list_appsB | List installed applications on the simulator. |
| open_urlA | Open a URL in the simulator (opens in Safari or associated app). |
| press_buttonC | Press a hardware button (home, volumeUp, volumeDown). |
| set_locationB | Set the simulator's GPS location. |
| get_clipboardC | Get clipboard/pasteboard content. |
| set_clipboardB | Set clipboard/pasteboard content. |
| get_window_sizeC | Get the simulator window/screen size. |
| double_tapC | Double tap at coordinates. |
| long_pressC | Long press at coordinates. |
| accept_alertC | Accept the current alert dialog. |
| dismiss_alertB | Dismiss the current alert dialog. |
| get_alert_textA | Get the text of the current alert dialog. |
| reset_sessionA | Reset the WDA session (useful if session expires or has errors). |
| set_status_barB | Override status bar appearance for consistent screenshots. |
| clear_status_barA | Clear all status bar overrides and return to normal. |
| dismiss_keyboardA | Dismiss the on-screen keyboard if visible. |
| set_appearanceB | Set device appearance (dark mode or light mode). |
| get_appearanceB | Get current device appearance (dark/light mode). |
| simulate_biometricsA | Simulate Touch ID or Face ID authentication (success or failure). |
| start_recordingA | Start screen recording. Use stop_recording to save the video (.mov file). |
| stop_recordingA | Stop screen recording and save the video file. |
| pinchC | Perform a pinch gesture (zoom in/out) at coordinates. |
| discover_dtd_urisA | Discover running Dart Tooling Daemon (DTD) URIs for Flutter debugging. These URIs can be used with the Dart MCP server's connect_dart_tooling_daemon tool for hot reload, widget inspection, and other Flutter debugging features. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| get_api_reference | Mobile Pilot MCP API Reference - Complete API documentation. |
| get_automation_guide | Mobile Pilot MCP Automation Guide - Guide for automating mobile simulators. |
TDQS
Scored across 36 tools
Most tools target distinct actions or resources, such as alerts, gestures, app control, and device settings. A few pairs could cause mild hesitation, like go_home vs press_button(home), or start_bridge vs reset_session, but descriptions generally clarify the boundaries.
The toolset is consistently snake_case and mostly follows a verb_noun or verb_object pattern. Minor deviations appear in gesture-only names like tap, swipe, pinch, and long_press, but the convention remains readable and predictable.
With 36 tools, the server is well above the 25-tool threshold for a heavy set. While the mobile automation domain is broad, many operations could be grouped or exposed more narrowly, making the surface feel over-scoped.
The surface covers a wide iOS simulator lifecycle: device management, gestures, app control, alerts, settings, clipboard, recording, and Flutter debugging. Some notable gaps remain, such as install/uninstall app operations and orientation controls, but core workflows are well supported.