Mobile Device MCP
Mobile Device MCP controls iOS and Android: taps, typing, screenshots and the element tree, with several devices at once
- 53 ★ on the repository
- Last commit
- MIT
Broad access
Why this level
- The agent controls connected phones: it taps, types, installs apps and runs code on the device
- A driver app is installed on the device
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add mcp/mobile-device-mcpDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- The agent controls connected phones: it taps, types, installs apps and runs code on the device
- A driver app is installed on the device
This is third-party code. Review the repository files before installing.
What it does
Mobile Device MCP lets an agent tap, scroll, type, take screenshots, read the UI tree and run code on real iOS and Android devices and emulators. It works with several devices at once. The architecture has three layers: lightweight on-device HTTP servers on UIAutomator and XCUITest, a UI tree filter that normalizes both formats into a flat element list, and the external MCP server. On first use the server installs the driver app itself, allocates a port and waits for readiness. After that calls are proxied over localhost. Among 14 tools are `list_devices`, `screenshot`, `uitree`, `tap`, `type_text`, `launch_app`, `install_app` and `run_code`, which executes sandboxed JavaScript on the device.
Who it is for. Mobile developers and QA engineers who need to give an agent parallel work with several phones and emulators.
Good fit when
- One scenario runs at once on several Android and iOS devices
- The agent takes a screenshot and the element tree with no manual markup
- An app is installed on a device from a local `.apk`, `.app` or `.ipa`
- A native screen and an embedded WebView are described in one list
Not a fit when
- There is no Android SDK with `adb` or Xcode
- A test framework with reports is needed instead of manual control
- A device cannot be left under an agent's control
Example request
List the connected devices, take a screenshot on two of them and open the Settings app on eachMCP
- Transport
- stdio
- Authentication
- not required
Environment variables
MDMS_PORT_ANDROID- Android driver port
MDMS_PORT_IOS- iOS driver port
Limitations
Node.js 18 or newer for `npx`, the Android SDK with `adb` on `PATH` for Android and Xcode with `xcrun` and `simctl` for the iOS simulator are required. A real iPhone additionally needs `xcodebuild`, `devicectl` and `iproxy` from libimobiledevice. Building from source requires Bun, Gradle and Xcode. Driver ports are set with the `MDMS_PORT_ANDROID` and `MDMS_PORT_IOS` variables. The `run_code` tool runs code on the device in a sandbox, but the agent overall gets full control of the phone, including app installation.
How to disable. Remove the `mobile-device-mcp` entry from the client with `claude mcp remove mobile-device-mcp` and delete the driver app from the device.
FAQ
How do I connect Mobile Device MCP?
Run `claude mcp add mobile-device-mcp -- npx -y @srmorete/mobile-device-mcp@latest`. For your own ports add `-e MDMS_PORT_ANDROID=20000 -e MDMS_PORT_IOS=21000`.
What does run_code do?
It runs sandboxed JavaScript on the device: on Android in the Rhino engine with UIAutomator bindings, on iOS XCUITest-style commands are allowed.
How do several devices work?
The server discovers devices, installs a driver on first use, allocates a port and then proxies calls to each device over localhost separately.
Is a real phone needed?
No, Android emulators and iOS simulators work. A real iPhone needs `devicectl` and `iproxy`.
What is uitree?
A flat list of UI elements that normalizes UIAutomator and XCUITest trees into one format. Off-screen elements are excluded by default.
Discussion
No questions or reviews yet.
Related
MCP serversAn MCP server to drive iOS and Android: simulators, emulators and real devices via accessibility trees and screenshots
The MobAI MCP server: an agent controls Android and iOS devices, emulators and simulators through one DSL scenario tool.
Appium MCP
appium-mcp
An agent opens sessions on emulators and real devices, finds elements by description and writes Java tests via the Appium server.
An MCP server that drives an Android device over ADB: app navigation, input and automated tests
An MCP server that installs on a jailbroken iPhone and gives an agent 46 tools: taps, screenshots, OCR, apps, files and logs
AutoMobile lets an agent control Android and iOS devices in plain language: explore an app, reproduce bugs and write UI tests
README in short
The README describes the server as a way to control iOS and Android from an agent, explains the three-layer architecture and lists the tools. `run_code`, requirements, installation, build and license are covered separately.