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实例
构建并运行
应用程序(推荐)
- 打开
XcodeBridge/XcodeBridge.xcodeproj. - 选择
XcodeBridge方案。 - 从Xcode运行。
从菜单栏额外:
Start Bridge/Stop BridgeCopy MCP Command(嵌入副本xcbridge二进制路径)Open Log Window
使用 Copy MCP Command 每次重建后,由于应用程序包路径可能会随着DerivedData而改变。
CLI直接目标
构建CLI方案:
xcodebuild -project XcodeBridge/XcodeBridge.xcodeproj -scheme xcbridge -configuration Debug buildCLI使用情况
可执行文件是 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_outserver_in/server_out- 连接和超时事件
桥发出 MUXLOG stderr上的事件,应用程序解析并在日志UI中呈现。
备注
- 该项目目前供当地/个人使用。
- 该网桥基于本地套接字,不实现强多用户身份验证控制。
- 使用后端桥时保持Xcode运行。
