
Mobile Next MCP Server: Setup for Claude Code, Cursor and Other Apps
Lets Claude, Cursor or Codex use a phone for you: tap, type, scroll and read the screen on iOS and Android simulators, emulators and real devices.
Mobile Next's server drives iOS and Android through the accessibility tree and screenshots. It runs on your computer and needs Node.js 20, Xcode command line tools for iOS and Android Platform Tools for Android. Local use needs no account. A cloud option adds rentable real phones with a browser sign-in. Anonymous usage data is sent unless you turn it off.
Good for
- App developers who want an assistant to test flows on a simulator or phone
- QA engineers who automate mobile checks without writing XCUITest or Espresso
- Teams that want an assistant to reproduce a bug and read device logs
Works in
12 should work
Tap an app to see how to set it up and any known problems.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Client does not support this transport.
Client does not support this transport.
Install mobile MCP
Claude Code
- 1
Copy this prompt.
Add the mobile MCP server to Claude Code. Run this command: claude mcp add mobile -- npx -y @mobilenext/mobile-mcp Then check that it loaded and tell me if I need to sign in or restart.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
Requires Node.js, Xcode CLI tools (iOS) or Android Platform Tools (Android).
Needs Node.js 20 or newer. The README also offers npx @mobilenext/mobile-mcp@latest install, which finds your clients and sets them up. To turn off usage data, add the MOBILEMCP_DISABLE_TELEMETRY environment variable with any value to the server config.
Built from the package data we hold. Not yet tested by us.
Tools
Lists the phones, simulators and emulators you can use
Finds every iOS simulator, Android emulator and connected real device the assistant can control.
Try: “Which devices are available right now?”
Runs code ·
mobile_list_available_devicesReads the buttons and text on the current screen
Returns the UI elements on screen with their positions, so the assistant can tap by element instead of guessing from a picture.
Try: “What buttons are on the login screen?”
Read ·
mobile_list_elements_on_screenTakes a screenshot of the device
Captures what is on the device screen and returns it as an image for the assistant to look at.
Try: “Take a screenshot and tell me what screen this is.”
Read ·
mobile_take_screenshotSaves a screenshot to a file
Captures the screen and writes it to a .png or .jpg path on your computer.
Try: “Save a screenshot to ~/Desktop/home.png.”
Write ·
mobile_save_screenshotTaps a spot or element on the screen
Taps at x,y coordinates or on an element from the screen list.
Try: “Tap the Sign in button.”
Write ·
mobile_click_on_screen_at_coordinatesDouble-taps the screen
Double-taps at coordinates or on an element.
Try: “Double-tap the photo to like it.”
Write ·
mobile_double_tap_on_screenLong-presses the screen
Presses and holds at coordinates or on an element.
Try: “Long-press the app icon.”
Write ·
mobile_long_press_on_screen_at_coordinatesSwipes up, down, left or right
Swipes in any direction, for scrolling lists or moving between pages.
Try: “Scroll down to the bottom of the feed.”
Write ·
mobile_swipe_on_screenTypes text into the focused field
Types text into the field that has focus, with an option to press submit.
Try: “Type my test email into the field and submit.”
Write ·
mobile_type_keysPresses Home, Back, Volume or Enter
Presses a hardware or system button on the device.
Try: “Press the Back button twice.”
Write ·
mobile_press_buttonOpens a web link on the device
Opens an http or https address in the device browser.
Try: “Open https://example.com on the phone.”
Write ·
mobile_open_urlOpens an app by its package name
Starts an installed app using its package name or bundle ID.
Try: “Launch com.example.shop.”
Write ·
mobile_launch_appLists the apps installed on the device
Returns every app installed on the device.
Try: “What apps are installed on the emulator?”
Read ·
mobile_list_appsShows which app is open now
Returns the app currently in the foreground.
Try: “Which app is on screen?”
Read ·
mobile_get_foreground_appInstalls an app from a file
Installs an .apk, .ipa, .app or .zip file from your computer onto the device.
Try: “Install build/app-debug.apk on the emulator.”
Write ·
mobile_install_appForce-stops a running app
Stops and terminates a running app.
Try: “Stop the shop app.”
Write ·
mobile_terminate_appRemoves an app from the device
Uninstalls an app by package name or bundle ID. The tool is marked destructive in its source.
Try: “Uninstall com.example.shop from the emulator.”
Delete ·
mobile_uninstall_appWipes an app back to a fresh start
Clears an app's data on Android and on the iOS Simulator. The tool is marked destructive in its source.
Try: “Clear the data for the shop app so I can test first launch.”
Delete ·
mobile_clear_app_dataGets the screen size in pixels
Returns the width and height of the device screen.
Try: “How big is the screen in pixels?”
Read ·
mobile_get_screen_sizeShows portrait or landscape
Returns the current screen orientation.
Try: “Is the phone in landscape?”
Read ·
mobile_get_orientationRotates the screen
Switches the device between portrait and landscape.
Try: “Rotate to landscape.”
Write ·
mobile_set_orientationFolds or unfolds a foldable device
Folds or unfolds foldable Android emulators and iPhone Duo simulators.
Try: “Fold the emulator.”
Write ·
mobile_fold_deviceFakes the phone's GPS location
Overrides the GPS location the device reports, or clears the override.
Try: “Set the location to Paris.”
Write ·
mobile_set_locationReads or sets the device clipboard
Reads the clipboard, or replaces it when you pass text.
Try: “What is on the phone clipboard?”
Write ·
mobile_clipboardCollects live device logs
Captures logcat on Android or the unified log on iOS, with filters. It can save the logs to a .log, .txt or .jsonl file.
Try: “Collect 50 error logs while I open the checkout screen.”
Files ·
mobile_get_device_logsLists crash reports on the device
Lists the crash reports the device has stored.
Try: “Any crashes on the device?”
Read ·
mobile_list_crashesOpens one crash report
Returns the full text of a crash report by its ID.
Try: “Show me the latest crash report.”
Read ·
mobile_get_crashStarts recording the screen to a video
Records the device screen in the background until you stop it and returns the file path.
Try: “Record the screen while you go through signup.”
Runs code ·
mobile_start_screen_recordingStops the screen recording
Stops the active recording and saves the video file.
Try: “Stop recording.”
Write ·
mobile_stop_screen_recordingRuns several taps and steps in one go
Runs a list of other device tools in order, such as click, type, click. Its source marks it destructive because a step can be any of the tools, including uninstall.
Try: “Fill in the signup form: tap name, type Ada, tap email, type ada@example.com.”
Delete ·
mobile_batch_commandsSigns in to Mobile Next Cloud
Starts a browser sign-in to the cloud device service and returns a link and a code for you to enter.
Try: “Sign me in to the cloud device provider.”
Network ·
mobile_login_to_cloud_providerLists cloud phones you could rent
Lists device models you can reserve from the Mobile Next Cloud fleet.
Try: “Which cloud iPhones are available?”
Network ·
mobile_list_remote_devicesReserves a real cloud phone
Reserves a physical cloud device for exclusive use. It is a shared and billed resource, so the tool says the assistant should ask you first.
Try: “Reserve a Pixel from the cloud.”
Write ·
mobile_allocate_remote_deviceGives the cloud phone back
Releases a reserved cloud device back to the fleet. Its source marks it destructive.
Try: “Release the cloud device.”
Delete ·
mobile_release_remote_deviceUsed by the assistant behind the scenes
Tells the developers what tool you wished for
Sends a short description of your goal to the Mobile Next developers. It only exists when telemetry is on, and the tool text says not to include private data.
Try: “(Used by the assistant when no tool fits.)”
Network ·
get_more_tools
From the official docs
Permissions
high risk · 4 things to watch · 6 advisories
High risk
The assistant can control a phone like a person would, including uninstalling apps and clearing their data. Use a simulator, an emulator or a spare test phone with no real accounts on it.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only mode
Watch out for
It can uninstall apps and wipe their data
Uninstall, clear-data and batch tools are marked destructive. Use a test device or simulator, not your daily phone. github.com
It can tap and type anywhere on the device
The assistant acts like a user on the screen, so it can send messages or buy things in apps that are signed in. Keep real accounts off the device. github.com
It sends usage data and your goal text unless you opt out
Tool names, run times and platform details go to PostHog, and a counter pixel is fetched. While telemetry is on, an extra get_more_tools tool sends the assistant's written goal to the developers; the tool text says to leave out private data. Set MOBILEMCP_DISABLE_TELEMETRY to any value to stop both. github.com
Cloud devices are billed and shared
The cloud tools reserve real phones. The tool text tells the assistant to ask you first, so confirm before you agree. github.com
Security advisories
6 known advisories, all fixed in a newer version.
- HTTP server mode is reachable from the network without authenticationhigh · Fixed in 0.0.51 · GHSA-7fcv-4hr6-54fw
- Output path check allows writes anywhere under / or the home directory when the server is started from therehigh · Fixed in 1.0.11 · GHSA-2hjm-frj2-hrmg
- Arbitrary Android Intent Execution via mobile_open_urlhigh · Fixed in 0.0.50 · GHSA-5qhv-x9j4-c3vm
- Arbitrary file write via Path Traversal in mobile_save_screenshot and mobile_start_screen_recording toolshigh · Fixed in 0.0.49 · GHSA-3p2m-h2v6-g9mx
- A hard link at the output path redirects screenshot and log writes outside the allowed directoriesmedium · Fixed in 1.0.15 · GHSA-mmj8-242p-q66f
Technical details
| Turning on read-only | No read-only switch is documented. |
|---|---|
| Talks to | us.i.posthog.com and static.scarf.sh for usage data, and the goal text from get_more_tools, unless MOBILEMCP_DISABLE_TELEMETRY is set. Mobile Next Cloud when you use the remote device tools |
| Sign-in and keys | No account for local devices. The cloud tools use a browser device-code login. |
Questions
Is the Mobile Next MCP server official?
It is made by Mobile Next, the project behind it, and is not made by Apple or Google. It works with iOS and Android through their own tools.
What do I need installed?
Node.js 20 or newer. For iOS you need Xcode command line tools and a booted simulator or a trusted USB device. For Android you need Platform Tools (adb) and a running emulator or a phone with USB debugging on.
Does it work with real phones?
Yes. The README lists iOS simulators, iOS real devices, Android emulators and Android real devices as supported. Real devices connect over USB.
Does it collect usage data?
Yes, by default. It sends tool names, run times and basic system details to PostHog. Set the MOBILEMCP_DISABLE_TELEMETRY environment variable to any value to turn that off.
Can it run read-only?
No. No read-only switch is documented, and most tools tap, type or change the device. Some tools only read, such as listing apps or logs.
Is the list of 35 tools complete?
It matches the server code for the current release. One of them only appears when telemetry is on.
Information
updated Nov 2, 2026
- Publisher
- Community
- Package
@mobilenext/mobile-mcp- Registry
- npm
- Transport
- stdio
- Auth
- None
- Version
- 1.0.15
- License
- Apache-2.0
- Last commit
- Oct 30, 2026
- Open issues
- 42
- Listed in
- Official MCP registry
Sources
Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.
Show all 2Hide
- github.com · github.com
- github.com · github.com