详细介绍
iOS 模拟器 MCP 服务器是一款基于 Model Context Protocol (MCP) 的工具,用于与 iOS 模拟器进行交互。它支持获取模拟器信息、控制 UI 元素、执行 UI 操作(如点击、滑动、输入文本)以及截取屏幕,适用于开发者和测试人员进行快速 UI 测试和验证。
核心功能
该工具提供了多种核心功能,包括:
- 获取当前运行的模拟器 ID:获取当前正在运行的 iOS 模拟器的唯一标识符。
- 描述屏幕上的 UI 元素:列出屏幕上所有可访问性元素及其属性。
- 点击屏幕坐标:模拟点击屏幕上的指定位置。
- 输入文本:在文本输入框中输入指定的文本。
- 滑动屏幕:从一个坐标滑动到另一个坐标。
- 截取屏幕:保存当前模拟器屏幕截图。
安装方法
安装 iOS 模拟器 MCP 服务器需要 Node.js 和 macOS 环境。可以通过以下方式安装:
npm install -g ios-simulator-mcp此外,还可以通过本地构建的方式进行安装:
git clone https://github.com/joshuayoes/ios-simulator-mcp.git
cd ios-simulator-mcp
npm install
npm run build如果使用 Cursor 或 Claude Code 等 MCP 客户端,可以通过以下命令添加服务器:
claude mcp add ios-simulator --command node --args "path/to/server"使用方法
安装完成后,可以通过 MCP 客户端调用其功能,例如验证 UI、输入文本或截取屏幕。
const { SimulatorMcpServer } = require('ios-simulator-mcp');
// 创建服务器实例
const server = new SimulatorMcpServer({
port: 3001,
mode: 'development',
logging: true
});
// 启动服务器
server.start().then(() => {
console.log('服务器已启动并在端口 3001 上监听');
}).catch(err => {
console.error('启动服务器时出错:', err);
});以下是一些常见的使用示例:
- 验证所有 UI 元素:检查屏幕上的所有可访问性元素。
- 点击屏幕坐标:模拟点击指定位置。
- 输入文本:在文本框中输入指定内容。
- 截取屏幕:保存当前屏幕截图。
使用示例
以下是几个具体的使用示例:
verify-all-elements-on-screen()该命令用于检查屏幕上的所有可访问性元素。
tap(x=250, y=400)该命令用于点击屏幕坐标 (250, 400)。
input-text("Hello World")该命令用于在文本输入框中输入 "Hello World"。
take-screenshot()该命令用于截取当前模拟器屏幕。
配置说明
可以通过环境变量来配置服务器的行为:
- SIMULATOR_MCP_MODE:设置服务器运行模式(开发/生产),默认值为开发。
- SIMULATOR_MCP_LOG:启用详细日志记录,默认值为禁用。
- SIMULATOR_MCP_PORT:定义服务器监听端口,默认值为 3001。
使用场景
该工具适用于以下场景:
- 开发者在开发 iOS 应用时,快速验证 UI 行为。
- 测试人员进行自动化 UI 测试,提高测试效率。
- 需要与 iOS 模拟器进行交互的自动化脚本开发。
注意事项
使用该工具时需注意以下事项:
- 仅支持 macOS 平台。
- 需要安装 Xcode 和 iOS 模拟器环境。
- 某些高级功能可能需要额外配置。
通过以上功能和配置,iOS 模拟器 MCP 服务器为开发者和测试人员提供了一个强大、灵活的工具,用于与 iOS 模拟器进行交互和测试。