Server facts
Mobile Next Mobile MCP
Project
- Author
- mobile-next
- Repository
- github.com/mobile-next/mobile-mcp
- Website
- mobilenext.ai
- License
- Apache-2.0
- Category
- Mobile & Desktop Automation
Tech
- Runtime / language
- node
- Transports
- stdio
- Remote available
- No
- Authentication
- Not specified
Activity
- GitHub stars
- 9,671
- Last commit
- Data as of
Tags
- Accessibility
- Android
- Device Automation
- Ios
- Mobile Testing
Overview
Mobile Next Mobile MCP provides a shared interface for automating native iOS and Android applications. It supports real devices alongside simulators and emulators, using accessibility trees to identify screen elements and coordinate-based interaction when that structured information is unavailable. Agents can inspect visible content, enter text, navigate, control app lifecycles, and capture screenshots. The supplied tool data extends this with screen recording and crash-report retrieval. This combination suits mobile testing, form entry, and multi-step app journeys without requiring the agent to use a different tool vocabulary for each platform.
The standard configuration launches an npm package over stdio, with examples for numerous AI editors and command-line clients. A listening mode is also documented, and bearer authentication can be enabled through an environment variable. Prerequisites include Node.js 22 or newer and the platform tools and SDKs appropriate to the devices being controlled. iOS interaction uses native accessibility and WebDriverAgent, while Android relies on ADB and UI Automator. Anonymous usage telemetry is enabled but has a documented opt-out. Local device discovery is distinct from the remote cloud fleet described in the tool data: cloud devices require authentication and reservation, are billed shared resources, and should only be allocated after an explicit user request. Releasing a cloud reservation discards the session's device changes.
Install & configure
Requirements
- Node.js 22 or newer
- An MCP-capable client or agent
- Configured mobile platform SDKs and tools
- Xcode command-line tools for iOS workflows
- Android Platform Tools for Android workflows
- A connected device or running simulator/emulator
npx -y @mobilenext/mobile-mcp@latestStdio is the default. A --listen mode is documented with optional MOBILEMCP_AUTH bearer authentication. Set MOBILEMCP_DISABLE_TELEMETRY=1 to opt out of anonymous usage telemetry.
Examples are translated from the published configuration. Supply your own credentials and verify requirements in the upstream README. Remote connectors are shown only where a supported configuration format is known.
Config file · macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Use Settings → Developer → Edit Config when available. Do not assume a Linux configuration path; check the client documentation for your platform. Remote servers use the app’s connector flow when supported, not the local stdio file shown here. Merge this example with existing settings; do not overwrite unrelated servers.
{
"mcpServers": {
"mobile-mcp": {
"command": "npx",
"args": [
"-y",
"@mobilenext/mobile-mcp@latest"
],
"env": {}
}
}
}Config file · Project: .cursor/mcp.json
User: ~/.cursor/mcp.json
The project path is relative to the workspace root. The tilde denotes your user home directory. Use Cursor’s MCP settings to confirm which configuration and scope your installed version is reading. Merge this example with existing settings; do not overwrite unrelated servers.
{
"mcpServers": {
"mobile-mcp": {
"command": "npx",
"args": [
"-y",
"@mobilenext/mobile-mcp@latest"
],
"env": {}
}
}
}Config file · Workspace: .vscode/mcp.json
For user scope, use the “MCP: Open User Configuration” command if available. Do not guess a user configuration path across operating systems, profiles, containers, or remote workspaces; check the client documentation. Merge this example with existing settings; do not overwrite unrelated servers.
{
"servers": {
"mobile-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@mobilenext/mobile-mcp@latest"
],
"env": {}
}
}
}Config file · macOS/Linux: ~/.codeium/windsurf/mcp_config.json
Windows: %USERPROFILE%\.codeium\windsurf\mcp_config.json
Open the MCP configuration through Windsurf’s settings when possible to confirm the active file. Paths can differ in managed or future releases; check the client documentation if this location is not present. Merge this example with existing settings; do not overwrite unrelated servers.
{
"mcpServers": {
"mobile-mcp": {
"command": "npx",
"args": [
"-y",
"@mobilenext/mobile-mcp@latest"
],
"env": {}
}
}
}Config file · Project scope: .mcp.json at the repository root
The project file uses mcpServers. For user scope, use claude mcp add --scope user rather than assuming .mcp.json in your home directory is the user configuration. Check the client documentation for managed settings and storage details. Merge this example with existing settings; do not overwrite unrelated servers.
{
"mcpServers": {
"mobile-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@mobilenext/mobile-mcp@latest"
],
"env": {}
}
}
}Examples are translated from the published configuration. Supply your own credentials and verify requirements in the upstream README. Remote connectors are shown only where a supported configuration format is known.
Tools
Source: repository tool metadata. Tool descriptions are a documented snapshot, not a live capability check.
| Tool | What it does |
|---|---|
| mobile_list_available_devices | Find locally connected phones, tablets, simulators, and emulators. |
| mobile_login_to_cloud_provider | Begin authentication with the remote device cloud provider. |
| mobile_list_remote_devices | Browse device models available in the cloud fleet. |
| mobile_allocate_remote_device | Reserve a billed cloud device for exclusive use after explicit user approval. |
| mobile_release_remote_device | Return a reserved cloud device and discard changes made during the session. |
| mobile_list_apps | Enumerate applications installed on a device. |
| mobile_launch_app | Start an application on the selected device. |
| mobile_terminate_app | Stop a running mobile application. |
| mobile_install_app | Add an application to a device. |
| mobile_uninstall_app | Remove an application from a device. |
| mobile_get_screen_size | Read display dimensions in pixels. |
| mobile_click_on_screen_at_coordinates | Tap the display at an x/y location. |
| mobile_double_tap_on_screen | Perform a double tap at screen coordinates. |
| mobile_long_press_on_screen_at_coordinates | Hold a press at a chosen screen location. |
| mobile_list_elements_on_screen | Inspect current UI elements, labels, and coordinates without caching results. |
| mobile_press_button | Trigger a device button action. |
| mobile_open_url | Navigate to a URL in the device browser. |
| mobile_swipe_on_screen | Perform a swipe gesture. |
| mobile_type_keys | Enter text in the currently focused field. |
| mobile_save_screenshot | Write a device screenshot to a file. |
| mobile_take_screenshot | Capture the current screen for visual inspection without caching it. |
| mobile_set_orientation | Switch the device screen orientation. |
| mobile_get_orientation | Read the device screen orientation. |
| mobile_start_screen_recording | Begin background screen capture and report the output path. |
| mobile_stop_screen_recording | End screen capture and report its path, size, and approximate duration. |
| mobile_list_crashes | Find crash reports stored on the device. |
| mobile_get_crash | Read a crash report using an identifier from the crash list. |
Names, permissions, and defaults can change. Check the current upstream documentation before granting access.
Use cases
- Test native app flows across Android and iOS.
- Automate form entry and navigation on real or simulated devices.
- Capture screenshots, screen recordings, and crash information.
- Extract structured information from visible app screens.
Strengths
- Uses a unified tool interface across iOS and Android.
- Prefers structured accessibility information over image-only interaction.
- Supports real devices, simulators, and emulators.
Limitations
- Requires platform SDKs, tools, and correctly configured devices.
- Anonymous telemetry is collected unless disabled.
- Remote cloud reservations are billed, and releasing them loses device changes.
Frequently asked questions
Independent listing, not an affiliation or security review. Grant the least access needed and verify the upstream instructions before running code.