跳到主要内容
Supermarket
返回能力市场
MCP Server
programming
Apache-2.0

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.

mobile-nextmobile-next
82/ 100

公开评测 · 综合采用结论

证据充分,整体质量与安全表现优秀

查看评测依据 评测我的项目基于公开项目证据,非安全认证或安装推荐
10.5kstars
940forks
最近更新 20小时前
评测生成时间(北京时间)
本报告引擎
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。来源由采集方提供,摘要本身不证明来源真实性。

Evaluation report

综合采用结论

82
B
满分 100 · 静态采用参考
值得推荐低风险
决策摘要

证据充分,整体质量与安全表现优秀

100%
高置信度
75
文档
100
安全
70
质量
100
活跃
65
采用
  • 基础评测完成+25/25确定性评分与静态安全扫描已完成
  • README 有效证据+25/2520,105 个去重后的有效字符
  • 独立证据来源+20/206 类非重复证据,重复文件不叠加
  • 仓库元数据+10/10已取得仓库状态与采用数据
  • 活跃记录+5/5已取得最近提交时间
  • AI 复核+15/15已完成结构化 AI 证据复核

本报告评了什么

综合分用于静态采用筛选,不是任务成功率,也不代表使用 Skill 后的能力提升。

静态检查范围
记录 6 个文件 · 31,197 字符
只检查采集到的受限文本与已知风险模式;未读取的脚本、依赖和运行环境不在结论内。
AI 内容复核
已使用
复核送评文本的说明和设计,不是安装测试或实际任务执行。记录缺失时不推断已使用或未使用。
真实任务效果
本报告未提供实测证据
没有使用/不使用 Skill 的任务对照、重复运行或耗时与 token 成本结果。采用前仍需在隔离环境验证自己的任务。

脚本引用覆盖

脚本引用覆盖记录不可得;不推断没有引用或已经检查。

How it works · 时序图

Agent 经 MCP 驱动移动设备

存在 Agent、MCP Server 与设备三方请求响应关系,且 SKILL.md 描述列设备、读元素、操作、验证的时序

AI 提取 · 证据约束

左右滑动查看完整图示

Agent 经 MCP 驱动移动设备存在 Agent、MCP Server 与设备三方请求响应关系,且 SKILL.md 描述列设备、读元素、操作、验证的时序AI Agent发起任务Mobile MCP工具服务移动设备模拟器或真机调用 mobile_ 工具执行操作/读取返回元素与截图返回结构化结果
图示依据
  • • SKILL.md Workflow:先 mobile_list_available_devices,再 mobile_list_elements_on_screen,操作后重新验证
  • • README Available MCP Tools 列出设备管理与输入导航工具
五维表现
跨 iOS/Android 的统一 MCP 工具集解决真实移动自动化问题,安装与工具清单充分;但缺少权限边界、错误处理、许可证与排障说明,设计证据保守。
质量证据
  • 未通过: 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 的统一设备控制、在模拟器/真机上复现与验证问题

不建议直接用于

需要严格权限与数据合规审计的生产环境、无本地设备且不愿使用云服务的离线场景

也有自己的公开项目?先看完证据,再用当前规则生成独立报告。

评测我的项目 →
文档证据
75/100
问题与用途描述10 分
有效 README12 分
安装或接入步骤14 分
可执行示例16 分
输入、参数或工具说明11 分
输出或结果说明9 分
限制、权限或边界12 分
错误处理或排障8 分
许可证信息5 分
结构化章节3 分
安全证据
低风险
未发现已知高风险模式

静态扫描不是安全保证,生产接入前仍应人工复核权限和数据边界。

优先改进清单
  1. 01修复 skills/mobile-automation/SKILL.md:metadata 如提供必须是字符串到字符串的映射
  2. 02补充限制、权限或边界
  3. 03补充错误处理或排障
  4. 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

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 README 图片 Install in VS Code wiki join on Slack

GitHub Trending Repository of the Day

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

mobile-mcp

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-mirror to see the device's live screen in a side pane, then tap, type and press Home/Back without leaving the terminal.

/mobile-mirror showing an iOS simulator beside a Claude Code session

🎯 Platform Support

TargetSupportedSetup
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 pixels
  • mobile_get_orientation - Get the current screen orientation of the device
  • mobile_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 override
  • mobile_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 fleet
  • mobile_allocate_remote_device - Reserve a physical cloud device for exclusive use
  • mobile_release_remote_device - Release a reserved cloud device back to the fleet

App Management

  • mobile_list_apps - List all installed apps on the device
  • mobile_get_foreground_app - Get the app currently in the foreground
  • 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 by its package name or bundle ID
  • mobile_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 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 or on an element by its ref
  • mobile_double_tap_on_screen - Double-tap at specific coordinates or on an element by its ref
  • mobile_long_press_on_screen_at_coordinates - Long press at specific coordinates or on an element by its ref
  • 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

Input & Navigation

  • 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 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 file
  • mobile_list_crashes - List crash reports available on the device
  • mobile_get_crash - Get the full content of a crash report by its ID
  • mobile_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

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

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

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

More in our wiki

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:

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.

🧪 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: --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.
  • 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

VariableDescriptionExample
MOBILEMCP_AUTHRequire a Bearer token on the Streamable HTTP server (--listen) — every request must then send Authorization: Bearer <token>.MOBILEMCP_AUTH=my-secret-token
MOBILEMCP_DISABLE_TELEMETRYDisable anonymous usage telemetry.MOBILEMCP_DISABLE_TELEMETRY=1
MOBILEMCP_ALLOW_UNSAFE_URLSAllow mobile_open_url to open non-standard URL schemes (blocked by default).MOBILEMCP_ALLOW_UNSAFE_URLS=1
MOBILEMCP_LEGACY_ROBOTUse 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:

  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.

  • xcrun simctl list
  • xcrun 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 me to 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.

Please also review our Code of Conduct.

Thanks to all contributors ❤️

We appreciate everyone who has helped improve this project.

README 图片

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.