← Back to directory
M

Mobile MCP

Community
Cross-platform mobile automation and development for iOS, Android, simulators, emulators, and real devices
GitHub source repository ↗
★ 6.0k Stars Category · Dev Tools Very popular Source revision f0564b66d232
39FMRS · D
Reliability
3/20
Security and permissions
5/20
Maintenance
8/20
Documentation
12/20
Setup experience
11/20

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.

Read the FMRS scoring method →

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.

Tools

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

Setup

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"]
    }
  }
}

Fit and risk

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

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

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 DesktopFull support
Claude CodeFull support
CodexFull support
Gemini CLIFull support
GitHub CopilotFull support
CursorFull support
WindsurfFull support
AmpFull support
Antigravity 2Full support
ClineFull support
GooseFull support
KiroFull support
opencodeFull support