找回密码
立即注册
搜索
发回帖 发新帖

4873

积分

0

好友

627

主题
发表于 1 小时前 | 查看: 6| 回复: 0

移动端测试这活儿,干过的同行都懂里面的苦。自动化得写 XCUITest(iOS 的 UI 测试框架)或 Espresso(Android 的对应物),双端各整一套;想用 AI agent 操控手机,主流方案是让模型“看”截图再报坐标——又烧 image token,坐标还经常点偏。

上周刷到 mobile-next/mobile-mcp:一个专治这毛病的 MCP 服务器。GitHub API 实测 6,933 Star / 615 Fork,Apache-2.0,TypeScript 写的,维护活跃。项目 2025 年 3 月创建,现在已有中文版 README(README.zh-CN.md)。

mobile-next/mobile-mcp GitHub 仓库信息

我把 README、架构图和官方文档拆了一遍。没实际连真机跑,文中数据全部来自官方 README 并逐一标注。先说结论:它最聪明的地方不是“能操控手机”,而是选对了驱动方式——不靠视觉模型“看”,直接读无障碍树。

一句话定位

Mobile MCP 是一个移动端自动化的 MCP 服务器:装上它,你的 AI agent(Claude Code、Cursor、Codex 等)就能直接操控 iOS/Android 的模拟器、仿真器和 USB 真机——点按钮、填表单、装应用、抓日志、取崩溃报告,做自动化测试和数据抓取。

和传统方案最大的区别:一套 API 通吃所有目标,不用写 XCUITest/Espresso 这些平台专用胶水,也不要求你懂双端差异。

Mobile Next 项目宣传横幅

三个核心亮点

能力层面:32 个工具覆盖完整链路。 我按 README 分组实测数了一遍:设备管理 6 个(列设备、屏幕尺寸、GPS 覆盖、剪贴板)、应用管理 6 个(装/卸/启/停)、屏幕交互 9 个(截图、列元素、点击/双击/长按/滑动、录屏)、输入导航 3 个、日志崩溃 4 个、云端真机 4 个,外加批量执行。从点击到崩溃日志,一条链路全包。

架构层面:Accessibility-first,省 token 又防幻觉。 这是全项目最有含金量的设计决策。它优先读原生无障碍树(accessibility tree,操作系统为视障用户维护的界面元素结构,自带每个控件的坐标、文本、类型),拿到的是真实 UI 元素的结构化数据——不是模型看图猜的。只在无障碍树不完整时才回退到“截图 + 坐标点击”。省 image token、响应快,还规避了纯视觉方案的歧义。

团队层面:MCP 客户端全兼容 + 云端真机。 Claude Code、Codex、Gemini、Copilot、Cursor、Cline、Goose、opencode、Windsurf 等 MCP 客户端都能接。本地没设备?官方 Mobile Next Cloud 提供按需租用的云端真机,适合 CI/CD 和规模化场景。生态里还有 mobilewright(把 agent 探索转成确定性测试,“移动版 Playwright”)和 mobilecli(底层通用设备 CLI)。

为什么“读树”比“看图”更可靠

旧方案的路径:让多模态模型看截图 → 模型报坐标 → 脚本去点。三个固有问题:image token 贵、坐标有偏差(分辨率/DPR 换算容易翻车)、模型可能“看图编造”不存在的按钮。

Mobile MCP 的架构反转了这个顺序。看官方架构图:

Mobile MCP 架构图:MCP 客户端经 API 层连接服务器,对接本地真机/模拟器与云端设备农场

关键分三层:

设备抽象层:iOS 走 xcrun simctl(macOS 自带的模拟器管理工具)和 WebDriverAgent,Android 走 adb(Android 调试桥)。双端差异被这层吃掉,上层 API 统一。

交互层:优先 mobile_list_elements_on_screen 读无障碍树,拿到结构化元素列表——真实坐标、真实属性、确定性输出。模型面对的是“元素 3:登录按钮”这种明确目标,不是像素猜谜。需要时才调 mobile_click_on_screen_at_coordinates 做坐标兜底。

服务层:stdio 本地模式之外,还支持 Streamable HTTP 模式(--listen 3000),配 Bearer Token 认证。这意味着 MCP 服务器可以集中部署在一台接满设备的机器上,全组远程共用。

一句话总结架构优势:把“AI 看屏幕”变成“AI 查结构化数据”,这是从“猜”到“查”的可靠性跃迁。

单机快速上手

两步跑通,以 Claude Code 为例:

# 1. 注册 MCP 服务器(首次自动经 npx 拉起)
claude mcp add mobile-mcp -- npx -y @mobilenext/mobile-mcp@latest

# 2. 对 agent 说人话就行
# "列出我连接的设备,然后打开设置 App 截个图"

前置条件按平台备好:

iOS 模拟器:macOS + Xcode(xcrun simctl)
Android 模拟器:Android SDK + 运行中的模拟器(adb)
真机:USB 连接 + iOS 信任授权 / Android 开启 USB 调试

高频玩法三个:

# 自动化测试
"打开 App,走一遍登录流程,把每步截图存下来"

# 数据抓取
"读取当前屏幕的列表元素,提取标题和价格存成 JSON"

# 排障
"抓一下这个 App 最近的崩溃日志,总结崩溃原因"

Codex / Gemini CLI 的安装命令在 README 里都有现成的,npx -y @mobilenext/mobile-mcp@latest 这条命令是通用的——任何 MCP 客户端都能用这行配置。

企业团队落地方案

1)团队改造思路。 定位是“移动端自动化基础设施”,不是测试平台本身。推荐姿势:测试团队把重复手测场景(回归清单、多步用户旅程)交给 agent + mobile-mcp 起草执行,人工看结果。边界要想清楚——它管“功能链路通不通”,不管性能测试和像素级视觉回归。

2)部署方案。 两条路:个人开发者走 stdio 模式(npx 拉起,各用各的);团队走 HTTP 模式集中部署——一台 Mac 接 iOS 真机、一台 Linux 挂 Android 设备,MOBILEMCP_AUTH 配 Bearer Token,全组 MCP 客户端远程连。设备资源集中管理,不用每人插一堆手机。

3)集成方案。 CI/CD 里两个选择:云端真机(Mobile Next Cloud,按需租用,适合多机型矩阵)或本地模拟器 headless 模式(README 有专门章节)。跑完的录屏、崩溃日志直接进构建产物。更进一步的打法是用官方 mobilewright 把 agent 的探索性测试固化成确定性测试用例,进常规回归。

4)团队规范定制。 环境变量裁剪行为:MOBILEMCP_DISABLE_TELEMETRY=1 关遥测(合规团队必开)、MOBILEMCP_ALLOW_UNSAFE_URLS 控制深链白名单、MOBILEMCP_LEGACY_ROBOT 切换旧版平台驱动。仓库还带了 skills/mobile-automation 技能包,可以往里沉淀团队自己的测试规范。

真实适用场景

  • 移动端自动化测试——回归清单交给 agent 跑,人只看结果
  • App 数据抓取——读无障碍树拿结构化数据,比截图 OCR 靠谱
  • 数据录入与表单自动化——批量填单、多步用户旅程
  • 排障辅助——崩溃日志 + 设备日志一条命令抓全
  • Agent 间协作——给上层 agent 框架提供“手”的能力

优缺点与避坑

优势:Accessibility-first 省 token、防幻觉;一套 API 通吃 iOS/Android 与模拟器/真机;32 个工具链路完整;Apache-2.0;有云端真机和 mobilewright 生态配套;中文 README 对国内团队友好。

局限:受众偏移动开发/测试这个细分方向,不做移动的基本用不上;“确定性输出”依赖 App 的无障碍标注质量——无障碍树不完整的 App 会回退到截图方案,成本和不确定性都会上升;云端真机是商业服务,本地真机需要 USB + 授权这两道物理门槛。

避坑三条:

  • iOS 真机首次连接要在手机上点“信任”,CI 机器要提前做好配对授权,别等流水线跑一半卡在弹窗
  • Android 模拟器支持 Linux/Windows/macOS,但 iOS 模拟器只有 macOS/Linux 能跑,Windows 团队只能测 Android 或走云端
  • 无障碍质量差的 App(游戏、自绘 UI 居多)效果打折,接入前先用 mobile_list_elements_on_screen 试探目标 App 的树完不完整

写在最后

Browser-use 治好了 AI 操作网页,Mobile MCP 在试着治好 AI 操作手机。同一个思路的移动端版本:别让模型猜像素,让模型查结构。对移动开发者和测试工程师,这是把重复手测交出去的一把钥匙;对不做移动的读者,“Accessibility-first 优于视觉方案”这个架构判断,值得记住——它在很多自动化场景里都成立。

开源地址:https://github.com/mobile-next/mobile-mcp




上一篇:cc-switch 本地路由:让 GPT 跑进 Claude Code
下一篇:向量数据库不止服务RAG:选型逻辑、Embedding细节与非RAG落地场景
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-10-6 21:39 , Processed in 0.067728 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表