claude-in-mobile

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

Connect your client

Local (npm)

Add in one click

Opens the app, which asks before it adds the server.

Or add it by command or config

FirstTerminal
npm i -g mcp-devices
npm i -g @mcp-devices/plugin-android
mcp-devices install android
Claude CodeTerminal
claude mcp add claude-in-mobile -- mcp-devices
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "claude-in-mobile": {
      "command": "mcp-devices",
      "args": []
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "claude-in-mobile": {
      "command": "mcp-devices",
      "args": []
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "claude-in-mobile": {
      "type": "stdio",
      "command": "mcp-devices",
      "args": []
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.claude-in-mobile]
command = "mcp-devices"
args = []
Gemini CLITerminal
gemini mcp add --scope user claude-in-mobile mcp-devices

Settings 2

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

What it does

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.

What it needs

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

Limits

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

Who it suits

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.

Tools 20

device
List devices, pick a device or platform target, and show or hide tool modules
screen
Capture and annotate screenshots of the current device
input
Tap, double-tap, long-press, swipe, type text and press keys
ui
Read the accessibility tree, find elements, tap by text, wait for and assert elements
app
Launch, stop, install and list apps
system
Run device shell commands, read and clear logs, manage permissions, clipboard, URLs and files
flow
Run batches of steps, multi-step scripts and parallel actions
browser
Navigate pages, run JavaScript, inspect console, network, tabs and cookies (web)
desktop
Launch desktop apps and manage their windows, focus, size and clipboard
store
Look up app store listings, details, reviews and similar apps
intent
Send Android intents, broadcasts and deep links with typed extras
visual
Save screenshot baselines and compare against them for regressions
accessibility
Audit screens against accessibility rules and summarise issues
performance
Collect metrics, baselines, crash signals, traces and heap snapshots
sandbox
Read and write an Android app's preferences, SQLite data and files via run-as
sensor
Simulate location, battery, notifications and thermal state
network
Show traffic stats and change connectivity, proxy and airplane mode
recorder
Record interaction sequences and replay them
sync
Pair several devices and broadcast actions to them
autopilot
Explore an app's UI, generate tests and repair failing ones

Similar servers