iOS模拟器自动化服务

phantom-touch是一个iOS模拟器自动化服务,提供屏幕截图、元素检查、手势控制、应用管理以及可靠的React Native表单文本输入功能。

  • by hieudtr8
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 hieudtr8/phantom-touch

使用说明

👻 幻影触摸

用于iOS模拟器自动化的MCP服务器,具有与React Native兼容的基于剪贴板的文本输入。

幻影触摸 让AI代理完全控制iOS模拟器:屏幕截图、元素检查、手势、应用程序管理,最重要的是-- React Native表单中的可靠文本输入.

快速开始

克劳德桌面/光标

添加到MCP配置中:

{
  "mcpServers": {
    "phantom-touch": {
      "command": "npx",
      "args": ["-y", "phantom-touch"]
    }
  }
}

就是这样。没有克隆,没有建筑——只是 npx.

问题

每个现有的iOS MCP工具都无法填充React Native TextInput 组件是因为:

  • HID键盘事件不会触发 onChangeText
  • WebDriver代理 setValue 被React状态覆盖

解决方案

phantom-touch 使用a 剪贴板+粘贴 战略:

  1. simctl pbcopy → 设置模拟器剪贴板
  2. idb tap → 集中精力
  3. Cmd+V → 粘贴触发器 onChangeText ✅

16个MCP工具

模块 工具
模拟器 pt_list_simulators, pt_boot_simulator, pt_shutdown_simulator
应用 pt_launch_app, pt_terminate_app, pt_list_apps, pt_open_url
屏幕 pt_screenshot, pt_list_elements, pt_get_screen_size
手势 pt_tap, pt_swipe
输入 ⭐ pt_type_text, pt_press_button, pt_set_clipboard, pt_get_clipboard

先决条件

  • 安装了Xcode的macOS
  • iOS模拟器
  • 国际开发银行 (iOS开发桥): brew install idb-companion
  • Node.js 18+

用法示例

配置后,询问您的AI代理:

  • “截取模拟器的屏幕截图”
  • “列出屏幕上的所有UI元素”
  • 点击(200,500)处的“创建帐户”按钮
  • “类型”hello@example.com'进入电子邮件字段(200,450)”
  • “打开深层链接myapp://login"

文本输入策略

paste (默认,推荐)

使用剪贴板+Cmd+V。与React Native控制的TextInput配合使用。

pt_type_text(text: "Hello", x: 200, y: 400, strategy: "paste")

keyboard

使用HID键盘事件。更快,但可能会在React Native中失败。

pt_type_text(text: "Hello", x: 200, y: 400, strategy: "keyboard")

发展

git clone https://github.com/hieudtr8/phantom-touch.git
cd phantom-touch
npm install
npm run build
npm run dev   # Run in dev mode with tsx

许可证

麻省理工学院