Xcode桥接工具

XcodeBridge是一个macOS菜单栏应用及CLI工具,用于管理Xcode的MCP桥接连接,避免重复的权限弹窗,支持多客户端连接和调试。

  • by zac
  • Swift
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 zac/XcodeBridge

使用说明

XcodeBridge

XcodeBridge 是macOS菜单栏应用程序和CLI(xcbridge)它位于Xcode的MCP桥前面(xcrun mcpbridge).

目的

此项目的存在是为了解决MCP连接的重复Xcode权限弹出窗口。

在实践中,Xcode可以提示每个连接过程进行审批。这成为Codex应用程序等工具的阻碍,可能会产生许多 codex CLI在一个会话中处理。MCP访问可能会暂停,直到每个流程都获得批准。

XcodeBridge 保持一个长时间运行的网桥进程连接到Xcode MCP,然后让其他本地客户端通过该网桥连接。

它提供:

  • MCP客户端的持久本地Unix套接字
  • 与Xcode MCP的一个长时间运行的后端连接
  • 跨多个本地客户端的JSON-RPC多路复用
  • 实时请求/响应调试的日志窗口
  • 应用程序包中的嵌入式CLI二进制文件

项目布局

  • XcodeBridge/XcodeBridge:swiftui菜单栏应用程序
  • XcodeBridge/xcbridge:CLI源
  • XcodeBridge/XcodeBridge.xcodeproj:Xcode项目

需求

  • macOS
  • Xcode 26.3+已安装
  • 使用桥后端时,至少有一个正在运行的Xcode实例

构建并运行

应用程序(推荐)

  1. 打开 XcodeBridge/XcodeBridge.xcodeproj.
  2. 选择 XcodeBridge 方案。
  3. 从Xcode运行。

从菜单栏额外:

  • Start Bridge / Stop Bridge
  • Copy MCP Command (嵌入副本 xcbridge 二进制路径)
  • Open Log Window

使用 Copy MCP Command 每次重建后,由于应用程序包路径可能会随着DerivedData而改变。

CLI直接目标

构建CLI方案:

xcodebuild -project XcodeBridge/XcodeBridge.xcodeproj -scheme xcbridge -configuration Debug build

CLI使用情况

可执行文件是 xcbridge。它支持两种模式:

  • serve:启动本地套接字服务器并启动 xcrun mcpbridge 作为后端
  • connect:将当前stdin/stdout桥接到本地套接字

示例:

# Start server on default socket: ~/.xcode-bridge.sock
xcbridge serve

# Connect stdin/stdout to running bridge
xcbridge connect

# Use a custom socket
xcbridge serve --socket ~/tmp/xcode-bridge.sock
xcbridge connect --socket ~/tmp/xcode-bridge.sock

环境变量

  • XCODE_BRIDGE_SOCKET:覆盖套接字路径

MCP客户端集成

使用复制的路径 Copy MCP Command,并将MCP客户端命令指向 connect (不是 xcrun mcpbridge 直接):

{
  "command": "/path/to/XcodeBridge.app/Contents/Resources/xcbridge",
  "args": ["connect"]
}

如果您的客户端需要一个socket命令,请使用相同的命令 connect 模式和let xcbridge 处理运输细节。

日志记录和调试

Open Log Window 展示现场活动,包括:

  • client_in / client_out
  • server_in / server_out
  • 连接和超时事件

桥发出 MUXLOG stderr上的事件,应用程序解析并在日志UI中呈现。

备注

  • 该项目目前供当地/个人使用。
  • 该网桥基于本地套接字,不实现强多用户身份验证控制。
  • 使用后端桥时保持Xcode运行。