项目简介

本项目 '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

  1. 打开终端,编辑 Cursor MCP 配置文件:

    cursor ~/.cursor/mcp.json
  2. 在 'mcpServers' 中添加 iOS 模拟器服务器配置:

    {
      "mcpServers": {
        "ios-simulator": {
          "command": "npx",
          "args": ["-y", "ios-simulator-mcp"]
        }
      }
    }
  3. 重启 Cursor。

本地开发方式:

  1. 克隆仓库到本地:

    git clone https://github.com/joshuayoes/ios-simulator-mcp
    cd ios-simulator-mcp
  2. 安装依赖:

    npm install
  3. 构建项目:

    npm run build
  4. 编辑 Cursor MCP 配置文件:

    cursor ~/.cursor/mcp.json
  5. 在 'mcpServers' 中添加 iOS 模拟器服务器配置(请将 '/path/to/your/ios-simulator-mcp' 替换为你的实际仓库路径):

    {
      "mcpServers": {
        "ios-simulator": {
          "command": "node",
          "args": ["/path/to/your/ios-simulator-mcp/build/index.js"]
        }
      }
    }
  6. 重启 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' 文件和源代码。

信息

分类

开发者工具