项目介绍
Mobile MCP 是一个用于移动自动化的模型上下文协议服务器,支持本地 iOS 和 Android 应用的自动化操作。 它能够通过结构化的可访问性树或截图坐标进行交互,适用于 LLM 驱动的场景。
️核心功能点
快速且轻量:大多数交互使用原生的无障碍访问(accessibility)树来实现;在没有可用无障碍标签的情况下,则使用基于截图的坐标方式。
🤖 适配大语言模型:在“可访问性快照”模式下,无需依赖计算机视觉模型。
🧿 视觉感知:会评估并分析屏幕上实际渲染的内容来决定下一步动作;如果缺乏无障碍数据或视图层级坐标,则退回到截图分析方式。
工具应用具确定性:尽可能依赖结构化数据,从而减少纯截图方式中常见的不确定性。
提取结构化数据:可以从屏幕上可见的任意内容中提取结构化信息。
安装与配置
(一)环境准备
1.依赖项
安装Node.js(推荐LTS版本)。
配置移动平台SDK:
•iOS:需Xcode及模拟器(macOS)。
•Android:需Android SDK及虚拟设备(通过avdmanager
或Android Studio创建)。
2. 设备连接
1. iOS:通过
xcrun simctl
管理模拟器(如启动设备:xcrun simctl boot "iPhone 16"
)。
2. Android:使用emulator
命令启动AVD。
(二)部署方式
1.快速启动(NPM)
npx @mobilenext/mobile-mcp@latest
2.配置文件集成
在Agent配置文件(如Claude、Cursor)中添加:
{ "mcpServers": { "mobile-mcp": { "command": "npx", "args": ["-y", "@mobilenext/mobile-mcp@latest"] } } }
3.命令行参数 •-port
: 指定端口(默认3333)。 •-headless
: 无界面模式下运行(需配合模拟器)。
核心工具与交互命令
(一)设备管理
工具 | 功能 | 参数示例 |
mobile_list_apps | 列出已安装应用 | bundleId: "com.google.android.keep" |
mobile_launch_app | 启动指定应用 | bundleId: "com.apple.mobilenotes" |
mobile_terminate_app | 终止应用 | packageName: "com.google.android.keep" |
(二)屏幕交互
工具 | 功能 | 参数示例 |
mobile_click_on_screen_at_coordinates | 基于坐标点击 | x: 100, y: 200 |
mobile_element_tap | 通过可访问性标签点击元素 | element: "Login button" |
mobile_swipe | 屏幕滑动(坐标或元素定位) | startX: 100, startY: 200, endX: 300, endY: 400 |
mobile_type_text | 向输入框输入文本 | text: "Hello", submit: true |
(三)调试与信息获取
工具 | 功能 | 输出示例 |
mobile_get_screen_size | 获取屏幕分辨率 | { width: 1080, height: 1920 } |
mobile_get_source | 获取XML格式可访问性快照 | <node .../> |
高级特性与注意事项
(一)视觉感知机制
•混合策略:优先使用可访问性数据,若不可用则通过截图分析(如OCR识别文本或按钮位置)。
•动态适配:支持多分辨率设备,自动缩放坐标以匹配物理屏幕尺寸。
(二)实验性功能
•分支操作(需付费计划):支持创建/合并/重置移动端开发分支,适用于持续集成场景。•
代理通信:允许多个Agent协同完成复杂任务(如数据提取+表单填写)。