Mobile MCP
Drives iOS and Android simulators, emulators and real devices from an assistant
Local MCP server that controls Android, iOS Simulator, desktop, web and other device targets for testing
By Alex (individual) TypeScript Local · stdio TestingDeveloper tools
58 popularity score ★ 383 ↓ 836/wk
Opens the app, which asks before it adds the server.
npm i -g mcp-devices
npm i -g @mcp-devices/plugin-android
mcp-devices install androidclaude mcp add claude-in-mobile -- mcp-devices{
"mcpServers": {
"claude-in-mobile": {
"command": "mcp-devices",
"args": []
}
}
}{
"mcpServers": {
"claude-in-mobile": {
"command": "mcp-devices",
"args": []
}
}
}{
"servers": {
"claude-in-mobile": {
"type": "stdio",
"command": "mcp-devices",
"args": []
}
}
}[mcp_servers.claude-in-mobile]
command = "mcp-devices"
args = []gemini mcp add --scope user claude-in-mobile mcp-devicesMOBILE_PROFILE |
Optional: Starting set of visible tool modules: minimal, core (default), android, web or full. |
|---|---|
MCP_DEVICES_TOOL_PLUGINS |
Optional: Per-run override to load tool plugins, e.g. debug. |
claude-in-mobile is a locally run MCP server that gives an assistant hands on devices and apps: it takes screenshots, taps, swipes and types, reads the accessibility tree, launches and installs apps, reads logs and runs shell commands on a connected Android device or emulator, the iOS Simulator, a desktop app, a Chrome browser, Aurora OS or HarmonyOS Next. Beyond driving apps it carries testing modules for visual regression, accessibility audits, performance snapshots, sensor and network simulation, recording and replay, and an optional debug plugin that sets breakpoints over Android JDWP and iOS LLDB.
Since 4.0 it ships in two editions. The npm package mcp-devices is the modular base: it installs both the mcp-devices and claude-in-mobile commands but loads no platform until you add a plugin package such as @mcp-devices/plugin-android and enable it with `mcp-devices install <name>`. The claude-in-mobile package is the all-in-one edition with every platform enabled; the authors keep both maintained.
Tools are grouped into 20 modules, each one MCP tool that takes an `action` argument. Only `device` and `screen` are always shown. The `MOBILE_PROFILE` setting picks the starting set (minimal, core, android, web or full) and defaults to core, which exposes 7 tools (device, screen, input, ui, app, system, flow); the assistant can switch more on at runtime with device(action:'enable_module'). The full module list and profile table are in the tool reference and src/profiles.ts rather than the README.
| Runtime | Node.js 20+ |
|---|
Node.js 20 or newer. At least one platform plugin installed and enabled, plus that platform's own tooling on PATH: adb for Android, Xcode's xcrun on macOS for iOS, Chrome for web, a Java JDK for desktop, flutter-aurora for Aurora OS, hdc from DevEco Studio for HarmonyOS Next. A connected device, emulator or simulator to drive. `mcp-devices doctor` checks the prerequisites.
The modular mcp-devices base loads no platform by default, so it does nothing useful until a plugin is installed and enabled. iOS support needs macOS with Xcode. Several modules apply to one platform only: intent and sandbox are Android only, browser is web only, desktop is desktop only, file_push and file_pull work on Aurora and HarmonyOS Next. With the default core profile, testing and automation modules stay hidden until enabled through MOBILE_PROFILE or the device tool. The debug plugin is a separate package and must be enabled with `mcp-devices plugin enable debug`.
Suits mobile and desktop developers and QA engineers who want an assistant to operate a real device, emulator or simulator during development: reproducing bugs, checking screens, running accessibility or visual regression checks, reading logs. It runs entirely on your machine and needs the platform SDK tools already installed, so it fits people who already build for Android, iOS or HarmonyOS. Pick the all-in-one claude-in-mobile package for a single install, or mcp-devices with only the plugins you need. If you only need to drive a web browser, a browser-specific automation server is a lighter choice than this device-oriented one.
devicescreeninputuiappsystemflowbrowserdesktopstoreintentvisualaccessibilityperformancesandboxsensornetworkrecordersyncautopilot