15分钟搭建AI手机自动化助手
厌倦了写 Appium 脚本?本文教你用 MCP 协议 + mobile-mcp 工具,通过 Claude/Cursor 等 AI 客户端用自然语言直接操控 iOS/Android 设备。15分钟完成配置,轻松实现 App 自动化、UI 测试和数据抓取。

15分钟搭建AI手机自动化助手
一、你一定会遇到的痛点
做移动开发或写自动化脚本时,你一定经历过这些折磨:
- 写 Appium 脚本:光配环境就要半天,XCUITest、Espresso 两套 API 要分别维护,每次 App UI 一变,选择器全失效;
- 做数据抓取:要手动控制模拟器点来点去、截屏识别,或者花钱接商业 SDK;
- 日常小任务:比如「帮我从这个 App 里把今天的通知消息复制出来」,其实就几步操作,但写代码的成本太高。
如果只需告诉 AI 你想做什么,AI 就自动在手机上帮你完成点击、滑动、输入、读取数据,是不是高效多了?
接下来我们用 15 分钟搭建这样一个系统,学会用 Claude 或 Cursor 等 AI 助手直接操控手机(或模拟器),完成自动化操作和数据抓取。
二、前置条件
开始前确认你手头有这些:
- Node.js v20+:项目通过 npm 分发,建议用 nvm 管理版本;
- 移动开发环境(二选一即可):
- iOS 路线:Mac 电脑 + Xcode 命令行工具(运行
xcode-select --install); - Android 路线:Android SDK + adb 可用(安装 Android Studio 后在 SDK Manager 启用 Platform Tools);
- iOS 路线:Mac 电脑 + Xcode 命令行工具(运行
- 一个 AI 客户端:Claude Desktop、Cursor、VS Code + Copilot、Codex、Gemini CLI 等任意支持 MCP 协议的工具。
为什么需要 MCP? MCP(Model Context Protocol)是 Anthropic 推出的开放协议,让 AI 模型能安全地调用外部工具。通过 MCP Server 把手机控制能力暴露给 AI,相当于给 AI 装上一双「操控手机的手」。
三、15分钟搭建教程
第一步:安装 mobile-mcp Server
项目已发布到 npm,无需 clone 仓库或手动编译。在你的 AI 客户端 MCP 配置中添加:
json
{
"mcpServers": {
"mobile-mcp": {
"command": "npx",
"args": ["-y", "@mobilenext/mobile-mcp@latest"]
}
}
}
这段配置放哪? 取决于你用的客户端:
| 客户端 | 配置方式 |
|---|---|
| Claude Desktop | Settings → Developer → Edit Config,粘贴进 mcpServers |
| Cursor | Settings → MCP → Add new MCP Server,选 command 类型,填入 npx -y @mobilenext/mobile-mcp@latest |
| VS Code + Copilot | 编辑 ~/.copilot/mcp-config.json,按上面格式添加 |
| Claude Code (CLI) | 终端运行:claude mcp add mobile-mcp -- npx -y @mobilenext/mobile-mcp@latest |
配置完成后重启客户端即可生效,Claude Desktop 和 Cursor 对 MCP 的支持最成熟,添加后立刻就能调用。
第二步:启动模拟器或连接真机
MCP Server 本身不创建设备,需要你提前启动好模拟器。
Android 模拟器:
bash
## 查看已有模拟器
emulator -list -avds
## 启动模拟器
emulator @Pixel_6_API_33
## 确认设备在线
adb devices
iOS 模拟器:
bash
## 列出可用模拟器
xcrun simctl list devices
## 启动 iPhone 16 模拟器
xcrun simctl boot "iPhone 16"
关键理解:MCP Server 启动后会通过 adb(Android)或 XCUITest 可访问性树(iOS)自动发现已连接设备,因此必须先有设备在线,Server 才能正常工作。
第三步:验证连接
重启 AI 客户端后,对它发出指令:
列出所有可用的移动设备
配置正确时会看到类似回复:
Found 1 device:
- Pixel_6_API_33 (Android Emulator, booted)
列表为空说明模拟器未启动或 adb/Xcode 工具链异常,排查设备连接后再继续。
四、实战:用自然语言完成完整任务
场景 1:浏览网页并抓取数据
在 Claude Desktop 或 Cursor 的 Agent 模式中输入:
打开浏览器,访问 https://news.ycombinator.com,
抓取第一条新闻的标题和链接,返回给我
AI 会自动调用这些 MCP 工具(无需手写调用代码):
mobile_list_apps→ 查找浏览器应用mobile_launch_app→ 启动浏览器mobile_open_url→ 打开指定网址mobile_list_elements_on_screen→ 读取页面 UI 元素的可访问性树- 从结构化数据中提取标题和链接
你只需要描述目标,AI 自动拆解成工具调用链,无需编写 Appium 脚本或处理 WebDriver 连接。
场景 2:多步自动化测试
尝试这个适合 QA 测试的指令:
在设备上打开计算器 App,计算 123 + 456 = ?
把结果显示在屏幕上后截屏保存,
最后告诉我计算结果是否为 579
AI 会依次执行:启动计算器 → 点击数字键 → 等待结果 → 截屏 → 返回结果验证。
场景 3:复杂工作流
对于需要连续操作的场景:
打开 Instagram,搜索 "AI automation",
打开第一个 profile,点击 Follow 按钮,
返回操作是否成功的状态
注意:多步操作依赖 AI 规划能力,Claude 3.5 Sonnet 或 GPT-4o 效果最佳。若 AI 中途卡住,可手动补充提示:「你现在在 XX 页面,下一步应该点 YY 按钮」。
五、核心 MCP 工具一览
了解工具列表有助于写出更精准的提示词:
| 工具 | 作用 | 典型场景 |
|---|---|---|
mobile_list_available_devices |
列出设备 | 调试用 |
mobile_launch_app / mobile_terminate_app |
打开/关闭 App | 流程起点/终点 |
mobile_take_screenshot / mobile_save_screenshot |
截屏 | 调试、留证 |
mobile_list_elements_on_screen |
读取 UI 元素 | 数据抓取、元素定位 |
mobile_click_on_screen_at_coordinates |
坐标点击 | 无可访问性 ID 时降级使用 |
mobile_swipe_on_screen |
滑动屏幕 | 列表滚动、翻页 |
mobile_type_keys |
输入文字 | 表单填写、搜索 |
项目优先使用可访问性树解析 UI,速度快且不消耗图像 token,返回结构化数据。仅当可访问性信息不足时,才降级到截图 + 坐标方案。
六、常见问题与排查
设备列表为空
模拟器未启动或 adb 权限不足。排查命令:
bash
## Android
adb kill-server && adb start-server
adb devices # 应显示 emulator-xxx
## iOS
xcrun simctl list devices | grep Booted # 应有 Booted 状态设备
AI 提示「找不到 mobile-mcp 工具」
新增 MCP 配置后需重启客户端才能加载。Claude Desktop 用户确认 claude_desktop_config.json 格式正确(注意末尾无多余逗号)。
点击操作不精准
部分 App 未正确实现可访问性属性。此时提示 AI 降级:
如果看不到按钮的可访问性 ID,请截屏后通过视觉识别点击坐标
真机连接较复杂
iOS 真机需额外安装 go-ios 和 WebDriverAgent 并配置隧道。建议先用模拟器跑通流程,真机调试参考项目 Wiki。
关闭遥测数据
添加环境变量禁用匿名遥测:
bash
MOBILEMCP_DISABLE_TELEMETRY=1 npx @mobilenext/mobile-mcp@latest
或在配置中添加 env 字段。
七、下一步探索
完成从 0 到 1 搭建后,你可以:
- 将重复操作写成提示词模板,如「每天从 XX App 抓取数据并保存至文件」
- 结合 mobilewright(移动端 Playwright)将 AI 探索出的操作流程固化为可重复测试脚本
- 大规模测试或 CI/CD 场景可了解 Mobile Next Cloud 服务
项目拥有 6244 Stars,社区活跃。工具调用问题可前往 GitHub 仓库 提 Issue 或加入 Slack 交流。
遇到配置问题欢迎留言讨论。