Mobile Device MCP — Claude Code MCP server for iOS and Android control
Gives your agent hands on a phone: taps, scrolling, typing, screenshots and UI tree reads across several devices at once.
claude mcp add mobile-device-mcp -- npx -y @srmorete/mobile-device-mcpWhat Mobile Device MCP does
The server runs a small HTTP driver on each device — UIAutomator on Android, XCUITest on iOS — and forwards tool calls to it. Raw UI trees from both platforms get normalised into one flat element list, so the agent never deals with platform differences. A device is prepared on first use: the driver app is installed, a port is picked, the on-device server starts and gets polled until healthy. From then on traffic stays on localhost, with a bearer token per device.
The tool set covers a normal session: list_devices, screenshot, uitree, tap, double_tap, long_press, scroll, type_text, press_button, launch_app, terminate_app, list_apps, install_app and run_code. That last one executes JavaScript in a sandbox — Rhino with UIAutomator bindings on Android, JavaScriptCore with XCUITest bindings on iOS. Runaway scripts get killed, and every call starts from a fresh sandbox.
Node.js 18+ is required. Android needs the Android SDK with adb on PATH; without it no device shows up. iOS simulators need Xcode with xcrun and simctl, real devices also xcodebuild, devicectl and iproxy from libimobiledevice. Default ports are 18000 for Android and 19000 for iOS, handed out in sequence — override them with MDMS_PORT_ANDROID and MDMS_PORT_IOS if those are taken.
What it helps with
- walk an app through its screens on a real handset
- grab a screenshot plus the element list to debug layout
- type and press buttons without driving the emulator by hand
- install an
.apkor.appand launch it from the agent - check behaviour on several devices in one run
Example prompts for the agent
- List the connected devices and take a screenshot of the first Android one
- Find the login button in
uitreeand tap it - Launch the app by package name and type into the search field
How to install Mobile Device MCP
Platform CLI
claude mcp add mobile-device-mcp -- npx -y @srmorete/mobile-device-mcpPlatform CLI
codex mcp add mobile-device-mcp -- npx -y @srmorete/mobile-device-mcpConfig file
{
"mcpServers": {
"mobile-device-mcp": {
"command": "npx",
"args": [
"-y",
"@srmorete/mobile-device-mcp"
]
}
}
}Config file
{
"servers": {
"mobile-device-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@srmorete/mobile-device-mcp"
]
}
}
}Platform CLI
gemini mcp add mobile-device-mcp npx -y @srmorete/mobile-device-mcpStep by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about Mobile Device MCP
How do I install Mobile Device MCP in Claude Code?
Run claude mcp add mobile-device-mcp -- npx -y @srmorete/mobile-device-mcp. For custom ports, pass -e MDMS_PORT_ANDROID=20000 -e MDMS_PORT_IOS=21000 before the --.
What does Mobile Device MCP do?
It drives iOS and Android from an agent: taps, swipes, text input, hardware buttons, screenshots, UI trees, app install and launch. Multiple devices can be handled at the same time.
What does Android support require?
The Android SDK with adb on PATH. Without it the server cannot find a device or push the driver.