mobile-mcp
Mobile MCP: let AI agents drive your iOS and Android apps. MCP server for simulators, emulators and real devices. Works with Claude Code, Codex, Cursor and any MCP client.
- 评测生成时间(北京时间)
- 本报告引擎
- v3.17.3
- 当前引擎
- v3.17.3
规则版本一致,但报告只反映生成时的证据,不代表项目代码和安全状态始终不变。
进入后确认来源与额度,提交才会创建任务。
核对代码版本与送评文本摘要
仅记录实际送评的受限文本,不是完整仓库审计、安装结果或运行时安全保证。Stars、下载量和仓库元数据为采集时的独立信号,不属于此 commit 快照。
mobile-next/mobile-mcp @ 1025dd070fc934986dec9ea25458b0ab03bc54c7目录树:98789677c1013154179c3ac77482035fef7d01f6
README 来源:README.md
- README.md · 24990 字符
SHA-256: 6fdda2aee5001c4eafb5be1ad034c855ebb6d6eaef81f9bb3c7d3c3d74925afe - skills/mobile-automation/SKILL.md · 2341 字符
SHA-256: ed8e37bdea822fa1a195bf8cd3bdfd565fa6a32bffb937671ce6a3c4d69f8fd8 - Dockerfile · 649 字符
SHA-256: 440a824c529b47242e599c0480721d44b321baa8c081bf2696e06887c0243d6f - mcp.json · 209 字符
SHA-256: 13daa3d5cda0e35d44f4af914db20ef62ca35d18ff4df1e05c284dd6e0f5d5ac - package.json · 1946 字符
SHA-256: 697288c58c99946a30271e08dacf0409a808b366a200bd3e08b974faf647dbef - SECURITY.md · 1062 字符
SHA-256: 4b77ea3e712af45270b8de480bbb660ea64f9ca08b15f0e224c9214bbc4f0588
摘要对应送评 UTF-8 文本,可能为限额节选,不等于 Git blob SHA。来源由采集方提供,摘要本身不证明来源真实性。
综合采用结论
证据充分,整体质量与安全表现优秀
- 基础评测完成+25/25确定性评分与静态安全扫描已完成
- README 有效证据+25/2520,105 个去重后的有效字符
- 独立证据来源+20/206 类非重复证据,重复文件不叠加
- 仓库元数据+10/10已取得仓库状态与采用数据
- 活跃记录+5/5已取得最近提交时间
- AI 复核+15/15已完成结构化 AI 证据复核
本报告评了什么
综合分用于静态采用筛选,不是任务成功率,也不代表使用 Skill 后的能力提升。
- 静态检查范围
- 记录 6 个文件 · 31,197 字符
- 只检查采集到的受限文本与已知风险模式;未读取的脚本、依赖和运行环境不在结论内。
- AI 内容复核
- 已使用
- 复核送评文本的说明和设计,不是安装测试或实际任务执行。记录缺失时不推断已使用或未使用。
- 真实任务效果
- 本报告未提供实测证据
- 没有使用/不使用 Skill 的任务对照、重复运行或耗时与 token 成本结果。采用前仍需在隔离环境验证自己的任务。
脚本引用覆盖
脚本引用覆盖记录不可得;不推断没有引用或已经检查。
Agent 经 MCP 驱动移动设备
存在 Agent、MCP Server 与设备三方请求响应关系,且 SKILL.md 描述列设备、读元素、操作、验证的时序
左右滑动查看完整图示
- • SKILL.md Workflow:先 mobile_list_available_devices,再 mobile_list_elements_on_screen,操作后重新验证
- • README Available MCP Tools 列出设备管理与输入导航工具
- 未通过: Agent Skills 格式校验 0/1 个通过
- Quick start:npx @mobilenext/mobile-mcp@latest install 自动检测并配置 MCP 客户端
- Platform Support 表列出 iOS Simulator/Real Device 与 Android Emulator/Real Device 及 xcrun simctl、adb 前置条件
- Available MCP Tools 列出 mobile_list_available_devices、mobile_type_keys、mobile_press_button、mobile_open_url 等
- Privacy Policy 声明本地运行、仅与所连设备通信,但未给出权限与错误处理细节
- SKILL.md 工作流要求先列设备、优先 accessibility tree、每步后验证,但格式校验未通过
- 问题与用途描述
- 有效 README
- 安装或接入步骤
- 可执行示例
- 未发现已知高风险模式
- skills/mobile-automation/SKILL.md:metadata 如提供必须是字符串到字符串的映射
- 缺少限制、权限或边界
- 缺少错误处理或排障
- 缺少许可证信息
- 未说明权限申请、数据边界与安全默认值
移动 App UI 自动化测试、LLM 驱动的多步移动端任务、跨 iOS/Android 的统一设备控制、在模拟器/真机上复现与验证问题
需要严格权限与数据合规审计的生产环境、无本地设备且不愿使用云服务的离线场景
也有自己的公开项目?先看完证据,再用当前规则生成独立报告。
评测我的项目 →静态扫描不是安全保证,生产接入前仍应人工复核权限和数据边界。
- 01修复 skills/mobile-automation/SKILL.md:metadata 如提供必须是字符串到字符串的映射
- 02补充限制、权限或边界
- 03补充错误处理或排障
- 04补充许可证信息
方法、证据与局限展开收起
GitHub Repository API
6 个文件 · 31,197 字符
v3.17.3 · AI 内容复核:已使用(deepseek-flash)
- 静态评测不会安装或执行项目代码
- 安全扫描基于高信号文件与已知模式,不能替代人工审计
- 流行度只反映采用程度,不代表安全或工程质量
30 天热度趋势
README
Mobile Next - MCP server for Mobile Development and Automation | iOS, Android, Simulator, Emulator, and Real Devices
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.
https://github.com/user-attachments/assets/bb084777-beb3-4930-ae6f-8d3fe694ddde
🚀 Quick start
Quick install detects the MCP clients on this machine (Claude Code, Codex, Cursor, VS Code, Gemini CLI and more) and lets you pick which ones to configure:
npx @mobilenext/mobile-mcp@latest install
Add --yes to configure every detected client without asking.
Manual setup per client: Installation and configuration
Main use cases
How we help to scale mobile automation:
- 📲 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 (iPhone, Samsung, Google Pixel etc)
- 🧭 Automating multi-step user journeys driven by an LLM
- 👆 General-purpose mobile application interaction for agent-based frameworks
- 🤖 Enables agent-to-agent communication for mobile automation usecases, data extraction
Main Features
- 🚀 Accessibility-first — fast and cheap: drives apps from the native accessibility tree (no vision model, no image tokens), falling back to screenshots + coordinates only when needed.
- 📱 One API, every target: the same tools work across iOS and Android — simulators, emulators, and real devices.
- 🧠 No platform expertise required: no XCUITest, no Espresso, no per-platform glue — describe the goal and the agent does it.
- 🧰 Full device control: taps, swipes, and gestures; app install/launch/terminate; screen recording; hardware buttons; deep links; orientation.
- 📊 Structured, deterministic output: reads real UI elements and extracts structured data, cutting the ambiguity of screenshot-only approaches.
- 🪞 Device mirroring in Claude Code: for Claude Code running in Ghostty or kitty. Install the plugin and run
/mobile-mirrorto see the device's live screen in a side pane, then tap, type and press Home/Back without leaving the terminal.
🎯 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
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 pixelsmobile_get_orientation- Get the current screen orientation of the devicemobile_set_orientation- Change the screen orientation (portrait/landscape)mobile_fold_device- Fold or unfold a foldable device (iPhone Duo simulators, foldable Android emulators)mobile_set_location- Override the GPS location reported by the device, or clear the overridemobile_clipboard- Read or replace the device clipboard
Remote Devices (Mobile Next Cloud)
mobile_login_to_cloud_provider- Authenticate this machine with the cloud device provider (browser-based device-code login)mobile_list_remote_devices- List device models available to reserve from the cloud fleetmobile_allocate_remote_device- Reserve a physical cloud device for exclusive usemobile_release_remote_device- Release a reserved cloud device back to the fleet
App Management
mobile_list_apps- List all installed apps on the devicemobile_get_foreground_app- Get the app currently in the foregroundmobile_launch_app- Launch an app using its package namemobile_terminate_app- Stop and terminate a running appmobile_install_app- Install an app from file (.apk, .ipa, .app, .zip)mobile_uninstall_app- Uninstall an app by its package name or bundle IDmobile_clear_app_data- Clear an app's data so it starts fresh (Android and iOS Simulator)
Screen Interaction
mobile_take_screenshot- Take a screenshot to understand what's on screenmobile_save_screenshot- Save a screenshot to a filemobile_list_elements_on_screen- List UI elements with their coordinates and propertiesmobile_click_on_screen_at_coordinates- Click at specific x,y coordinates or on an element by its refmobile_double_tap_on_screen- Double-tap at specific coordinates or on an element by its refmobile_long_press_on_screen_at_coordinates- Long press at specific coordinates or on an element by its refmobile_swipe_on_screen- Swipe in any direction (up, down, left, right)mobile_start_screen_recording- Start recording the device screen to a video filemobile_stop_screen_recording- Stop the active screen recording and save the video
Input & Navigation
mobile_type_keys- Type text into focused elements with optional submitmobile_press_button- Press device buttons (HOME, BACK, VOLUME_UP/DOWN, ENTER, etc.)mobile_open_url- Open http/https URLs in the device browser
Logs & Crash Reports
mobile_get_device_logs- Collect live device logs (logcat on Android, unified log on iOS), optionally saved to a filemobile_list_crashes- List crash reports available on the devicemobile_get_crash- Get the full content of a crash report by its IDmobile_batch_commands- Run multiple tools in sequence in a single call (e.g. click, type, click), optionally listing screen elements at the end
🏗️ Mobile MCP Architecture
📚 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:
- Xcode command line tools
- Android Platform Tools
- node.js v20+
- MCP supported foundational models or agents, like Claude MCP, OpenAI Agent SDK, Copilot Studio
Installation and configuration
To configure it by hand, this 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"]
}
}
}
Claude Code
Install the plugin from inside Claude Code. It adds the Mobile MCP server and /mobile-mirror:
/plugin marketplace add mobile-next/mobile-mcp
/plugin install mobile-mcp@mobile-mcp
/mobile-mirror [device-id] opens a pane with the device's live screen. Click the picture to tap, type to send keys, and use the Home, Back, App Switch and URL buttons above it. The picture needs a terminal with the kitty graphics protocol, such as kitty or Ghostty.
If you can't use plugins, add only the MCP server with the Claude Code CLI:
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:
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:
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.
✅ 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.
🧪 From agent session to CI test
Using Mobile MCP to automate a mobile app, or to test one? Tell your agent to write the flow as a Mobilewright test. It becomes deterministic, and part of your CI/CD workflow.
import { test, expect } from '@mobilewright/test';
test('sign in', async ({ screen }) => {
await screen.getByLabel('Email').fill('user@example.com');
await screen.getByRole('button', { name: 'Sign In' }).tap();
await expect(screen.getByText('Welcome back')).toBeVisible();
});
Start with npm init mobilewright@latest. The step-by-step guide goes from an agent session to a test running in GitHub Actions.
☁️ 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:
--listenpreviously served the deprecated HTTP+SSE transport on/mcp. Clients must use Streamable HTTP againsthttp(s)://host:port/mcp. The old pure-SSE flow on/mcpis 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.
- Schedule a meeting in Zoom and share invite via email
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 "team@example.com".
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:
- iOS Simulators on macOS/Linux
- Android Emulators on Linux/Windows/macOS
- iOS or Android real devices (requires proper platform tools and drivers)
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:
- Start an emulator (avdmanager / emulator command).
- 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.
xcrun simctl listxcrun simctl boot "iPhone 16"
🧩 Part of Mobile Next
Mobile MCP is one piece of a toolkit for driving real mobile devices:
- mobilewright — "Playwright for mobile." When you're ready to turn agent-driven exploration into repeatable, deterministic tests for iOS and Android, graduate to mobilewright.
- mobilecli — the universal device CLI that Mobile MCP is built on: control devices, simulators, and emulators from the command line or a JSON-RPC API.
- Mobile Next Cloud — the same stack, rented: real iOS and Android devices on demand. Just prompt your agent:
log in to mobile next cloud and then show me which remote devices are available to meto get started.
🚀 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.
- ⭐ Star the repo — the easiest way to help others discover Mobile MCP.
- Read CONTRIBUTING.md for how to build, test, and open a pull request.
- Browse open issues to find something to work on.
- Questions and ideas are also welcome in our Slack community.
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.