使用说明
mcp stdio代理
从Docker(DevContainer)到macOS主机的Xcode MCP服务器(xcrun mcpbridge)的TCP↔stdio桥。
仅Python标准库工作。无附加依赖关系。
体系结构
[DevContainer] [Host macOS]
Claude Code xcode_mcp_bridge.py
└─ nc host.docker.internal ──► 127.0.0.1:8080
8080 (stdio) └─ spawn xcrun mcpbridge (per connection)
└─ XPC ──► Xcode
前提条件
- macOS+Xcode 26.3以降
- 项目設定 → 智能→ 模型上下文协议→ 打开Xcode Tools
- 启动Xcode并打开目标项目
xcrun mcpbridge --help转动
安装,安装
1.桥接启动(手动)
python3 xcode_mcp_bridge.py
2.疏通确认
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}' \
| nc 127.0.0.1 8080
初次连接时会显示Xcode的Allow对话框,所以允许。
3.LaunchAgent驻留(可选)
launchagent/com.user.xcode-mcp-bridge.plist 中的 USERNAME 用自己的用户名替换并复制:
sed "s/USERNAME/$(whoami)/g" launchagent/com.user.xcode-mcp-bridge.plist \
> ~/Library/LaunchAgents/com.user.xcode-mcp-bridge.plist
launchctl load ~/Library/LaunchAgents/com.user.xcode-mcp-bridge.plist
4.DevContainer侧的设置
在容器中 netcat-openbsd 如果不需要 apt-get install -y netcat-openbsd)。
.mcp.json 添加到:
{
"mcpServers": {
"xcode": {
"command": "nc",
"args": ["host.docker.internal", "8080"]
}
}
}
故障排除
| 症状 | 原因候補 |
|---|---|
nc: getaddrinfo: Name or service not known |
host.docker.internal 未解决。--add-host=host.docker.internal:host-gateway 安装,安装 |
| 可以连接,但工具列表为空 | |
| 死机,冻结,冻结,冻结 | |
| |每次重新连接时都会出现Allow|规格(新连接=新进程)| |
许可证
麻省理工学院
