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
MCP server

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
All reasons and checks

srmorete/mobile-device-mcp

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add mcp/mobile-device-mcp

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Broad 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 each

MCP

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.

An MCP server to drive iOS and Android: simulators, emulators and real devices via accessibility trees and screenshots

MCP serverBroad access10.5KRepository stars
Official

The MobAI MCP server: an agent controls Android and iOS devices, emulators and simulators through one DSL scenario tool.

MCP serverExtended access255Repository stars

Appium MCP

appium-mcp

Official

An agent opens sessions on emulators and real devices, finds elements by description and writes Java tests via the Appium server.

MCP serverBroad access517Repository stars

An MCP server that drives an Android device over ADB: app navigation, input and automated tests

MCP serverBroad access924Repository stars

AutoMobile lets an agent control Android and iOS devices in plain language: explore an app, reproduce bugs and write UI tests

MCP serverBroad access56Repository stars

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.

README badge

Report a problem