项目简介

本项目是一个基于 Model Context Protocol (MCP) 的服务器实现,它充当大型语言模型 (LLM) 和 iOS 模拟器之间的桥梁。通过此服务器,你可以使用自然语言命令来控制 iOS 模拟器,执行各种操作,例如应用安装、UI 交互、屏幕截图、日志获取等,从而实现 iOS 应用的自动化测试和开发流程。

主要功能点

  • 模拟器控制:创建和管理模拟器会话,启动、关闭、列出和聚焦模拟器。
  • 应用管理:安装、启动、终止和卸载 iOS 应用程序,检查应用安装状态。
  • UI 交互:执行 Tap、Swipe、按钮按压和文本输入等 UI 交互操作。
  • 辅助功能:访问和描述模拟器 UI 中的辅助功能元素,用于 UI 测试。
  • 捕获与日志:截取屏幕截图、录制屏幕视频、获取系统和应用日志。
  • 调试:启动和停止应用调试会话,获取调试状态。
  • 崩溃日志:列出、查看和删除崩溃日志。
  • 高级功能:模拟位置、注入媒体、处理 URL Scheme、管理联系人数据库和 Keychain 等。

安装步骤

  1. 克隆仓库

    git clone https://github.com/arturonaredo/mcp-server-simulator-ios-idb.git
    cd mcp-server-simulator-ios-idb
  2. 创建并激活 Python 虚拟环境

    python3 -m venv venv
    source venv/bin/activate  # 在 Unix/macOS 系统中
  3. 安装依赖

    npm install
  4. 构建项目

    npm run build
  5. 启动服务器

    npm start

    启动命令会自动检查 macOS 环境,并通过 Homebrew 安装 'idb-companion',通过 pip 在虚拟环境中安装 'fb-idb'。

    注意:请确保在使用服务器时虚拟环境处于激活状态。如果关闭终端后重新打开,需要重新激活虚拟环境:'source venv/bin/activate',然后再运行 'npm start'。

服务器配置

要将此 MCP 服务器与 MCP 客户端(如 Claude)集成,您需要在客户端的 MCP 设置中添加服务器配置。以下是一个示例配置,您需要根据实际的项目路径进行调整:

{
  "mcpServers": {
    "ios-simulator": {
      "command": "node",
      "args": ["/path/to/mcp-server-simulator-ios-idb/dist/index.js"]
    }
  }
}

配置参数说明

  • 'server name': 'ios-simulator' (服务器名称,客户端用此名称来引用服务器)
  • 'command': 'node' (启动服务器的命令,这里使用 Node.js)
  • 'args': '["/path/to/mcp-server-simulator-ios-idb/dist/index.js"]' (启动命令的参数,指向服务器入口文件 'index.js' 的编译后路径。请将 '/path/to/mcp-server-simulator-ios-idb' 替换为您的仓库实际路径)

基本使用方法

配置完成后,LLM 客户端可以通过发送 JSON-RPC 请求与 MCP 服务器通信,并使用自然语言指令来控制 iOS 模拟器。例如,您可以发送以下指令:

  • 'create a simulator session with iPhone 14' (创建一个 iPhone 14 的模拟器会话)
  • 'install app /path/to/my-app.ipa' (安装应用)
  • 'launch app com.example.myapp' (启动应用)
  • 'tap at 100, 200' (点击坐标 (100, 200))
  • 'take a screenshot' (截取屏幕截图)

更多支持的命令,请参考仓库 README.md 文档中的 "Supported Commands" 章节。

信息

分类

开发者工具