项目简介
本项目 'ios-simulator-mcp' 是一个实现了 Model Context Protocol (MCP) 的服务器,旨在为 LLM 应用提供与 iOS 模拟器交互的能力。通过此服务器,你可以使用自然语言指令控制 iOS 模拟器,例如获取屏幕信息、执行 UI 操作、截图和录屏等,从而实现自动化测试、辅助开发等场景。
主要功能点
- 获取当前启动的模拟器ID:方便识别和指定操作目标。
- UI 元素描述:获取屏幕上所有或指定位置 UI 元素的可访问性信息,用于界面检查和验证。
- UI 交互操作:模拟用户在模拟器上的操作,包括点击、文本输入和滑动,实现自动化流程。
- 屏幕截图:快速截取模拟器屏幕,用于记录和分享。
- 屏幕录制:录制模拟器屏幕操作视频,用于演示和问题复现。
安装步骤
前置条件
- Node.js 环境
- macOS 操作系统(iOS 模拟器仅能在 macOS 上运行)
- 已安装 Xcode 和 iOS 模拟器
- 已安装 Facebook IDB 工具 (安装指南)
安装方式
推荐方式:使用 NPX
-
打开终端,编辑 Cursor MCP 配置文件:
cursor ~/.cursor/mcp.json -
在 'mcpServers' 中添加 iOS 模拟器服务器配置:
{ "mcpServers": { "ios-simulator": { "command": "npx", "args": ["-y", "ios-simulator-mcp"] } } } -
重启 Cursor。
本地开发方式:
-
克隆仓库到本地:
git clone https://github.com/joshuayoes/ios-simulator-mcp cd ios-simulator-mcp -
安装依赖:
npm install -
构建项目:
npm run build -
编辑 Cursor MCP 配置文件:
cursor ~/.cursor/mcp.json -
在 'mcpServers' 中添加 iOS 模拟器服务器配置(请将 '/path/to/your/ios-simulator-mcp' 替换为你的实际仓库路径):
{ "mcpServers": { "ios-simulator": { "command": "node", "args": ["/path/to/your/ios-simulator-mcp/build/index.js"] } } } -
重启 Cursor。
服务器配置
在 MCP 客户端(如 Cursor)的配置文件中,你需要配置启动 iOS 模拟器 MCP 服务器的信息。以下是配置示例,你需要根据你的安装方式选择合适的配置:
使用 NPX 方式 (推荐):
{ "mcpServers": { "ios-simulator": { "command": "npx", // 使用 npx 命令 "args": ["-y", "ios-simulator-mcp"] // 运行 ios-simulator-mcp 包,-y 参数表示自动确认安装 } } }
本地开发方式:
{ "mcpServers": { "ios-simulator": { "command": "node", // 使用 node 命令 "args": ["/path/to/your/ios-simulator-mcp/build/index.js"] // 指向构建后的服务器入口文件,请替换为实际路径 } } }
基本使用方法
配置完成后,在 MCP 客户端中,你可以通过自然语言指令调用服务器提供的工具来操作 iOS 模拟器。例如,在 Cursor 中,你可以使用如下 Prompt:
-
获取当前启动的模拟器 ID:
工具: ios-simulator/get_booted_sim_id -
描述当前屏幕上的所有 UI 元素:
工具: ios-simulator/ui_describe_all -
点击屏幕坐标 (x=100, y=200):
工具: ios-simulator/ui_tap, 参数: {"x": 100, "y": 200} -
在模拟器中输入文本 "Hello":
工具: ios-simulator/ui_type, 参数: {"text": "Hello"} -
截取屏幕并保存到 'screenshot.png' 文件 (默认保存到 '~/Downloads' 目录):
工具: ios-simulator/screenshot, 参数: {"output_path": "screenshot.png"}
更多工具和参数的详细用法,请参考项目仓库的 'README.md' 文件和源代码。
信息
分类
开发者工具