Mobile-MCP 是一个模型上下文协议(MCP)服务器,通过接口实现可扩展的移动自动化,开发者不需要了解特定的 iOS 或 Android 开发知识。Mobile-MCP 允许代理和大型语言模型(LLMs)通过与原生 iOS/Android 应用程序和设备进行交互来操作,基于结构化的无障碍快照或基于屏幕截图的坐标点击。
Mobile-MCP 可以帮助扩展移动自动化,应用场景包括:
• 原生应用程序自动化:适用于 iOS 和 Android 的测试或数据录入场景。
• 脚本化流程和表单交互:不需要手动控制模拟器/仿真器或物理设备(如 iPhone、Samsung、Google Pixel 等)。
• 自动化多步骤用户旅程:由 LLM 驱动。
• 通用移动应用程序交互:用于基于代理的框架。
• 代理之间的通信:用于移动自动化用例和数据提取。
• 快速和轻量级:大多数交互使用原生可访问性树,或者在无障碍标签不可用时使用基于屏幕截图的坐标。
• LLM 友好:无障碍(快照)中不需要计算机视觉模型。
• 视觉感知:评估和分析屏幕上实际渲染的内容,以决定下一步操作,如果无障碍数据或视图层次结构坐标不可用,回退到基于屏幕截图的分析。
• 确定性工具应用:通过尽可能依赖结构化数据来减少纯基于屏幕截图的方法中的模糊性。
• 提取结构化数据:可以从屏幕上可见的任何内容中提取结构化数据。
Mobile-MCP 的架构允许在模拟器、仿真器和物理设备上运行,在启动时,Mobile-MCP 可以连接到:
• macOS/Linux 上的 iOS 模拟器。
• Linux/Windows/macOS 上的 Android 仿真器。
• 需要适当的平台工具和驱动程序的物理 iOS 或 Android 设备。
在运行 Mobile Next Mobile-MCP 之前需要先安装和配置移动平台 SDK(Xcode、Android SDK)。
可以在模拟器/仿真器的“无头”模式下运行 Mobile-MCP,如果没有物理手机连接到机器,可以在后台使用仿真器或模拟器运行 Mobile-MCP。
例如在 Android 上:
• 启动一个仿真器(avdmanager / emulator 命令)。
• 使用所需的标志运行 Mobile-MCP。
在 iOS 上,需要 Xcode 并在使用该模拟器实例之前运行模拟器。
Mobile-MCP 支持基于无障碍的定位器(首选)和基于坐标的输入,当无障碍/自动化 ID 缺失时,可以实现可靠和无缝的自动化。
命令示例
• mobile_install_app
:将应用程序安装到设备/仿真器上。
参数:appPath(字符串):应用程序文件的路径或 URL(例如,Android 的 .apk,iOS 的 .ipa/.app)。
• mobile_list_apps
:列出设备上安装的所有应用程序。
参数:bundleId(字符串):应用程序的唯一包标识符,如 com.google.android.keep 或 com.apple.mobilenotes。
• mobile_launch_app
:启动设备/仿真器上的指定应用程序。
参数:bundleId(字符串):应用程序的唯一包标识符。
• mobile_terminate_app
:终止正在运行的应用程序。
参数:packageName(字符串):基于应用程序的包标识符调用 am force stop 或根据 pid 杀死应用程序。