mobile-next avatar

Mobile Mcp

mobile-next/mobile-mcp

Mobile Next MCP enables AI agents and LLMs to automate and interact with native iOS and Android applications across simulators, emulators, and real devices through a unified platform-agnostic interface. The server provides tools for accessibility-based snapshots and coordinate-based interactions from screenshots, allowing agents to perform automated testing, form filling, multi-step user journeys, and general application interaction without requiring platform-specific knowledge. It solves the problem of scaling mobile automation by abstracting away iOS and Android differences and enabling LLMs to drive complex mobile workflows programmatically.

GitHub stars
10.5K
tools
23
transport
STDIO
last updated
Nov 11, 2026

Install

From registry metadata
$ npx add-mcp @mobilenext/mobile-mcp --name mobile-mcp

Run in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

$ claude mcp add mobile-mcp -- npx -y @mobilenext/mobile-mcp

Run in your terminal. Replace YOUR_* placeholders with real values; add --scope user to install for every project.

Tools

Verified live · 23 tools

Verified live against the running server on Jun 10, 2026.

mobile_list_available_devicesList all available devices. This includes both physical mobile devices and mobile simulators and emulators. It returns both Android and iOS devices.

List all available devices. This includes both physical mobile devices and mobile simulators and emulators. It returns both Android and iOS devices.

No parameters. Call it with no arguments.

mobile_list_appsList all the installed apps on the device1 params

List all the installed apps on the device

Parameters* required
device*string
The device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
mobile_launch_appLaunch an app on mobile device. Use this to open a specific app. You can find the package name of the app by calling list_apps_on_device.3 params

Launch an app on mobile device. Use this to open a specific app. You can find the package name of the app by calling list_apps_on_device.

Parameters* required
device*string
The device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
localestring
Comma-separated BCP 47 locale tags to launch the app with (e.g., fr-FR,en-GB)
packageName*string
The package name of the app to launch
mobile_terminate_appStop and terminate an app on mobile device2 params

Stop and terminate an app on mobile device

Parameters* required
device*string
The device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
packageName*string
The package name of the app to terminate
mobile_install_appInstall an app on mobile device2 params

Install an app on mobile device

Parameters* required
device*string
The device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
path*string
The path to the app file to install. For iOS simulators, provide a .zip file or a .app directory. For Android provide an .apk file. For iOS real devices provide an .ipa file
mobile_uninstall_appUninstall an app from mobile device2 params

Uninstall an app from mobile device

Parameters* required
bundle_id*string
Bundle identifier (iOS) or package name (Android) of the app to be uninstalled
device*string
The device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
mobile_get_screen_sizeGet the screen size of the mobile device in pixels1 params

Get the screen size of the mobile device in pixels

Parameters* required
device*string
The device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
mobile_click_on_screen_at_coordinatesClick on the screen at given x,y coordinates. If clicking on an element, use the list_elements_on_screen tool to find the coordinates.3 params

Click on the screen at given x,y coordinates. If clicking on an element, use the list_elements_on_screen tool to find the coordinates.

Parameters* required
device*string
The device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
x*number
The x coordinate to click on the screen, in pixels
y*number
The y coordinate to click on the screen, in pixels
mobile_double_tap_on_screenDouble-tap on the screen at given x,y coordinates.3 params

Double-tap on the screen at given x,y coordinates.

Parameters* required
device*string
The device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
x*number
The x coordinate to double-tap, in pixels
y*number
The y coordinate to double-tap, in pixels
mobile_long_press_on_screen_at_coordinatesLong press on the screen at given x,y coordinates. If long pressing on an element, use the list_elements_on_screen tool to find the coordinates.4 params

Long press on the screen at given x,y coordinates. If long pressing on an element, use the list_elements_on_screen tool to find the coordinates.

Parameters* required
device*string
The device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
durationnumber
Duration of the long press in milliseconds. Defaults to 500ms.
x*number
The x coordinate to long press on the screen, in pixels
y*number
The y coordinate to long press on the screen, in pixels
mobile_list_elements_on_screenList elements on screen and their coordinates, with display text or accessibility label. Do not cache this result.1 params

List elements on screen and their coordinates, with display text or accessibility label. Do not cache this result.

Parameters* required
device*string
The device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
mobile_press_buttonPress a button on device2 params

Press a button on device

Parameters* required
button*string
The button to press. Supported buttons: BACK (android only), HOME, VOLUME_UP, VOLUME_DOWN, ENTER, DPAD_CENTER (android tv only), DPAD_UP (android tv only), DPAD_DOWN (android tv only), DPAD_LEFT (a...
device*string
The device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
mobile_open_urlOpen a URL in browser on device2 params

Open a URL in browser on device

Parameters* required
device*string
The device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
url*string
The URL to open
mobile_swipe_on_screenSwipe on the screen5 params

Swipe on the screen

Parameters* required
device*string
The device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
direction*string
The direction to swipeone of up · down · left · right
distancenumber
The distance to swipe in pixels. Defaults to 400 pixels for iOS or 30% of screen dimension for Android
xnumber
The x coordinate to start the swipe from, in pixels. If not provided, uses center of screen
ynumber
The y coordinate to start the swipe from, in pixels. If not provided, uses center of screen
mobile_type_keysType text into the focused element3 params

Type text into the focused element

Parameters* required
device*string
The device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
submit*boolean
Whether to submit the text. If true, the text will be submitted as if the user pressed the enter key.
text*string
The text to type
mobile_save_screenshotSave a screenshot of the mobile device to a file2 params

Save a screenshot of the mobile device to a file

Parameters* required
device*string
The device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
saveTo*string
The path to save the screenshot to. Filename must end with .png, .jpg, or .jpeg
mobile_take_screenshotTake a screenshot of the mobile device. Use this to understand what's on screen, if you need to press an element that is available through view hierarchy then you must list elements on screen instead. Do not cache this result.1 params

Take a screenshot of the mobile device. Use this to understand what's on screen, if you need to press an element that is available through view hierarchy then you must list elements on screen instead. Do not cache this result.

Parameters* required
device*string
The device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
mobile_set_orientationChange the screen orientation of the device2 params

Change the screen orientation of the device

Parameters* required
device*string
The device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
orientation*string
The desired orientationone of portrait · landscape
mobile_get_orientationGet the current screen orientation of the device1 params

Get the current screen orientation of the device

Parameters* required
device*string
The device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
mobile_start_screen_recordingStart recording the screen of a mobile device. The recording runs in the background until stopped with mobile_stop_screen_recording. Returns the path where the recording will be saved.3 params

Start recording the screen of a mobile device. The recording runs in the background until stopped with mobile_stop_screen_recording. Returns the path where the recording will be saved.

Parameters* required
device*string
The device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
outputstring
The file path to save the recording to. Filename must end with .mp4. If not provided, a temporary path will be used.
timeLimitnumber
Maximum recording duration in seconds. The recording will stop automatically after this time.
mobile_stop_screen_recordingStop an active screen recording on a mobile device. Returns the file path, size, and approximate duration of the recording.1 params

Stop an active screen recording on a mobile device. Returns the file path, size, and approximate duration of the recording.

Parameters* required
device*string
The device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
mobile_list_crashesList crash reports available on the device1 params

List crash reports available on the device

Parameters* required
device*string
The device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
mobile_get_crashGet the full content of a crash report by its ID. Use mobile_list_crashes to find available crash IDs.2 params

Get the full content of a crash report by its ID. Use mobile_list_crashes to find available crash IDs.

Parameters* required
device*string
The device identifier to use. Use mobile_list_available_devices to find which devices are available to you.
id*string
The crash report ID to retrieve

Sponsors

Readme

Mobile Next - MCP server for Mobile Development and Automation | iOS, Android, Simulator, Emulator, and Real Devices

English | 日本語 | 简体中文

This is an MCP Server that enables scalable mobile automation, development through a platform-agnostic interface, eliminating the need for distinct iOS or Android knowledge. You can run it on emulators, simulators, and real devices (iOS and Android).

This server allows Agents and LLMs to interact with native iOS/Android applications and devices through structured accessibility snapshots or coordinate-based taps based on screenshots.

Works with Claude Code, Codex, Gemini, GitHub Copilot, Antigravity — or any MCP-compatible client.

Run it against devices on your own machine, or against real iOS and Android devices in the cloud with Mobile Next Cloud — same tools, no local setup.


View the full README on GitHub

Details

Repository
github.com/mobile-next/mobile-mcp
Categories
Automation & Workflows, Mobile Development
Package
@mobilenext/mobile-mcp
Transport
STDIO
Registry
MCP registry, active
Tools verified
Jun 10, 2026

Related Automation & Workflows MCP servers

View all
1homeassistant-ai avatarHa Mcphomeassistant-ai/ha-mcpConfigure and automate Home Assistant with Claude, ChatGPT, and other AI assistants.0stars
2tolgee avatarTolgeetolgee/tolgee-platformYour app's translations in Tolgee: search keys, create translations, trigger machine translation0stars
3browserbase avatarBrowserbasehq Mcp Browserbasebrowserbase/mcp-server-browserbaseProvides cloud browser automation capabilities using Stagehand and Browserbase, enabling LLMs to i…3.4Kstars
4sbroenne avatarMCP Server for Excelsbroenne/mcp-server-excelExcel automation for AI - Sheets, Power Query, DAX, VBA, Tables, Ranges and more. Windows only.887stars
5chir24 avatarChir24 Unreal Mcpchir24/unreal_mcpControl Unreal Engine to browse assets, import content, and manage levels and sequences. Automate…699stars
6domdomegg avatarComputer Usedomdomegg/computer-use-mcpControl your computer with screenshots, mouse, and keyboard automation.300stars