开源工具
wechat ·
@极客之家
7k Star 开源神器:一句话,AI 替你操作手机
未提供
正文
今天聊个开源项目,Mobile MCP。
Mobile MCP 做的事很简单:让 AI 通过 MCP 协议操作手机。接上之后,你直接说需求,AI 就能在手机上点按、滑动、输入文字,安卓和 iOS 都支持,真机和模拟器都行。
现在这个开源项目在 GitHub 上已经收获了超 7k Star,TypeScript 写的,Apache-2.0 开源,免费,商用也可以。
简介
开始之前先交代一下 MCP 是什么,已经熟悉的可以直接跳过这段。MCP 是 Anthropic 搞的开放协议,用来给大模型外挂工具。注册一个 MCP 服务进来,模型就多会一样东西。多数 MCP 服务接的是文件、数据库、网页;Mobile MCP 接的是手机。
这个项目背后是 Mobile Next 团队。服务跑在你自己电脑上,AI 操作的是你连着的设备,不经过第三方服务器。
客户端这块,只要支持 MCP 的都能接。像 Claude Code、Codex、Cursor、Gemini CLI、Copilot、Windsurf 这些主流的都在官方支持列表里,国产客户端里 Trae 也支持 MCP,一样能接。
设备支持这些:
官方有张架构图,就是下面这张。左边是各种 MCP 客户端,中间是 Mobile MCP,右边连着手机、模拟器和数据源。它把手机操作封装成三十来个工具,工具名都带 mobile_,模型按需调用。
功能
先看懂屏幕上有什么
它判断屏幕上有什么,主要靠系统无障碍树,不是靠截图猜。无障碍树就是 App 给按钮、文字、输入框附带的结构化数据。按钮在哪个位置、上面写的什么字、现在能不能点,都是确定的数据。遇到游戏画面这类拿不到无障碍信息的界面,它才退回截图加坐标的老办法。读结构化数据比截图快,省 token,也不依赖视觉模型,结果更稳定。
我拿模拟器试过,让它列出当前屏幕的元素,返回的是一串清单,按钮、文字、输入框各自带着坐标和属性,不是甩一张图过来。
点、滑、按、打字这些手势
单击、双击、长按、上下左右滑动,这些都有现成的工具。往输入框里打字也行,按 Home 键、返回键、音量键也行。我们把目标说清楚,AI 自己组合这些动作去执行,不用写脚本。
管应用:装、开、关、卸
设备上装了哪些 App,可以让它先列出来。然后按包名启动 App、关掉正在跑的 App、从本地文件装 apk 或者 ipa、卸载,这些它都会。做测试时,装包、启动、验证这一套可以全交给它。
管设备:方向、定位、剪贴板
查屏幕尺寸,切横竖屏,给设备设一个虚拟 GPS 定位,读写剪贴板。做地图类或者基于位置的功能时,虚拟定位这个很好用,不用抱着手机到处跑。
截图和录屏
随时截一张当前屏幕看看状态,也可以把一段操作录成视频存下来。让 AI 跑完一个流程顺手录个屏,回头检查的时候方便很多。
拉日志和崩溃报告
开发者最能用上的是日志和崩溃报告。它能直接拉设备的实时日志,安卓这边是 logcat,iOS 那边是系统统一日志,还能列出设备上的崩溃报告,按编号把完整内容取出来。以前复现崩溃得自己翻日志,现在让 AI 顺手取一下就行。
一串操作打包跑
它支持批量执行,能把「点这里、输入、再点那里」放进一次调用,长流程不用反复对话。
本地没设备,云上有真机
手头设备不够的话,Mobile Next 官方还有个云端真机池,iOS 和安卓真机都有。
因为我电脑一直有安装安卓模拟器,所以让它直接调安卓模拟器也方便,没有模拟器的直接用 Mobile Next 现成的云端真机池。跟 Codex 说用云设备就行。
快速开始
说下我自己的环境:客户端用的 Codex,本地开了一台安卓模拟器,整个接入过程很快。
动手之前有几样东西要准备好:Node.js 要 20 以上;玩安卓的话,得装好 Android SDK 里的 platform-tools,保证 adb 命令能用,模拟器先跑起来;玩 iOS 的话,得装 Xcode 命令行工具。
Codex 里挂它就一条命令:
codex mcp add mobile-mcp npx "@mobilenext/mobile-mcp@latest"
习惯改配置文件的话,在 ~/.codex/config.toml 里加这段也一样:
[mcp_servers.mobile-mcp]
command = "npx"
args = ["@mobilenext/mobile-mcp@latest"]
用别的客户端就粘这段通用的 JSON,Cursor、Trae、Claude Code、Gemini CLI 都认:
{
"mcpServers": {
"mobile-mcp": {
"command": "npx",
"args": ["-y", "@mobilenext/mobile-mcp@latest"]
}
}
}
挂完重启 Codex,验证一下。我们说一句「列出可用的设备」,它把本地跑着的模拟器列了出来,这就说明接上了。
接下来就能正常聊天了,想到什么说什么。我让它「打开设置,把深色模式打开」,它先读了一遍屏幕,按文字找到显示设置的入口,点进去把开关点下去,完事又读了一遍系统状态,确认真的切过来了。全程我没碰模拟器一下。
跑完一个小的,再试个步骤多点的。我让它「打开时钟,设一个明天早上 7 点的闹钟」。它自己找到时钟 App 打开,切到闹钟那一页,点新建,拨好时间,保存,最后截了张图回来给我确认。中间每一步都是它自己读屏幕、自己找位置,我只看没说。
官方还有一段演示视频,跑起来大概就是这样:
说说我的看法
以前做移动端自动化,iOS 要写 XCUITest,安卓要写 Espresso,想跨端就上 Appium。脚本写出来脆,界面改一版就废一批。Mobile MCP 不用你写脚本,把目标说给 AI,让它自己去点。
我想到几个用法:改完页面让 AI 自己点一遍,省得自己去测;发版前跑个冒烟,装包启动点一圈看崩不崩;再有就是一些重复性的录入操作,把流程说清楚让它自己跑。
提醒一句:它默认收集匿名使用数据,介意就加 MOBILEMCP_DISABLE_TELEMETRY=1 关掉。
同一个团队还做了 mobilecli,在命令行里直接控设备,Mobile MCP 就是建在它上面的。想把 AI 摸索出来的流程固定成能反复跑的测试,可以再看看他们家的 mobilewright,相当于手机端的 Playwright。
开源地址
GitHub:https://github.com/mobile-next/mobile-mcp
官方文档(Wiki 里有更细的安装配置):https://github.com/mobile-next/mobile-mcp/wiki