AI-powered mobile device automation for Android and iOS devices, emulators, and simulators
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
MCP (Model Context Protocol) server for MobAI β AI-powered mobile device automation. Lets AI assistants (Claude Code, Cursor, Windsurf, Cline, and other MCP-compatible tools) control Android and iOS devices, emulators, and simulators via a single DSL-first interface.
All device interaction is batched through one primary tool: execute_dsl. Instead of exposing dozens of fine-grained tools (tap, swipe, typeβ¦), the server accepts a JSON script describing a sequence of actions with predicates, assertions, waits, and conditional branches. This keeps round-trips low and encodes retry/failure strategies server-side.
A small set of companion tools handles device discovery, screenshots, app management, and running .mob test files.
127.0.0.1:8686)Add to .cursor/mcp.json:
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
The server speaks stdio β use your client's generic MCP configuration:
| Tool | Description |
|---|---|
list_devices | List all connected Android and iOS devices |
get_device | Get details about a specific device |
start_bridge | Start the automation bridge on a device (required before interaction) |
stop_bridge | Stop the automation bridge |
claim_device | Claim exclusive use of a device for this session (usually optional: acting on an unclaimed device auto-claims it) |
release_device | Release one or all device leases held by this session |
| Tool | Description |
|---|---|
get_screenshot | Fast, low-quality screenshot for LLM visual analysis (may be downscaled; response includes scale factor) |
save_screenshot | Full-quality PNG to disk for reporting, debugging, or sharing |
| Tool | Description |
|---|---|
list_apps | List installed apps on the device |
install_app | Install an .apk or .ipa from a local file path |
uninstall_app | Uninstall an app by bundle ID / package name |
debug_app | Launch an app in debug mode and write stdout/stderr to a log file |
| Tool | Description |
|---|---|
execute_dsl | Primary tool. Execute a batch of DSL steps: tap, type, swipe, observe, assertions, web automation, metrics, screen recording, and more. |
Tests are .mob files on disk inside project directories. You read, write, and edit them directly using your assistant's filesystem tools β MobAI watches for changes and updates the UI live. MCP is only needed to discover projects and run tests.
| Tool | Description |
|---|---|
test_get_active | Get the active test project directory and its .mob cases |
test_list_projects | List all known test project directories with their .mob cases |
test_run | Run a .mob test case on a device (project_dir + case_path + device_id, optional params for ${name} substitution) |
Read these before attempting any device interaction β they describe the DSL schema, action set, predicates, failure strategies, and .mob syntax.
| URI | Purpose |
|---|---|
mobai://reference/device-automation | How to control devices β guide, all DSL actions, predicates, and failure strategies |
mobai://reference/testing | Testing workflow, rules, error fixes, and .mob script syntax |
Open the iOS Settings app, navigate to Wi-Fi, and verify the toggle exists:
Pass this as the commands argument (a JSON string) to execute_dsl along with a device_id from list_devices.
"Connection refused" / "Could not reach the MobAI desktop app" β Make sure the MobAI desktop app is installed and running, and the API is reachable at http://127.0.0.1:8686. If you don't have it yet, download and install it from https://mobai.run/download.
"Bridge not running" β Call start_bridge first. The iOS bridge can take up to a minute to come up.
Screenshots not visible β get_screenshot saves to /tmp/mobai/screenshots/ by default and returns the file path. Use your assistant's file-reading capability to view them. DSL observe screenshots are extracted from the response and saved to the same directory.
Apache 2.0 β see LICENSE.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/mobai-mcp)<a href="https://allmcps.com/mcp/mobai-mcp"><img src="https://allmcps.com/api/badge/mobai-mcp?style=directory" alt="Mobai Mcp on AllMCPs" /></a>