Skip to content
MCP Shelf

Mobile MCP

View on GitHub

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

  • Started in our test
  • ★ 10K GitHub stars
  • 20.1K downloads a week
  • Last commit 26 Oct 2026

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
Licence
Apache-2.0
Latest version
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

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

What's in the pod: its tools

We found 34 tools when we started it on 27 Oct 2026. 12 only read. The rest can change things, so keep your app's "ask before each tool call" setting on for them.

How we tested it: Started @mobilenext/mobile-mcp 1.0.14 with no phone, simulator or emulator attached. It lists its tools on its own; calling them needs a device.

Changes things22 tools · Can create, edit, send or delete.

ToolWhat it is for
mobile_allocate_remote_deviceReserves a cloud device for your use.
mobile_batch_commandsRuns several actions in one call, such as tap, type, tap, and can list the screen at the end.
mobile_click_on_screen_at_coordinatesTaps a point, or an element by its ref from the last element list.
mobile_clipboardReads or replaces the device clipboard.
mobile_double_tap_on_screenDouble-taps a point or an element.
mobile_fold_deviceFolds or unfolds a foldable simulator or emulator.
mobile_install_appInstalls an app from an .apk, .ipa, .app or .zip file.
mobile_launch_appOpens an app by package name or bundle ID.
mobile_login_to_cloud_providerSigns this machine in to Mobile Next Cloud, the paid service that rents real devices.
mobile_long_press_on_screen_at_coordinatesPresses and holds a point or an element.
mobile_open_urlOpens a web address in the device browser. Other link types are blocked unless you allow them.
mobile_press_buttonPresses a device button such as Home, Back, volume or Enter.
mobile_release_remote_deviceHands a reserved cloud device back.
mobile_save_screenshotSaves a screenshot to a file on your computer.
mobile_set_locationFakes the GPS position, or clears the fake one.
mobile_set_orientationRotates the device to portrait or landscape.
mobile_start_screen_recordingStarts recording the screen to a video file.
mobile_stop_screen_recordingStops the recording and returns where the video was saved.
mobile_swipe_on_screenSwipes up, down, left or right.
mobile_terminate_appStops a running app.
mobile_type_keysTypes text into the focused field, optionally submitting it.
mobile_uninstall_appRemoves an app.

Only reads12 tools · Looks things up and changes nothing.

ToolWhat it is for
get_more_toolsAsks the server for extra tools when none of the listed ones fits the task.
mobile_get_crashReturns one crash report in full.
mobile_get_device_logsCollects live logs (logcat on Android, the unified log on iOS).
mobile_get_foreground_appSays which app (and which screen of it) is in front.
mobile_get_orientationSays whether the device is in portrait or landscape.
mobile_get_screen_sizeReturns the screen size in pixels.
mobile_list_appsLists the installed apps.
mobile_list_available_devicesLists the phones, simulators and emulators it can reach, iOS and Android together.
mobile_list_crashesLists the crash reports on the device.
mobile_list_elements_on_screenReads the on-screen elements with their labels, coordinates and a short ref the tap tools accept.
mobile_list_remote_devicesLists the device models you can reserve in Mobile Next Cloud.
mobile_take_screenshotReturns a screenshot of the device so the model can see the screen.

Grouped and described by us. The README on GitHub lists the inputs each tool takes.

How clearly it describes its tools to your assistant

Tools with a description
34 of 34
Say if they change things
34 of 34
Context it takes, at least
~3,000 tokens

Every tool says whether it only reads or can change things, so a client can ask before the risky ones.

From the tool list it sent us. The token figure counts names, descriptions and input names; the full schemas your client loads add more.

Set it up

Pick your app for the exact snippet and where it goes.

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

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

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

New to this? See the setup guides for Claude Code, Cursor, Claude Desktop and ChatGPT.

Settings

Names are exactly as the project spells them. Required ones are marked.

SettingWhat it does
MOBILEMCP_DISABLE_TELEMETRYEnvironment variableTurns off the anonymous usage reporting (PostHog and Scarf) it sends by default.1
MOBILEMCP_ALLOW_UNSAFE_URLSEnvironment variableLets mobile_open_url open deep links and other non-web URL schemes, which are blocked by default.1
--listenCommand line flagServes it over streamable HTTP on a port instead of stdio, for clients that connect by URL.--listen 3000
MOBILEMCP_AUTHEnvironment variableRequires a bearer token on the HTTP server started with --listen. Set it whenever the port is reachable by anyone else.my-secret-token
MOBILEMCP_LEGACY_ROBOTEnvironment variableFalls back to the older per-platform drivers for Android and real iPhones, if the default one misbehaves on your setup.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

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.

Peas in a pod: similar servers

How Mobile MCP lines up against other agent helpers and desktop control servers on the shelf.

ServerToolsRuns onLicenceStars
Mobile MCP34Your computerApache-2.010K
Container Use15Your computer–4.1K
Sequential Thinking1Your computer–91.6K
Windows-MCP21Your computerMIT10.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 GitHubmobile-next/mobile-mcp

Something wrong on this page? Tell us.

More in Agent helpers and desktop control