简介
Mac Developer Bridge 通过 MCP 把 ChatGPT 的推理能力接入真实 Mac 的完整执行环境,中间不引入第二个模型或 agent 循环。桥接本身不发起任何 OpenAI 模型调用:它暴露确定性的本地工具(shell、文件系统、PTY 会话、后台任务、已存储的 Codex 线程),ChatGPT 始终是 agent,Mac 是执行环境。项目有意明示其非沙箱化的完全访问安全模型,而不是把 shell 访问伪装成沙箱。
主要特性
- 通过
/bin/zsh -lc以登录 macOS 用户身份执行任意 shell 命令,刻意不维护命令白名单 - 真实 PTY 会话,让交互式 shell 与终端程序保持存活,而不是假装 stdin 是终端
- 分离式后台任务,带持久 stdout/stderr 日志、状态检查与进程组终止
- 不受限制的文件系统工具(读/写/追加/列目录/stat/复制/移动/chmod/符号链接/递归删除),并通过
git apply应用 unified diff - 基于只读
codex app-server方法的已存 Codex 线程发现与分页读取,绝不恢复线程或发起模型轮次 - 可选的后台 Chrome 自动化,通过受管的
MDB标签组操作真实登录配置文件,不抢占焦点
使用场景
- 找回已存的 Codex 线程,检查其对应仓库,然后从 ChatGPT 继续这项工作
- 由 ChatGPT 驱动运行 Mac 上已安装的测试、构建、Git、包管理器、数据库 CLI 与 AppleScript
- 让长时间运行的本地任务跨轮次存活,稍后检查日志
- 在登录态 Chrome 配置文件中后台操作已授权页面,用户同时继续手头工作
技术特点
- 传输层:OpenAI Secure MCP Tunnel(企业版用户),或由 Cloudflare Tunnel 将纯 HTTP 本地回环前端以 HTTPS 发布;菜单栏应用一键生成 ChatGPT 配置
- 安全姿态为 fail-closed:
bridge.mjs在每次工具调用前重读解锁文件,移除即拒绝下一次调用;本地 kill switch(scripts/disable.sh)停止前端、桥接、后台 Chrome native host、任务组、PTY 会话与联邦子 MCP server,并对其发出信号的目标逐一验证 - Strict 审批模式增加按站点的
chrome-background授权,在所有已连接 ChatGPT 会话间共享并带过期时间;默认 relaxed 模式与无限制 shell/文件访问所对应的操作者信任级别保持一致 - Chrome 路由是结构性的:所有经由 shell 触达 Chrome 的路径(AppleScript、JXA、直接启动、
openURL)一律以CHROME_BACKGROUND_REQUIRED拒绝,强制浏览器操作走chrome_*工具与自愈的MDB池(默认 8 个、上限 32 个标签,10 分钟空闲回收,容量目标只增不减) - 本地 JSONL 审计日志并提供
audit_tail工具;通过 macOS LaunchAgent 实现按用户持久化;要求 Node.js 18+ - Codex 历史工具只用只读方法——绝不调用
turn/start,读线程不会触发模型调用