---
title: "Mobile MCP: Drive iOS and Android Devices from Claude"
url: "https://mcpshelf.co/servers/mobile-mcp"
description: "Mobile MCP lets an agent tap, swipe, type and read screens on iOS simulators, Android emulators and real phones. The npx config and what each target needs."
updated: "2026-10-27"
site: "MCP Shelf"
---

# Mobile MCP

> Tap, swipe, type and read the screen on iOS and Android, real or simulated.

## At a glance

Mobile MCP, from Mobile Next, gives one set of tools for every phone target: iOS simulators, Android emulators and real devices over USB. It reads the native accessibility tree to find elements, so most steps cost text rather than screenshots, and it falls back to a screenshot and coordinates when an app hides its structure.

Beyond taps and typing it installs and launches apps, pulls device logs and crash reports, records the screen and can run several actions in one call. It is a good fit for exploring an app or checking a flow before you turn it into a proper test.

|  |  |
| --- | --- |
| Made by | Mobile Next |
| GitHub | https://github.com/mobile-next/mobile-mcp |
| Licence | Apache-2.0 |
| npm package | [@mobilenext/mobile-mcp](https://www.npmjs.com/package/@mobilenext/mobile-mcp) 1.0.14 (26 Oct 2026) |
| GitHub stars | 10K |
| Downloads | 20.1K a week |
| Last commit | 26 Oct 2026 |
| Tools | 34 |
| Runs on | Your computer |
| Install check | Started in our test |
| Category | [Agent helpers and desktop control](https://mcpshelf.co/categories/agents-and-automation) |

**Our check:** We ran this exact config on 27 Oct 2026: it started and answered with 34 tools.

## Tools

We listed 34 tools on 27 Oct 2026. 12 only read; the rest can change things or run commands.

| Tool | Kind | What it is for |
| --- | --- | --- |
| `get_more_tools` | reads | Asks the server for extra tools when none of the listed ones fits the task. |
| `mobile_list_available_devices` | reads | Lists the phones, simulators and emulators it can reach, iOS and Android together. |
| `mobile_login_to_cloud_provider` | changes | Signs this machine in to Mobile Next Cloud, the paid service that rents real devices. |
| `mobile_list_remote_devices` | reads | Lists the device models you can reserve in Mobile Next Cloud. |
| `mobile_allocate_remote_device` | changes | Reserves a cloud device for your use. |
| `mobile_release_remote_device` | changes | Hands a reserved cloud device back. |
| `mobile_list_apps` | reads | Lists the installed apps. |
| `mobile_get_foreground_app` | reads | Says which app (and which screen of it) is in front. |
| `mobile_launch_app` | changes | Opens an app by package name or bundle ID. |
| `mobile_terminate_app` | changes | Stops a running app. |
| `mobile_install_app` | changes | Installs an app from an .apk, .ipa, .app or .zip file. |
| `mobile_uninstall_app` | changes | Removes an app. |
| `mobile_get_screen_size` | reads | Returns the screen size in pixels. |
| `mobile_click_on_screen_at_coordinates` | changes | Taps a point, or an element by its ref from the last element list. |
| `mobile_double_tap_on_screen` | changes | Double-taps a point or an element. |
| `mobile_long_press_on_screen_at_coordinates` | changes | Presses and holds a point or an element. |
| `mobile_list_elements_on_screen` | reads | Reads the on-screen elements with their labels, coordinates and a short ref the tap tools accept. |
| `mobile_press_button` | changes | Presses a device button such as Home, Back, volume or Enter. |
| `mobile_open_url` | changes | Opens a web address in the device browser. Other link types are blocked unless you allow them. |
| `mobile_swipe_on_screen` | changes | Swipes up, down, left or right. |
| `mobile_type_keys` | changes | Types text into the focused field, optionally submitting it. |
| `mobile_save_screenshot` | changes | Saves a screenshot to a file on your computer. |
| `mobile_take_screenshot` | reads | Returns a screenshot of the device so the model can see the screen. |
| `mobile_set_orientation` | changes | Rotates the device to portrait or landscape. |
| `mobile_fold_device` | changes | Folds or unfolds a foldable simulator or emulator. |
| `mobile_set_location` | changes | Fakes the GPS position, or clears the fake one. |
| `mobile_clipboard` | changes | Reads or replaces the device clipboard. |
| `mobile_get_device_logs` | reads | Collects live logs (logcat on Android, the unified log on iOS). |
| `mobile_get_orientation` | reads | Says whether the device is in portrait or landscape. |
| `mobile_start_screen_recording` | changes | Starts recording the screen to a video file. |
| `mobile_stop_screen_recording` | changes | Stops the recording and returns where the video was saved. |
| `mobile_list_crashes` | reads | Lists the crash reports on the device. |
| `mobile_get_crash` | reads | Returns one crash report in full. |
| `mobile_batch_commands` | changes | Runs several actions in one call, such as tap, type, tap, and can list the screen at the end. |

### How clearly it describes its tools

34 of 34 tools have a description and 34 of 34 say whether they change things. The tool list takes at least ~3,000 tokens of context. Every tool says whether it only reads or can change things, so a client can ask before the risky ones.

## Set it up

### Claude Desktop

Where: claude_desktop_config.json (Settings → Developer → Edit Config)

```json
{
  "mcpServers": {
    "mobile-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@mobilenext/mobile-mcp@latest"
      ]
    }
  }
}
```

### Claude Code

Where: Your terminal, in the project folder

```bash
claude mcp add-json mobile-mcp '{"command":"npx","args":["-y","@mobilenext/mobile-mcp@latest"]}'
```

### Cursor

Where: ~/.cursor/mcp.json, or .cursor/mcp.json in a project

```json
{
  "mcpServers": {
    "mobile-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@mobilenext/mobile-mcp@latest"
      ]
    }
  }
}
```

### VS Code

Where: .vscode/mcp.json in your project

```json
{
  "servers": {
    "mobile-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@mobilenext/mobile-mcp@latest"
      ]
    }
  }
}
```

### Windsurf

Where: ~/.codeium/windsurf/mcp_config.json

```json
{
  "mcpServers": {
    "mobile-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@mobilenext/mobile-mcp@latest"
      ]
    }
  }
}
```

### ChatGPT

Where: Not supported

ChatGPT only connects to remote servers by URL. This one runs on your computer, so use Claude, Cursor or VS Code.

Set "MOBILEMCP_DISABLE_TELEMETRY": "1" in env to switch off its anonymous usage reporting.

## Settings

| Setting | Kind | Required | What it does |
| --- | --- | --- | --- |
| `MOBILEMCP_DISABLE_TELEMETRY` | env | no | Turns off the anonymous usage reporting (PostHog and Scarf) it sends by default. Example: `1` |
| `MOBILEMCP_ALLOW_UNSAFE_URLS` | env | no | Lets mobile_open_url open deep links and other non-web URL schemes, which are blocked by default. Example: `1` |
| `--listen` | flag | no | Serves it over streamable HTTP on a port instead of stdio, for clients that connect by URL. Example: `--listen 3000` |
| `MOBILEMCP_AUTH` | env | no | Requires a bearer token on the HTTP server started with --listen. Set it whenever the port is reachable by anyone else. Example: `my-secret-token` |
| `MOBILEMCP_LEGACY_ROBOT` | env | no | Falls back to the older per-platform drivers for Android and real iPhones, if the default one misbehaves on your setup. Example: `1` |

## What it can touch

**It can read**

- The screen and accessibility tree of the device
- Installed apps, device logs and crash reports
- The device clipboard

**It can change**

- Anything in an app it taps and types into, including sending messages or buying things
- Apps it installs or removes
- Device settings such as orientation and the reported location
- Video and screenshot files it saves on your computer

**Safer setup:** Point it at a simulator or emulator with a test account, not your own phone, and do not leave payment details signed in on the device it controls.

## Before you start

- Node.js 20 or newer
- For iOS: Xcode command line tools and a booted simulator (or a trusted device)
- For Android: Android platform tools (adb) and a running emulator or a device with USB debugging on

## Good for

- Walking through a mobile app flow and reporting what breaks
- Reading crash reports and device logs after a failed run
- Driving both platforms with the same prompts

## If it does not work

**mobile_list_available_devices comes back empty**
Boot a simulator first (xcrun simctl boot "iPhone 16") or start an Android emulator, and check that adb devices or xcrun simctl list shows it.

**A real Android phone is not found**
Turn on USB debugging in Developer options, plug it in and accept the prompt on the phone, then confirm it appears in adb devices.

**The agent keeps taking screenshots and runs out of context**
Ask it to use mobile_list_elements_on_screen first. The element list is text and much cheaper than an image.

**Deep links will not open**
They are blocked by default. Set MOBILEMCP_ALLOW_UNSAFE_URLS=1 in env if you need them.

## Similar servers

| Server | Tools | Runs on | Stars |
| --- | --- | --- | --- |
| [Container Use](https://mcpshelf.co/servers/container-use) | 15 | Your computer | 4.1K |
| [Sequential Thinking](https://mcpshelf.co/servers/sequential-thinking) | 1 | Your computer | 91.6K |
| [Windows-MCP](https://mcpshelf.co/servers/windows-mcp) | 21 | Your computer | 10.4K |

## Questions

### Do I need a Mac?

Only for iOS. Android emulators and devices work on Linux, Windows and macOS.

### Is it free?

The server is open source under Apache-2.0. Mobile Next Cloud, the hosted real-device service its cloud tools connect to, is a paid extra.

### How is it different from XcodeBuildMCP?

XcodeBuildMCP builds and runs your iOS project. Mobile MCP operates apps that are already installed, on iOS and Android alike.

### Can I turn a session into an automated test?

The makers suggest asking the agent to write the flow as a Mobilewright test, their open source testing library, so it runs the same way in CI.

Full docs on GitHub: https://github.com/mobile-next/mobile-mcp

---

From [MCP Shelf](https://mcpshelf.co/): A short shelf of MCP servers that are worth installing. Index for agents: https://mcpshelf.co/llms.txt

