
Mobile MCP
Platform-agnostic mobile automation for iOS & Android — simulators, emulators, and real devices.
Add to your client
Copy the config for your MCP client and paste it into its config file.
npx -y @mobilenext/mobile-mcp@latestPaste into ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"mobile-mcp": {
"command": "npx",
"args": [
"-y",
"@mobilenext/mobile-mcp@latest"
]
}
}
}Step-by-step guides: Add to Claude Desktop · Add to Cursor · Add to Windsurf
Before you start
- Xcode command line tools (for iOS)
- Android Platform Tools / Android SDK (for Android)
- Node.js v22+
- An MCP-supported model or agent (e.g. Claude, OpenAI Agent SDK, Copilot Studio)
- A connected iOS/Android real device, or a running iOS Simulator / Android Emulator
About Mobile MCP
An MCP server for scalable mobile automation and development across iOS and Android. It exposes a unified set of tools for device management, app management, screen interaction, and input/navigation, using native accessibility snapshots where possible and screenshot-based coordinates as a fallback. Suitable for native app testing, data-entry flows, multi-step LLM-driven journeys, and structured on-screen data extraction.
Tools & capabilities (19)
mobile_list_available_devicesList all available devices (simulators, emulators, and real devices).
mobile_get_screen_sizeGet the screen size of the mobile device in pixels.
mobile_get_orientationGet the current screen orientation of the device.
mobile_set_orientationChange the screen orientation (portrait/landscape).
mobile_list_appsList all installed apps on the device.
mobile_launch_appLaunch an app using its package name.
mobile_terminate_appStop and terminate a running app.
mobile_install_appInstall an app from file (.apk, .ipa, .app, .zip).
mobile_uninstall_appUninstall an app using bundle ID or package name.
mobile_take_screenshotTake a screenshot to understand what's on screen.
mobile_save_screenshotSave a screenshot to a file.
mobile_list_elements_on_screenList UI elements with their coordinates and properties.
mobile_click_on_screen_at_coordinatesClick at specific x,y coordinates.
mobile_double_tap_on_screenDouble-tap at specific coordinates.
mobile_long_press_on_screen_at_coordinatesLong press at specific coordinates.
mobile_swipe_on_screenSwipe in any direction (up, down, left, right).
mobile_type_keysType text into focused elements with optional submit.
mobile_press_buttonPress device buttons (HOME, BACK, VOLUME_UP/DOWN, ENTER, etc.).
mobile_open_urlOpen URLs in the device browser.
When to use it
- Native app automation (iOS and Android) for testing or data-entry scenarios
- Scripted flows and form interactions without manually controlling simulators/emulators or real devices
- Automating multi-step user journeys driven by an LLM
- General-purpose mobile application interaction for agent-based frameworks
- Agent-to-agent communication for mobile automation and data extraction
Security notes
The standard stdio configuration requires no authentication. When running in SSE server mode (--listen), set the MOBILEMCP_AUTH environment variable to require a Bearer token (Authorization: Bearer <token>) on all requests. The server collects anonymous usage telemetry via PostHog; set MOBILEMCP_DISABLE_TELEMETRY=1 to disable it. The server can install/uninstall apps and fully control connected devices, simulators, and emulators, so only run it against devices you trust.
Mobile MCP FAQ
Which platforms and device types are supported?
iOS real devices and Simulators, and Android real devices and Emulators. iOS uses native accessibility and WebDriverAgent; Android uses ADB and UI Automator.
Does it require a computer vision model?
No. It uses native accessibility trees for most interactions and only falls back to screenshot-based coordinate analysis when accessibility data or view-hierarchy coordinates are unavailable.
How do I run it as an HTTP/SSE server instead of stdio?
By default it runs over stdio. Start an SSE server with `npx @mobilenext/mobile-mcp@latest --listen 3000` (or `--listen 0.0.0.0:3000`), then point your MCP client at http://<host>:3000/mcp. Set MOBILEMCP_AUTH to require a Bearer token.
Can I disable telemetry?
Yes. Set the MOBILEMCP_DISABLE_TELEMETRY=1 environment variable to disable the anonymous PostHog usage telemetry.
Alternatives to Mobile MCP
Compare all alternatives →Microsoft's official browser-automation MCP using Playwright's accessibility tree (no vision model).
Up-to-date, version-specific library documentation injected into your coding agent.
LSP-powered coding agent toolkit: semantic symbol search, references and structural edits.
Compare Mobile MCP with: