← Back to directory
M

Mobile MCP

Community
Cross-platform mobile automation and development for iOS, Android, simulators, emulators, and real devices
Category
Dev Tools #362 of 438
Stars
★ 9.0k Very popular
Transport
stdio (local process) · SSE
Runtime
Node.js 20+
Credentials
No credential needed
License
Apache-2.0
Last commit
Tools
23
39FMRS · D

This server provides powerful integration for mobile automation, supporting multiple platforms and clients. Its accessibility-first approach is efficient and avoids vision model costs. However, it is a community-driven project and users assume risk. Documentation is thorough and community active. Suitable for development teams looking to unify mobile automation.

Strongest · Documentation 12/20 Weakest · Reliability 3/20

Reliability
3/20
Security and permissions
5/20
Maintenance
8/20
Documentation
12/20
Setup experience
11/20
Why each score
Reliability 3/20
Evidence: README lists 20+ tools, npx launch, stdio/SSE modes, manifest points to npm package @mobilenext/mobile-mcp. However no source, CI workflows, or committed tests are provided, so init handshake and tool-list/behavior consistency cannot be verified. server.json has {{VERSION}} template placeholders and no error-handling/edge-case evidence exists. Missing evidence is treated as a deduction, so score is low.
Security and permissions 5/20
Evidence: README discloses PostHog anonymous telemetry on by default (disable via env var), SSE auth via MOBILEMCP_AUTH, and unsafe URL schemes blocked by default. No credential theft or real tokens in install examples, so no red line. However, device-control tools can install/uninstall apps, type, tap, record screen, open URLs, with no least-privilege, confirmation, or data-boundary description; telemetry sends data third-party by default and no source audit is possible. Deducted accordingly, score 5.
Maintenance 8/20
Evidence: repo is not archived, Apache-2.0 license, README includes contributing guide, code of conduct, roadmap, and wiki. No commit/release history, dependency update records, security-response channel, or maintainer responsiveness evidence is supplied. Stars are not scored. Moderate-low score 8.
Documentation 12/20
Evidence: README covers multi-client configs (Claude Code, Cursor, Copilot, etc.), env vars, tool list, prompt examples, SSE/auth, prerequisites, and Wiki links. But it lacks formal parameter schemas (inputs/outputs) per tool, error codes and troubleshooting detail, rate/cost/limits, and verifiable log examples. Score 12.
Setup experience 11/20
Evidence: Standard stdio npx config and snippets for many mainstream clients are provided, prerequisites are explicit, and SSE mode has run commands. But no CI/test execution evidence exists, so static calibration caps setup at 15; iOS real-device setup needs go-ios, WebDriverAgent, and tunnel (complex), and manifest version is a placeholder. Score 11.

Static review · not runListed 2026-08-07

Read the FMRS scoring method →

Fit and risk

What it can accessRuns commands or codeUses the network

Best for

  • Developers or test teams needing unified API across iOS and Android
  • Those looking to reduce dependency on platform-specific knowledge like XCUITest or Espresso
  • Scenarios requiring structured, deterministic output (accessibility tree based) rather than screenshot-only
  • Automation on local or cloud emulators/simulators

Not for

  • Use cases requiring visual understanding (e.g., image recognition) or complex image verification (server is accessibility-first, using screenshots only when needed)
  • General desktop automation without mobile device interaction
  • Teams requiring official support or enterprise guarantees (third-party open-source project)
  • Environments unable to meet prerequisites (Xcode, Android SDK, Node.js v20+)

Required permissions

  • Access to local filesystem to install apps and save screenshots/videos
  • Network access to install npm packages and possibly cloud services
  • USB debugging permissions or go-ios/WebDriverAgent setup for real devices
  • Port availability and optional auth token for SSE mode
  • May send anonymous usage telemetry (can be disabled via environment variable)

Risks and side effects

  • Automated mobile actions may cause unintended operations or data loss (e.g., sending messages, purchases)
  • Credentials provided (e.g., email) could be stored or misused
  • URL opening feature may be used to open non-standard schemes (blocked by default, requires explicit allow)
  • SSE server without authorization may be accessed by unauthorized parties
  • Dependency on unstable third-party tools (e.g., go-ios, WebDriverAgent)
  • Telemetry may include sensitive usage patterns

Setup

Before you start

Runtime:Node.js 20+

MOBILEMCP_AUTH optionalsecret Sets a Bearer token required on the SSE server mode; all requests must then include an Authorization: Bearer <token> header. Choose the value yourself.
Other optional settings (3)
MOBILEMCP_DISABLE_TELEMETRY optional Set to 1 to disable anonymous usage telemetry collected via PostHog.
MOBILEMCP_ALLOW_UNSAFE_URLS optional Set to 1 to allow mobile_open_url to open non-standard URL schemes (blocked by default).
MOBILEMCP_LEGACY_ROBOT optional Set to 1 to use the legacy platform-specific robots for Android devices and physical iOS devices; iOS simulators still use mobilecli.

Run the server with npx, supporting stdio and SSE modes. SSE mode uses --listen flag with optional port and host binding. Bearer token authorization can be configured via MOBILEMCP_AUTH environment variable. Works with Claude Code, Codex, Gemini CLI, GitHub Copilot, Cursor, Windsurf, and more. See client-specific docs for details.

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

Shown for Claude Desktop. Other clients may use a different file or key (VS Code uses "servers") — the configurator below converts it.

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

Goes in your project's .vscode/mcp.json (VS Code uses a "servers" key).

Terminal
claude mcp add mobile-mcp -- npx -y @mobilenext/mobile-mcp@latest

Run it in a terminal; replace any <…> placeholders with your own values first.

Check that it works

After configuring the server, ask your agent to "list available devices". If it returns your running simulators, emulators, or connected devices, the server is wired up correctly.

Troubleshooting

  1. Ensure Xcode command line tools, Android Platform Tools, and Node.js v20+ are installed
  2. Run 'mobile_list_available_devices' to verify - if empty, ensure a simulator or emulator is running
  3. For iOS real devices, ensure go-ios, WebDriverAgent are installed and tunnel established
  4. Check environment variables (e.g., MOBILEMCP_AUTH, MOBILEMCP_DISABLE_TELEMETRY) settings
  5. If using SSE mode, verify port binding and URL correctness

Things to try

Once connected, you can ask your AI assistant things like:

  • List all available devices including simulators, emulators, and real devices
  • Launch the Settings app on the device, take a screenshot, and list the UI elements on screen
  • Open https://example.com on the device and switch the orientation to landscape
  • Install this APK on the device, launch it, and start recording the screen

Tools 23

mobile_list_available_devices read-only
List all available devices (simulators, emulators, and real devices)
mobile_get_screen_size read-only
Get the screen size of the mobile device in pixels
mobile_get_orientation read-only
Get the current screen orientation of the device
mobile_set_orientation writes
Change the screen orientation (portrait/landscape)
mobile_list_apps read-only
List all installed apps on the device
mobile_launch_app writes
Launch an app using its package name
mobile_terminate_app writes
Stop and terminate a running app
mobile_install_app writes
Install an app from file (.apk, .ipa, .app, .zip)
Show 15 more tools
mobile_uninstall_app destructive
Uninstall an app using bundle ID or package name
mobile_take_screenshot read-only
Take a screenshot to understand what's on screen
mobile_save_screenshot writes
Save a screenshot to a file
mobile_list_elements_on_screen read-only
List UI elements with their coordinates and properties
mobile_click_on_screen_at_coordinates writes
Click at specific x,y coordinates
mobile_double_tap_on_screen writes
Double-tap at specific coordinates
mobile_long_press_on_screen_at_coordinates writes
Long press at specific coordinates
mobile_swipe_on_screen writes
Swipe in any direction (up, down, left, right)
mobile_start_screen_recording writes
Start recording the device screen to a video file
mobile_stop_screen_recording writes
Stop the active screen recording and save the video
mobile_type_keys writes
Type text into focused elements with optional submit
mobile_press_button writes
Press device buttons (HOME, BACK, VOLUME_UP/DOWN, ENTER, etc.)
mobile_open_url writes
Open URLs in the device browser
mobile_list_crashes read-only
List crash reports available on the device
mobile_get_crash read-only
Get the full content of a crash report by its ID

Use cases

Native app automation (iOS and Android) for testing or data-entry scenarios
Scripted flows and form interactions without manually controlling simulators/emulators or real devices
Automating multi-step user journeys driven by an LLM
General-purpose mobile application interaction for agent-based frameworks
Agent-to-agent communication for mobile automation use cases, data extraction

Supported clients

Claude Desktop
Claude Code
Codex
Gemini CLI
GitHub Copilot
Cursor
Windsurf
Amp
Antigravity 2
Cline
Goose
Kiro
OpenCode

Listed from the project's documentation, not tested by this site.

Overview

This is a Model Context Protocol (MCP) server that enables scalable mobile automation and development through a platform-agnostic interface, eliminating the need for distinct iOS or Android knowledge. It runs on simulators, emulators, and real devices (iOS and Android). The server allows agents and LLMs to interact with native iOS/Android apps and devices through structured accessibility snapshots or coordinate-based taps based on screenshots. It uses stdio transport by default and supports SSE mode via the --listen flag.

Similar servers

Context7 80 · B

Upstash's official server providing up-to-date third-party library docs for AI coding assistants

★ 62.9k · Tools 2 Compare with this →

Source revision e0c215b28772 Data synced 2026-10-12 Read the FMRS scoring method