Skip to main content
Glama
README.md
# mcp-devices 4.2.0 (ex-`claude-in-mobile`)

> ## 👉 Want everything in one package? Keep using `claude-in-mobile`.
>
> **Nothing changes for you.** Same install, all platforms bundled, still
> maintained:
>
> ```sh
> npm i -g claude-in-mobile
> ```
>
> That's it — the all-in-one edition. **Read on only if you'd rather install the
> platforms separately** (that's what `mcp-devices` is for).

---

## Two editions — same tool

| 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.

---

## Install in 3 steps (modular)
Requires Node.js 20 or newer.

```sh
# 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`.

## Native shell CLI

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:

```sh
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`.

## Pick your platform

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 »](./docs/modules/plugin-android.md) |
| iOS | `npm i -g @mcp-devices/plugin-ios` | `xcrun` (macOS/Xcode) | [ios »](./docs/modules/plugin-ios.md) |
| Web | `npm i -g @mcp-devices/plugin-web` | Chrome | [web »](./docs/modules/plugin-web.md) |
| Desktop | `npm i -g @mcp-devices/plugin-desktop` | Java/JDK | [desktop »](./docs/modules/plugin-desktop.md) |
| Aurora | `npm i -g @mcp-devices/plugin-aurora` | `flutter-aurora` | [aurora »](./docs/modules/plugin-aurora.md) |
| HarmonyOS Next | `npm i -g @mcp-devices/plugin-harmony` | `hdc` (DevEco Studio) | [harmony »](./docs/modules/plugin-harmony.md) |
| All | `npm i -g @mcp-devices/plugin-all` | — | — |

After installing a package, enable it: `mcp-devices install <name>` (or `all`),
then restart.

## What it can do

- **Drive apps** — screenshots, taps/swipes/typing, app launch, UI tree, shell,
  logs, permissions, files.
- **Debug live apps** — breakpoints, stepping, inspect variables, evaluate
  expressions (Android JDWP + iOS LLDB). See [debug »](./docs/modules/plugin-debug.md).
- **Test** — visual regression, accessibility audit, performance, sensor/network
  simulation.

These come as ~20 built-in tool modules plus the on-demand debug plugin —
[full tool catalog »](./docs/modules/built-in-tools.md).

## Switching from all-in-one to modular?

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.

- The Node MCP commands `claude-in-mobile` and `mcp-devices` keep working;
  the native shell interface is available as `mcp-devices-cli`.
- The only difference is that platforms aren't bundled — install the one(s) you
  actually use:

```sh
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.

## Docs

- [Modules & tools overview](./docs/modules/README.md) — how it's organized
- Platforms: [android](./docs/modules/plugin-android.md) · [ios](./docs/modules/plugin-ios.md) · [web](./docs/modules/plugin-web.md) · [desktop](./docs/modules/plugin-desktop.md) · [aurora](./docs/modules/plugin-aurora.md) · [harmony](./docs/modules/plugin-harmony.md)
- [Debug plugin](./docs/modules/plugin-debug.md) — runtime debugging
- [Built-in tools reference](./docs/modules/built-in-tools.md) — every tool + action

## Notes

- The modular base loads no platforms by default — enable them with
  `mcp-devices install <name>`. The `claude-in-mobile` edition enables all.
- Enable the separately installed debug plugin with
  `mcp-devices plugin enable debug`; `MCP_DEVICES_TOOL_PLUGINS=debug` remains
  available as a per-run override.
- Prefer everything in one package? Use the all-in-one **`claude-in-mobile`**
  edition (`npm i -g claude-in-mobile`) — still maintained, install unchanged.

TDQS

B3.4/5.0

Scored across 14 tools

Disambiguation4/5

Most tools have clear, distinct purposes (input vs. screen vs. ui vs. app lifecycle). However, 'input' and 'ui' both handle taps/texts, which could cause confusion; 'repl_*' tools are clearly separate but 'repl_spawn' vs 'repl_send' might overlap slightly in purpose.

Naming Consistency4/5

Tools mostly follow single-word or verb_noun patterns, with 'repl_*' prefix consistently used. However, mixed styles like 'tap_text' vs 'find_tap' and 'repl_spawn' vs 'spawn' deviation from a uniform convention, though the naming is generally predictable.

Tool Count4/5

14 tools is within the ideal 3-15 range, slightly on the higher end but each covers a distinct functionality area. The count feels appropriate for a mobile automation server, though some categories could be consolidated.

Completeness4/5

The tool surface covers core mobile automation needs: input, UI inspection, app lifecycle, device management, screen capture, and flow orchestration. Missing are some advanced operations like gesture composition or multi-touch, and the 'system' category is broad but shallow. Overall, no critical gaps for basic workflows.

Maintenance

ActivityActive
ResponsivenessResponsive