mcpField
M
mcp-idb

mcp-idb

本地服务
github.com/noahlozevski开发工具786 周前更新

关于 mcp-idb

mcp-idb 将 MCP 客户端接入 Facebook 的 iOS Development Bridge(idb),用于自动化管理 iOS 设备和执行测试,适合设备交互、截图及应用安装等工作流。

主要功能

  1. 01自动管理 iOS 设备
  2. 02通过 idb 执行测试
  3. 03自动化屏幕交互
  4. 04截图测试
  5. 05安装和移除应用

适用场景

  1. 01自动化开发 iOS 测试
  2. 02为测试捕获截图
  3. 03点击 iOS 屏幕控件
  4. 04安装或移除 iOS 应用

MCP 相关

向 MCP 客户端提供基于 idb 的 iOS 设备管理和测试执行能力。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"idb": {
"command": "npx",
"args": [
"-y",
"@noahlozevski/mcp-idb"
]
}
}
}
启动命令npx -y @noahlozevski/mcp-idb

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@noahlozevski/mcp-idb

工具

1

收录的工具列表 · 更新于 3 周前

参数类型必填说明
commandstring是要执行的 IDB 命令(例如,list-apps、screenshot 等)。 - 如需查看完整命令列表,请运行 'idb help'。 - 如需查看特定命令的帮助,请运行 'idb <command> --help'。 与设备(模拟器)交互: 重要:在分发 UI 操作之前,务必先尝试使用 'idb ui describe-all' 命令识别按钮。 如果不起作用,请尝试使用以下命令: - **轻点** - **命令:** 'idb ui tap X Y [--duration DURATION]' - **说明:** 在给定的屏幕坐标处模拟轻点。也可以设置轻点时长。 - **滑动** - **命令:** 'idb ui swipe X_START Y_START X_END Y_END [--delta STEP_SIZE]' - **说明:** 模拟从起点到终点的滑动手势。默认情况下,滑动以 10 个点为步长;使用 '--delta' 可更改步长。 - **按下按钮** - **命令:** 'idb ui button {APPLE_PAY, HOME, LOCK, SIDE_BUTTON, SIRI} [--duration DURATION]' - **说明:** 模拟按下指定的硬件按钮。可以使用 '--duration' 标志调整按下时长。 - **输入文本** - **命令:** 'idb ui text "some text"' - **说明:** 将提供的文本字符串输入目标设备。 - **按键事件** - **单个按键:** 'idb ui key KEYCODE [--duration DURATION]' - **按键序列:** 'idb ui key-sequence KEYCODE1 KEYCODE2 ...' - **说明:** 模拟按键事件。单个按键命令用于按下一个键(可选设置时长),按键序列命令用于依次触发多个按键事件。 **idb ui describe-all 中的 Frame 和坐标:** 'idb ui describe-all' 的输出会提供每个 UI 元素的详细布局信息。每个元素都包含一个 'frame' 对象,其中包括: - **x 和 y:** 元素左上角相对于设备屏幕的坐标。 - **width 和 height:** 元素的尺寸。 此外,'AXFrame' 字符串会以人类可读的格式呈现这些数据,例如 '{{x, y}, {width, height}}'。 这些值可用于确定元素的位置,通常可以计算其中心点(x + width/2, y + height/2)以进行精确交互。例如,在示例输出中,"More, tab, 4 of 4" 按钮的 frame 起点为 x=330、y=876.33,宽度为 110,高度为 45.67。轻点命令 'idb ui tap 375 880'(目标位置接近元素中心)即可成功触发该按钮。
optionsarray否IDB 命令的可选参数

详细介绍

mcp-idb

Facebook 的 iOS Development Bridge(idb)MCP 服务集成。

概述

此软件包提供 MCP(Model Context Protocol) 与 Facebook 的 idb(iOS Development Bridge) 之间的集成,可通过 MCP 自动管理 iOS 设备并执行测试。

启动服务:

npx -y @noahlozevski/mcp-idb

前提条件

安装 idb

安装 idb:

brew tap facebook/fb
brew install idb-companion

# verify installation
idb

如需了解更多详情,请访问 idb 官方 GitHub 仓库。

配置

设置 mcp-config.json

若要在 MCP 配置中使用 idb,请将以下内容添加到 mcp-config.json:

{
  "mcpServers": {
    "idb": {
      "command": "npx",
      "args": ["-y", "@noahlozevski/idb"]
    }
  }
}

示例用例包括:

  • 自动化测试开发
  • 截图测试
  • 自动化交互(“点击屏幕上的主屏幕按钮”)
  • 安装 / 移除应用

开发

代码格式化

本项目使用 Prettier 格式化代码。若要格式化代码:

npm run format        # Format all files

格式化配置位于项目根目录的 .prettierrc 中。

故障排除

常见问题及解决方案:

  1. 未找到 idb companion:确保已通过 Homebrew 安装 idb-companion
  2. 未检测到设备:确保 iOS 设备:
    • 已通过 USB 连接
    • 已在电脑上设为可信设备
    • 已启用开发者模式

贡献

更改此软件包时,请遵循 MCP 标准贡献指南。

许可证

本项目是 Mobile Control Plane(MCP)的一部分,并遵循 Amazon 的内部许可政策。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。