MCP Directory

Mobile MCP

Platform-agnostic mobile automation for iOS & Android — simulators, emulators, and real devices.

Unverified
stdio (local)
No auth
TypeScript

Add to your client

Copy the config for your MCP client and paste it into its config file.

Install / run
npx -y @mobilenext/mobile-mcp@latest

Paste into ~/Library/Application Support/Claude/claude_desktop_config.json

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

Step-by-step guides: Add to Claude Desktop · Add to Cursor · Add to Windsurf

Before you start

  • Xcode command line tools (for iOS)
  • Android Platform Tools / Android SDK (for Android)
  • Node.js v22+
  • An MCP-supported model or agent (e.g. Claude, OpenAI Agent SDK, Copilot Studio)
  • A connected iOS/Android real device, or a running iOS Simulator / Android Emulator

About Mobile MCP

An MCP server for scalable mobile automation and development across iOS and Android. It exposes a unified set of tools for device management, app management, screen interaction, and input/navigation, using native accessibility snapshots where possible and screenshot-based coordinates as a fallback. Suitable for native app testing, data-entry flows, multi-step LLM-driven journeys, and structured on-screen data extraction.

Tools & capabilities (19)

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_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.

When to use it

  • 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 and data extraction

Security notes

The standard stdio configuration requires no authentication. When running in SSE server mode (--listen), set the MOBILEMCP_AUTH environment variable to require a Bearer token (Authorization: Bearer <token>) on all requests. The server collects anonymous usage telemetry via PostHog; set MOBILEMCP_DISABLE_TELEMETRY=1 to disable it. The server can install/uninstall apps and fully control connected devices, simulators, and emulators, so only run it against devices you trust.

Mobile MCP FAQ

Which platforms and device types are supported?

iOS real devices and Simulators, and Android real devices and Emulators. iOS uses native accessibility and WebDriverAgent; Android uses ADB and UI Automator.

Does it require a computer vision model?

No. It uses native accessibility trees for most interactions and only falls back to screenshot-based coordinate analysis when accessibility data or view-hierarchy coordinates are unavailable.

How do I run it as an HTTP/SSE server instead of stdio?

By default it runs over stdio. Start an SSE server with `npx @mobilenext/mobile-mcp@latest --listen 3000` (or `--listen 0.0.0.0:3000`), then point your MCP client at http://<host>:3000/mcp. Set MOBILEMCP_AUTH to require a Bearer token.

Can I disable telemetry?

Yes. Set the MOBILEMCP_DISABLE_TELEMETRY=1 environment variable to disable the anonymous PostHog usage telemetry.

Alternatives to Mobile MCP

Compare all alternatives →

Microsoft's official browser-automation MCP using Playwright's accessibility tree (no vision model).

Featured
Verified
stdio (local)
No auth
TypeScript
12 tools
Updated 13 days agoRepo

Up-to-date, version-specific library documentation injected into your coding agent.

Verified
stdio (local)
API key
TypeScript
2 tools
Updated 17 days agoRepo

LSP-powered coding agent toolkit: semantic symbol search, references and structural edits.

Verified
stdio (local)
No auth
Python
11 tools
Updated 15 days agoRepo