MobileBuildMCP
让编码代理通过 MCP 或 CLI 直接驱动 Xcode 构建、模拟器与测试流程。
- Star 数
- ★ 6.5k
- 最近更新
- 3 天前
- License
- MIT
- 主语言
- TypeScript
- FA 评分
- 49/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台Codex · Claude Code
- 费用
- 免费,无需付费服务
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 使用 Cursor、Claude Code 或 Codex 的开发者在编写 iOS 代码后,希望代理自己触发模拟器构建并读取报错。
- 不适合
- 需要在 Linux 或 Windows 上构建 iOS/macOS 项目的团队
- Xcode 版本低于 16 或 macOS 低于 14.5 的机器
- 无法配置代码签名却要用真机工具的团队
- 源码审查
- 49/100 · 缺口较多
这个 Agent 能做什么,适合哪些场景?
MobileBuildMCP 是 Sentry 开源的一个 MCP 服务器兼命令行工具,面向在 iOS 和 macOS 项目上工作的 AI 编码代理。它以单个 npm/Homebrew 包发布,包含两种形态:用 mobilebuildmcp mcp 启动、供 MCP 客户端调用的服务器,以及直接在终端执行构建与测试的 CLI。工具围绕 xcodebuild 与模拟器展开,例如 simulator build 可按 scheme 和 project 路径构建,--build-for-testing 可产出可移植的 .xctestproducts,simulator test 则用这些产物运行测试。CLI 会为有状态操作(日志捕获、调试等)按工作区启动守护进程,并按需自动启动。运行边界明确:需要 macOS 14.5+、Xcode 16.x+,且真机工具依赖在 Xcode 中配置好代码签名。
它把 Xcode 的构建与测试能力包装成代理可调用的工具。通过 mobilebuildmcp mcp 启动 MCP 服务器,代理客户端即可调用同一批工具;通过 mobilebuildmcp tools 可列出全部可用工具。构建时执行 mobilebuildmcp simulator build --scheme MyApp --project-path ./MyApp.xcodeproj,用 --simulator-name 指定模拟器,用 --build-for-testing --test-products-path ./MyApp.xctestproducts 先生成可移植测试产物,再用 mobilebuildmcp simulator test --test-products-path ... --simulator-name ... 运行。它会请求 xcodebuild 跳过宏校验,以免使用 Swift Macros 的项目构建报错。mobilebuildmcp init 安装两个可选的 agent skill(MCP Skill 与 CLI Skill),用说明文件提示代理如何使用工具或导航 CLI。有状态操作(日志捕获、调试)由按工作区自动启动的守护进程承载。运行时错误遥测通过 Sentry 上报,文档提供退出方式。
- 使用 Cursor、Claude Code 或 Codex 的开发者在编写 iOS 代码后,希望代理自己触发模拟器构建并读取报错。
- CI 之外的本地验证:先用
--build-for-testing生成.xctestproducts,再在指定模拟器上重复运行测试。 - 团队把同一套工具同时接进 MCP 客户端和 shell 脚本,避免维护两份构建命令。
- 维护使用 Swift Macros 的项目、又常被 xcodebuild 宏校验错误打断的开发者。
- 需要给代理补充明确工具使用说明的团队,通过
mobilebuildmcp init安装 MCP Skill 或 CLI Skill。
如何安装或部署这个 Agent?
任选一种方式,两种方式都会同时得到 CLI 与 MCP 服务器。
Homebrew:
brew tap getsentry/xcodebuildmcp
brew install mobilebuildmcpnpm(需要 Node.js 18+):
npm install -g mobilebuildmcp@latest安装后验证:
mobilebuildmcp --help运行环境要求:macOS 14.5 或更高、Xcode 16.x 或更高;Homebrew 安装不需要 Node.js。真机相关工具需要先在 Xcode 中配置代码签名。
如何使用这个 Agent?
安装后,可以在不全局安装的情况下按需启动 MCP 服务器:
npx -y mobilebuildmcp@latest mcp或使用已安装的全局命令:
mobilebuildmcp mcp把 MCP 客户端连接到该服务器后,可查看工具列表并执行模拟器构建:
mobilebuildmcp tools
mobilebuildmcp simulator build --scheme MyApp --project-path ./MyApp.xcodeproj先生成可移植测试产物,再单独运行测试:
mobilebuildmcp simulator build --scheme MyApp --project-path ./MyApp.xcodeproj --simulator-name "iPhone 17" --build-for-testing --test-products-path ./MyApp.xctestproducts
mobilebuildmcp simulator test --test-products-path ./MyApp.xctestproducts --simulator-name "iPhone 17"为代理安装可选 skill:
mobilebuildmcp init检查并就地升级:
mobilebuildmcp upgrade --check
mobilebuildmcp upgrade --yes这个 Agent 有哪些优点和局限?
- 单一包同时提供 CLI 与 MCP 服务器两种形态,代理和终端脚本可共用同一套工具实现。
- 提供
--build-for-testing与--test-products-path,能先产出可移植的.xctestproducts再分次运行测试。 - 主动让 xcodebuild 跳过宏校验,规避使用 Swift Macros 的项目构建失败。
- 附带 MCP Skill 与 CLI Skill 两个可选 agent skill,帮助代理正确调用工具而非自行猜测。
- 同时支持 Homebrew 与 npm 安装,且 Homebrew 路径不要求 Node.js。
- 硬性平台约束:必须 macOS 14.5+ 与 Xcode 16.x+,无法在 Linux 或 Windows 上构建。
- 真机相关工具依赖在 Xcode 中预先配置代码签名,未配置时相关功能不可用。
- 有状态操作依赖按工作区自动启动的守护进程,部署与排障时需要额外考虑这一进程。
- 内置 Sentry 运行时错误遥测,注重数据流向的团队需要按文档关闭。
- 文档正文位于独立的 xcodebuildmcp.com 仓库,排障与配置细节需要跳转查阅。
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| MobileBuildMCP 当前 | 49 · 缺口较多 | 命令行工具免费 | ★ 6.5k | 3 天前 | TypeScript | Codex · Claude Code |
| CC Workflow Studio | 50 · 缺口较多 | IDE 插件免费 + 模型费 | ★ 5.4k | 14 天前 | TypeScript | ChatGPT · Codex · Claude Code |
| Microsoft Learn MCP Server | 43 · 缺口较多 | MCP 服务器免费 | ★ 1.9k | 1 个月前 | TypeScript | ChatGPT · Codex · Claude Code · Claude.ai |
| FastAgent | 46 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 3.9k | 今天 | Python | Codex · OpenAI API · Claude API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
README 说明工具会调用 xcodebuild、模拟器、设备与守护进程,属于对本地工程有实际副作用的操作,但仓库未提供权限最小化设计、逐操作确认机制或回滚说明;隐私章节仅指向外部文档,且默认启用 Sentry 遥测,数据流透明度有限。依赖安全方面有 license:check 白名单脚本与 CI 校验,属可核实的正向证据,故给 2;其余项多为断言或缺失,扣分明显。
package.json 明确声明 Node>=18、macOS 14.5、Xcode 16 等依赖,CI 覆盖 build/lint/typecheck/test/schema 校验,自洽性较好;但失败信息与错误处理在可见文件中几乎没有体现,仅能推断,故 failure_messages 给 1。
README 清楚区分 CLI 与 MCP server 两种模式,并给出 Cursor/Claude Code/Codex 等客户端接入方式,场景适配较好;但工具能力边界、触发条件与选择逻辑未在仓库内说明,依赖外部文档,故 capability_boundaries 与 trigger_precision 偏低。
安装说明(Homebrew、npm、npx)与示例命令较完整,LICENSE 为完整 MIT 文本,给 3;但缺少 CHANGELOG、版本策略说明,维护责任仅靠 getsentry 品牌暗示而发布者未经验证,known_limitations 仅零散提及(宏校验跳过、设备签名),信息架构依赖外部站点,故多项给 1-2。
CLI 示例(build、test、upgrade)输出可用性较好,对 iOS/macOS 代理工作有明确边际价值;但成本收益缺乏基准数据支撑,bench 脚本存在但结果未在仓库呈现,故 cost_benefit 给 1。
README 大量声明(AgentAudit Safe 徽章、CI 徽章、DeepWiki)指向外部资源,仓库内无法交叉验证;事实与推断分离不足,遥测、签名等关键行为仅以链接形式断言,故各项给 1。
- 默认启用 Sentry 运行时遥测,隐私细节仅在外部文档,需自行确认并考虑退出。
- 工具会执行 xcodebuild、模拟器与设备操作,可能修改本地工程与构建产物,仓库未提供逐操作确认或回滚机制。
- 发布者身份未经验证,README 中的 AgentAudit Safe 徽章等安全声明无法在仓库内核实。
- 缺少 CHANGELOG 与版本策略,升级行为(upgrade --yes)需谨慎评估。
常见问题
使用它需要付费吗?
它会不会把我的项目数据发出去?
代理必须通过 MCP 才能用吗?
mobilebuildmcp simulator build 等命令;mobilebuildmcp init 会安装 MCP Skill 或 CLI Skill 来提示代理如何操作。为什么构建前要先生成 .xctestproducts?
--build-for-testing 把构建与运行拆开,测试产物可以在指定模拟器上多次运行 simulator test,无须每次重新构建。