MobAI MCP服务器
](https://www.npmjs.com/package/mobai-mcp) 
MCP(模型上下文协议)服务器 墨白 --人工智能驱动的移动设备自动化。让AI助手(Claude Code、Cursor、Windsurf、Cline和其他MCP兼容工具)通过单个DSL优先接口控制Android和iOS设备、模拟器和仿真器。
运作原理
所有设备交互都通过一个主要工具进行批处理: execute_dsl服务器接受一个JSON脚本,该脚本描述了一系列带有谓词、断言、等待和条件分支的操作,而不是公开数十个细粒度的工具(点击、滑动、键入……)。这可以降低往返次数,并在服务器端编码重试/失败策略。
一小部分配套工具可处理设备发现、屏幕截图、应用程序管理和运行 .mob 测试文件。
先决条件
- Node.js 18+
- MobAI桌面应用 在上本地运行(HTTP API
127.0.0.1:8686) - 连接的Android或iOS设备、模拟器或仿真器
安装
克劳德代码
claude mcp add mobai -- npx -y mobai-mcp光标
增添 .cursor/mcp.json:
{
"mcpServers": {
"mobai": {
"command": "npx",
"args": ["-y", "mobai-mcp"]
}
}
}克劳德桌面版
增添 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"mobai": {
"command": "npx",
"args": ["-y", "mobai-mcp"]
}
}
}Windsurf/Cline/其他MCP客户
服务器使用stdio——使用客户端的通用MCP配置:
{
"command": "npx",
"args": ["-y", "mobai-mcp"]
}工具
设备管理
| 工具 | 说明 |
|---|---|
list_devices | 列出所有已连接的Android和iOS设备 |
get_device | 获取特定设备的详细信息 |
start_bridge | 在设备上启动自动化桥(交互前需要) |
stop_bridge | 停止自动化桥 |
截图
| 工具 | 说明 |
|---|---|
get_screenshot | LLM视觉分析的快速、低质量屏幕截图(可能会缩小;响应包括比例因子) |
save_screenshot | 用于报告、调试或共享的全质量PNG到磁盘 |
应用
| 工具 | 说明 |
|---|---|
list_apps | 列出设备上已安装的应用程序 |
install_app | 安装 .apk 或 .ipa 从本地文件路径 |
uninstall_app | 按捆绑包ID/包名称卸载应用程序 |
debug_app | 在调试模式下启动应用程序,并将stdout/stderr写入日志文件 |
自动化
| 工具 | 说明 |
|---|---|
execute_dsl | 主要工具。 执行一批DSL步骤:点击、键入、滑动、观察、断言、网络自动化、指标、屏幕录制等。 |
测试管理
测试是 .mob 项目目录中磁盘上的文件。您可以使用助手的文件系统工具直接读取、写入和编辑它们——MobAI会实时监视UI的更改和更新。MCP只需要用于发现项目和运行测试。
| 工具 | 说明 |
|---|---|
test_get_active | 获取活动测试项目目录及其 .mob 案例 |
test_list_projects | 列出所有已知的测试项目目录及其 .mob 案例 |
test_run | 跑a .mob 设备上的测试用例(project_dir + case_path + device_id,可选 params 为了 ${name} 替代) |
资源
阅读这些 之前 尝试任何设备交互——它们描述了DSL模式、操作集、谓词、故障策略和 .mob 语法。
| URI | 目的 |
|---|---|
mobai://reference/device-automation | 如何控制设备——指南、所有DSL操作、谓词和故障策略 |
mobai://reference/testing | 测试工作流程、规则、错误修复和 .mob 脚本语法 |
示例
打开iOS设置应用程序,导航到Wi-Fi,并验证切换是否存在:
{
"version": "0.2",
"steps": [
{"action": "open_app", "bundle_id": "com.apple.Preferences"},
{"action": "wait_for", "predicate": {"text": "Settings"}, "timeout_ms": 3000},
{"action": "tap", "predicate": {"text_contains": "Wi-Fi"}},
{"action": "wait_for", "predicate": {"type": "switch"}, "timeout_ms": 3000},
{"action": "assert_exists", "predicate": {"type": "switch"}},
{"action": "observe", "include": ["ui_tree"]}
]
}将此作为 commands 参数(JSON字符串) execute_dsl 随着a device_id 从 list_devices.
故障排除
“连接被拒绝” -确保MobAI桌面应用程序正在运行,并且API可在 http://127.0.0.1:8686.
“桥未运行” --呼叫 start_bridge 第一。iOS网桥可能需要一分钟才能启动。
屏幕截图不可见 — get_screenshot 保存到 /tmp/mobai/screenshots/ 默认情况下,返回文件路径。使用助手的文件读取功能查看它们。数字用户线路 observe 从响应中提取屏幕截图并保存到同一目录。
发展
git clone https://github.com/MobAI-App/mobai-mcp.git
cd mobai-mcp
npm install
npm run build
node dist/index.js许可证
Apache 2.0——请参阅 许可证.

