
Wraps ADB, simctl, and Compose Multiplatform desktop APIs to let Claude control mobile devices and desktop apps through natural language. You can take screenshots, tap UI elements, launch apps, grant permissions, and read device logs across Android phones, iOS Simulator, and desktop applications. Includes smart screenshot compression and annotated UI elements with bounding boxes for better visual understanding. The unified API means the same commands work whether you're automating an Android emulator or testing a desktop app. Particularly handy for mobile QA workflows, app testing automation, or when you need Claude to interact with apps outside the browser.
claude-in-mobile)👉 Want everything in one package? Keep using
claude-in-mobile.Nothing changes for you. Same install, all platforms bundled, still maintained:
npm i -g claude-in-mobileThat's it — the all-in-one edition. Read on only if you'd rather install the platforms separately (that's what
mcp-devicesis for).
| Edition | Best for | Install |
|---|---|---|
claude-in-mobile | Want it all in one, zero setup | npm i -g claude-in-mobile |
mcp-devices | Want a slim base + only the platforms you need | npm i -g mcp-devices (+ platform plugins, below) |
Both are maintained. claude-in-mobile was renamed to mcp-devices in 4.0 and
split into a modular edition; the all-in-one keeps its name and its unchanged
install. The rest of this README covers the modular mcp-devices edition.
Requires Node.js 20 or newer.
# 1. base server
npm i -g mcp-devices
# 2. add a platform (example: Android)
npm i -g @mcp-devices/plugin-android
mcp-devices install android
# 3. point your MCP client at it
# { "mcpServers": { "mobile": { "command": "mcp-devices" } } }
# Grok Build:
# grok plugin marketplace add AlexGladkov/claude-in-mobile
# grok plugin install mcp-devices --trust
Restart your MCP client. Done — ask Claude "take a screenshot of my Android device" and it works.
Check prerequisites any time: mcp-devices doctor.
The npm command mcp-devices is the Node.js MCP server. For direct shell
automation, install the native Rust CLI and use its unambiguous command name:
brew install AlexGladkov/tap/mcp-devices
mcp-devices-cli --help
mcp-devices-cli devices
The separate name prevents a global npm install from shadowing the native CLI
on PATH.
Each platform is a separate package. Install the one(s) you need — full guide in each doc:
| Platform | Install | Needs | Guide |
|---|---|---|---|
| Android | npm i -g @mcp-devices/plugin-android | adb | android » |
| iOS | npm i -g @mcp-devices/plugin-ios | xcrun (macOS/Xcode) | ios » |
| Web | npm i -g @mcp-devices/plugin-web | Chrome | web » |
| Desktop | npm i -g @mcp-devices/plugin-desktop | Java/JDK | desktop » |
| Aurora | npm i -g @mcp-devices/plugin-aurora | flutter-aurora | aurora » |
| HarmonyOS Next | npm i -g @mcp-devices/plugin-harmony | hdc (DevEco Studio) | harmony » |
| All | npm i -g @mcp-devices/plugin-all | — | — |
After installing a package, enable it: mcp-devices install <name> (or all),
then restart.
These come as ~20 built-in tool modules plus the on-demand debug plugin — full tool catalog ».
Happy with the bundled claude-in-mobile? Do nothing — it stays maintained
and installs exactly as before. This section is only if you want to move to the
slim modular edition.
claude-in-mobile and mcp-devices keep working;
the native shell interface is available as mcp-devices-cli.npm i -g mcp-devices
npm i -g @mcp-devices/plugin-android # (or plugin-all for everything)
mcp-devices install android
Tools, actions, and MCP client config are identical to the bundled edition.
mcp-devices install <name>. The claude-in-mobile edition enables all.mcp-devices plugin enable debug; MCP_DEVICES_TOOL_PLUGINS=debug remains
available as a per-run override.claude-in-mobile
edition (npm i -g claude-in-mobile) — still maintained, install unchanged.