MobAI MCP Server
OfficialProvides tools for automating Android devices, emulators, and simulators, including actions like tap, type, swipe, screenshot, app management, and assertion-based automation.
Provides tools for automating iOS devices and simulators, including actions like tap, type, swipe, screenshot, app management, and assertion-based automation.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MobAI MCP ServerOpen the Settings app on my Android device and navigate to Wi-Fi"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MobAI MCP Server
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.
How it works
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.
Related MCP server: Android-MCP
Prerequisites
Node.js 18+
MobAI desktop app running locally (HTTP API on
127.0.0.1:8686)A connected Android or iOS device, emulator, or simulator
Installation
Claude Code
claude mcp add mobai -- npx -y mobai-mcpCursor
Add to .cursor/mcp.json:
{
"mcpServers": {
"mobai": {
"command": "npx",
"args": ["-y", "mobai-mcp"]
}
}
}Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"mobai": {
"command": "npx",
"args": ["-y", "mobai-mcp"]
}
}
}Windsurf / Cline / other MCP clients
The server speaks stdio — use your client's generic MCP configuration:
{
"command": "npx",
"args": ["-y", "mobai-mcp"]
}Tools
Device management
Tool | Description |
| List all connected Android and iOS devices |
| Get details about a specific device |
| Start the automation bridge on a device (required before interaction) |
| Stop the automation bridge |
Screenshots
Tool | Description |
| Fast, low-quality screenshot for LLM visual analysis (may be downscaled; response includes scale factor) |
| Full-quality PNG to disk for reporting, debugging, or sharing |
Apps
Tool | Description |
| List installed apps on the device |
| Install an |
| Uninstall an app by bundle ID / package name |
| Launch an app in debug mode and write stdout/stderr to a log file |
Automation
Tool | Description |
| Primary tool. Execute a batch of DSL steps: tap, type, swipe, observe, assertions, web automation, metrics, screen recording, and more. |
Test management
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 |
| Get the active test project directory and its |
| List all known test project directories with their |
| Run a |
Resources
Read these before attempting any device interaction — they describe the DSL schema, action set, predicates, failure strategies, and .mob syntax.
URI | Purpose |
| How to control devices — guide, all DSL actions, predicates, and failure strategies |
| Testing workflow, rules, error fixes, and |
Example
Open the iOS Settings app, navigate to Wi-Fi, and verify the toggle exists:
{
"version": "0.2",
"steps": [
{"action": "open_app", "bundle_id": "com.apple.Preferences"},
{"action": "wait_for", "predicate": {"text": "Settings"}, "timeout_ms": 3000},
{"action": "tap", "predicate": {"text_contains": "Wi-Fi"}},
{"action": "wait_for", "predicate": {"type": "switch"}, "timeout_ms": 3000},
{"action": "assert_exists", "predicate": {"type": "switch"}},
{"action": "observe", "include": ["ui_tree"]}
]
}Pass this as the commands argument (a JSON string) to execute_dsl along with a device_id from list_devices.
Troubleshooting
"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.
Development
git clone https://github.com/MobAI-App/mobai-mcp.git
cd mobai-mcp
npm install
npm run build
node dist/index.jsLicense
Apache 2.0 — see LICENSE.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/MobAI-App/mobai-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server