使用说明
项目简介
本项目 'Mobile Development MCP Server' 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在通过 AI 以标准化的方式控制和自动化移动设备,支持 Android 和 iOS 平台。它为 LLM 客户端提供了一系列工具,可以用于管理移动设备、安装和启动应用、进行 UI 自动化操作、获取设备日志和诊断信息等,从而实现更智能的移动设备交互和测试自动化。
主要功能点
- 设备管理:列出、启动和关闭 Android 模拟器和 iOS 模拟器,以及列出已连接的真机设备。
- 应用管理:在 Android 和 iOS 设备上安装、启动和列出已安装的应用。
- UI 自动化:模拟在 Android 和 iOS 设备屏幕上的点击、滑动和文本输入等操作,实现 UI 自动化控制。
- 日志管理:获取 Android 设备的系统日志 (logcat),支持按日志级别过滤。
- 屏幕截图:截取 Android 和 iOS 设备的屏幕截图。
- 诊断信息:捕获 Android 设备的 Bug 报告,用于问题诊断。
安装步骤
-
克隆仓库
git clone https://github.com/jsuarezruiz/mobile-dev-mcp-server.git cd mobile-dev-mcp-server -
安装必备工具
- Android 开发工具:确保已安装 ADB (Android Debug Bridge) 并已添加到系统环境变量 'PATH' 中。
- iOS 开发工具:确保已安装 Xcode Command Line Tools (包含 'xcrun simctl')。
- IDB 工具 (可选,iOS UI 自动化需要):按照 IDB 安装指南 安装 Facebook IDB 工具,并确保 'idb' 命令可用。
- .NET SDK:安装 .NET SDK (例如 .NET 9 或更高版本)。
-
构建项目 在项目根目录下,运行以下命令构建项目:
dotnet build
服务器配置
MCP 客户端需要配置服务器的启动命令才能连接到 'Mobile Development MCP Server'。以下是一个 JSON 格式的配置示例,适用于 MCP 客户端(例如 MCP Inspector 或集成到 IDE 的客户端):
{ "mcp-server-mobiledev": { // 服务器名称,客户端用于标识和调用 "type": "stdio", // 传输协议类型,这里使用标准输入输出流 stdio "command": "dotnet", // 启动服务器的命令,这里使用 dotnet 运行 .NET 应用 "args": [ // 命令参数 "run", // dotnet run 命令参数,表示运行项目 "--project", // 指定要运行的项目文件 "/path/to/mobile-dev-mcp-server/src/MobileDevMcpServer.csproj" // 指向 MobileDevMcpServer.csproj 项目文件的路径,需要替换为实际路径 ] } }
注意: 请将上述配置中的 '/path/to/mobile-dev-mcp-server/src/MobileDevMcpServer.csproj' 替换为您实际的项目文件路径。
基本使用方法
- 启动 MCP 服务器: 在终端中,导航到项目根目录,并运行配置中指定的 'dotnet run' 命令启动服务器。
- 使用 MCP 客户端连接服务器: 配置 MCP 客户端(例如 MCP Inspector)连接到 'stdio' 类型的服务器,并使用上述提供的配置信息。
- 通过 MCP 客户端调用工具和 Prompt:
连接成功后,您可以使用 MCP 客户端列出和调用服务器提供的工具 (Tools) 和 Prompt 模板 (Prompts),例如:
- 使用 'android_list_devices' 工具列出 Android 设备。
- 使用 'ios_screenshot' 工具截取 iOS 设备屏幕截图。
- 使用 'DebugAppLogs' Prompt 模板生成 Android 应用日志调试的 Prompt。
- ...更多工具和 Prompt 请参考仓库 README.md 文档。
示例 AI 助手查询 (可以直接在 MCP Inspector 或集成了 MCP 客户端的 AI 助手中使用)
- "显示所有已连接的 Android 设备并提供详细信息。" (对应 'android_list_devices' 工具)
- "展示所有已连接的 iOS 设备及其规格。" (对应 'ios_list_devices' 工具)
- "分析最近的日志,并识别是否有任何错误消息。" (可以结合 'android_logs_logcat' 工具获取日志,然后让 LLM 分析)
- "在这个设备上安装这个 APK,并确认是否安装正确。" (对应 'android_install_app' 工具)
- "提供我手机上安装的所有应用程序的列表。" (对应 'android_list_packages' 工具)
- "按下坐标 (100, 1000) 的 Home 键。" (对应 'android_ui_tap' 工具,但需要结合坐标转换逻辑,示例查询可能不直接对应工具)
信息
分类
桌面与硬件