mobile-mcp README

The project's README from github.com/mobile-next/mobile-mcp. As one markdown file: README.md.

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.

Mobile Next Stars npm Install in VS Code wiki join on Slack

https://github.com/user-attachments/assets/bb084777-beb3-4930-ae6f-8d3fe694ddde

mobile-mcp

Main use cases

How we help to scale mobile automation:

Main Features

🎯 Platform Support

Target Supported Setup
iOS Simulator ✅ Xcode + a booted simulator (xcrun simctl)
iOS Real Device ✅ Device connected over USB and trusted
Android Emulator ✅ Android SDK + running emulator (adb)
Android Real Device ✅ adb + USB debugging enabled & authorized

🔧 Available MCP Tools

Device Management

Remote Devices (Mobile Next Cloud)

App Management

Screen Interaction

Input & Navigation

Logs & Crash Reports

🏗️ Mobile MCP Architecture

mobile-mcp

📚 Wiki page

More details in our wiki page for setup, configuration and debugging related questions.

Prerequisites

What you will need to connect MCP with your agent and mobile devices:

Installation and configuration

Standard config works in most of the tools:

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

Add via the Amp VS Code extension settings screen or by updating your settings.json file:

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

Amp CLI:

Run the following command in your terminal:

amp mcp add mobile-mcp -- npx @mobilenext/mobile-mcp@latest
Antigravity 2

Antigravity doesn't have a CLI command to add MCP servers, so add it manually. Edit ~/.gemini/config/mcp_config.json and add:

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

To setup Cline, just add the json above to your MCP settings file.

More in our wiki

Claude Code

Use the Claude Code CLI to add the Mobile MCP server:

claude mcp add mobile-mcp -- npx -y @mobilenext/mobile-mcp@latest
Claude Desktop

Follow the MCP install guide, use json configuration above.

Codex

Use the Codex CLI to add the Mobile MCP server:

codex mcp add mobile-mcp npx "@mobilenext/mobile-mcp@latest"

Alternatively, create or edit the configuration file ~/.codex/config.toml and add:

[mcp_servers.mobile-mcp]
command = "npx"
args = ["@mobilenext/mobile-mcp@latest"]

For more information, see the Codex MCP documentation.

Copilot

Use the Copilot CLI to interactively add the Mobile MCP server:

/mcp add

You can edit the configuration file ~/.copilot/mcp-config.json and add:

{
  "mcpServers": {
    "mobile-mcp": {
      "type": "local",
      "command": "npx",
      "tools": [
        "*"
      ],
      "args": [
        "@mobilenext/mobile-mcp@latest"
      ]
    }
  }
}

For more information, see the Copilot CLI documentation.

Cursor

Click the button to install:

Install in Cursor

Or install manually:

Go to Cursor Settings -> MCP -> Add new MCP Server. Name to your liking, use command type with the command npx -y @mobilenext/mobile-mcp@latest. You can also verify config or add command like arguments via clicking Edit.

Gemini CLI

Use the Gemini CLI to add the Mobile MCP server:

gemini mcp add mobile-mcp npx -y @mobilenext/mobile-mcp@latest
Goose

Click the button to install:

Install in Goose

Or install manually:

Go to Advanced settings -> Extensions -> Add custom extension. Name to your liking, use type STDIO, and set the command to npx -y @mobilenext/mobile-mcp@latest. Click "Add Extension".

Kiro

Follow the MCP Servers documentation. For example in .kiro/settings/mcp.json:

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

Follow the MCP Servers documentation. For example in ~/.config/opencode/opencode.json:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "mobile-mcp": {
      "type": "local",
      "command": [
        "npx",
        "@mobilenext/mobile-mcp@latest"
      ],
      "enabled": true
    }
  }
}
Windsurf

Open Windsurf settings, navigate to MCP servers, and add a new server using the command type with:

npx @mobilenext/mobile-mcp@latest

Or add the standard config under mcpServers in your settings as shown above.

Read more in our wiki! 🚀

✅ Verify it works

Once the server is configured, ask your agent to list devices:

list available devices

You should get back your running simulators, emulators, and connected devices. If you do, Mobile MCP is wired up correctly. If the list is empty, make sure a simulator or emulator is running (see Prerequisites) — for more help, check the wiki.

☁️ Scale up, use a cloud device

Want to scale to hundreds of devices? Use Mobile MCP in your CI/CD pipeline?

In your Agent, prompt:

log in to mobile next cloud and then show me which remote devices are available to me

Streamable HTTP Server Mode

By default, Mobile MCP runs over stdio. To start a Streamable HTTP server instead, use the --listen flag:

npx @mobilenext/mobile-mcp@latest --listen 3000

This binds to localhost:3000. To bind to a specific interface:

npx @mobilenext/mobile-mcp@latest --listen 0.0.0.0:3000

Then configure your MCP client to connect to http://<host>:3000/mcp (or https://…/mcp behind TLS). The endpoint accepts Streamable HTTP (POST on /mcp); remote mode is stateless (no session affinity required), which works well with Smithery and other horizontal hosts.

Migration note: --listen previously served the deprecated HTTP+SSE transport on /mcp. Clients must use Streamable HTTP against http(s)://host:port/mcp. The old pure-SSE flow on /mcp is no longer available.

When binding to localhost, Host-header DNS rebinding protection is enabled automatically.

Authorization

To require Bearer token authorization on the HTTP server, set the MOBILEMCP_AUTH environment variable:

MOBILEMCP_AUTH=my-secret-token npx @mobilenext/mobile-mcp@latest --listen 3000

When set, all requests must include the header Authorization: Bearer my-secret-token. When unset, the server accepts unauthenticated connections and logs a warning.

🛠️ How to Use

After adding the MCP server to your IDE/Client, you can instruct your AI assistant to use the available tools. For example, in Cursor's agent mode, you could use the prompts below to quickly validate, test and iterate on UI interactions, read information from screen, go through complex workflows. Be descriptive, straight to the point.

✨ Example Prompts

Workflows

You can specify detailed workflows in a single prompt, verify business logic, setup automations. You can go crazy:

Search for a video, comment, like and share it.

Find the video called " Beginner Recipe for Tonkotsu Ramen" by Way of
Ramen, click on like video, after liking write a comment " this was
delicious, will make it next Friday", share the video with the first
contact in your whatsapp list.

Download a successful step counter app, register, setup workout and 5-star the app

Find and Download a free "Pomodoro" app that has more than 1k stars.
Launch the app, register with my email, after registration find how to
start a pomodoro timer. When the pomodoro timer started, go back to the
app store and rate the app 5 stars, and leave a comment how useful the
app is.

Search in Substack, read, highlight, comment and save an article

Open Substack website, search for "Latest trends in AI automation 2025",
open the first article, highlight the section titled "Emerging AI trends",
and save article to reading list for later review, comment a random
paragraph summary.

Reserve a workout class, set timer

Open ClassPass, search for yoga classes tomorrow morning within 2 miles,
book the highest-rated class at 7 AM, confirm reservation,
setup a timer for the booked slot in the phone

Find a local event, setup calendar event

Open Eventbrite, search for AI startup meetup events happening this
weekend in "Austin, TX", select the most popular one, register and RSVP
yes to the event, setup a calendar event as a reminder.

Check weather forecast and send a Whatsapp/Telegram/Slack message

Open Weather app, check tomorrow's weather forecast for "Berlin", and
send the summary via Whatsapp/Telegram/Slack to contact "Lauren Trown",
thumbs up their response.
Open Zoom app, schedule a meeting titled "AI Hackathon" for tomorrow at
10AM with a duration of 1 hour, copy the invitation link, and send it via
Gmail to contacts "[email protected]".

Running & configuration

Environment variables

Variable Description Example
MOBILEMCP_AUTH Require a Bearer token on the Streamable HTTP server (--listen) — every request must then send Authorization: Bearer <token>. MOBILEMCP_AUTH=my-secret-token
MOBILEMCP_DISABLE_TELEMETRY Disable anonymous usage telemetry. MOBILEMCP_DISABLE_TELEMETRY=1
MOBILEMCP_ALLOW_UNSAFE_URLS Allow mobile_open_url to open non-standard URL schemes (blocked by default). MOBILEMCP_ALLOW_UNSAFE_URLS=1
MOBILEMCP_LEGACY_ROBOT Use the legacy platform-specific robots for Android devices and physical iOS devices. iOS simulators continue to use mobilecli. MOBILEMCP_LEGACY_ROBOT=1

Simulators, Emulators, and Real Devices

When launched, Mobile MCP can connect to:

Make sure you have your mobile platform SDKs (Xcode, Android SDK) installed and configured properly before running Mobile Next Mobile MCP.

Telemetry

Mobile MCP collects anonymous usage telemetry via PostHog and Scarf. To disable it, set the MOBILEMCP_DISABLE_TELEMETRY environment variable:

MOBILEMCP_DISABLE_TELEMETRY=1 npx @mobilenext/mobile-mcp@latest

For json configurations:

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

Running in "headless" mode on Simulators/Emulators

When you do not have a real device connected to your machine, you can run Mobile MCP with an emulator or simulator in the background.

For example, on Android:

  1. Start an emulator (avdmanager / emulator command).
  2. Run Mobile MCP with the desired flags

On iOS, you'll need Xcode and to run the Simulator before using Mobile MCP with that simulator instance.

🧩 Part of Mobile Next

Mobile MCP is one piece of a toolkit for driving real mobile devices:

🚀 Roadmap

We're continuously improving Mobile MCP. See what we're building next in ROADMAP.md — priorities are shaped heavily by community feedback, so tell us what you'd like to see.

🤝 Contributing

Contributions are welcome — code, docs, bug reports, and ideas.

Please also review our Code of Conduct.

Thanks to all contributors ❤️

We appreciate everyone who has helped improve this project.

Privacy Policy

Mobile MCP runs locally and communicates only with the devices you connect. See the Mobile Next privacy policy at https://mobilenext.ai/privacy for data collection, usage, retention, and contact information.

mobile-mcp (mobile-next/mobile-mcp)

Searching Database…

这是什么?Mobile MCP 是一个 Model Context Protocol 服务器,让 AI 智能体通过一套与平台无关的工具,在模拟器、仿真器或真机上自动化并抓取原生 iOS 和 Android 应用。
这是我要导入的库,还是一个独立的服务器?它是一个独立的 MCP 服务器进程(通过 npx 运行或作为 HTTP 服务运行),任何兼容 MCP 的智能体或 IDE 都可以连接它;它不是你要导入应用代码的库。
怎么把它接入我的 AI 工具?在你的客户端配置中添加一条指向“npx -y @mobilenext/mobile-mcp@latest”的 MCP 服务器条目(Claude Code、Cursor、Codex、Gemini CLI、Windsurf 等均有示例配置支持)。
我的机器上需要先装好什么?iOS 需要 Xcode 命令行工具和一个已启动的 iOS 模拟器;Android 需要 Android Platform Tools(adb)以及运行中的仿真器或已连接的设备;此外还需要 Node.js v20+。
它总是使用真实的 UI 树,还是会退回到截图?为了速度和成本,它主要基于原生无障碍树(accessibility tree)来驱动应用,但当无障碍数据不够用时,会退回到截图加点击坐标的方式。
哪些智能体和客户端可以连接它?任何兼容 MCP 的客户端都可以使用,并为 Claude Code、Claude Desktop、Codex、Cursor、Gemini CLI、GitHub Copilot、Windsurf、Goose、Cline、Kiro、opencode 和 Amp 提供了明确的配置说明。
没有实体手机也能运行设备自动化吗?可以——它可以对接本地模拟器/仿真器、USB 连接的真机,或者通过 Mobile Next Cloud 使用云端托管的真实 iOS/Android 设备,无需任何本地配置。
它会把使用数据偷偷传回去吗?会的,它默认通过 PostHog 和 Scarf 发送匿名使用遥测数据,但可以通过环境变量关闭。
智能体在设备上究竟能做什么?它可以点按、滑动、输入文字、安装/启动/终止应用、截屏、录制视频、读取设备日志和崩溃报告,并能在一次调用中批量执行这些操作。
我可以为远程 HTTP 服务器加上安全防护吗?可以,设置 MOBILEMCPAUTH 后,每个请求都必须携带 Bearer token;不设置的话,HTTP 服务器会接受未经身份验证的连接。
mobilewright 和 mobilecli 是什么?它们是 Mobile Next 的配套工具:mobilecli 是 Mobile MCP 所构建其上的底层设备 CLI,而 mobilewright 则把智能体驱动的探索变成可重复的确定性 Playwright 风格测试。
怎么验证它在正常工作?配置完成后,让你的智能体执行“list available devices”(列出可用设备)——它应该会返回你正在运行的模拟器、仿真器和已连接的设备。
Size
3.9 MB
Stars
9.7K
Age
1y
Commits · 90 Days