ProBridge
ProBridge

开源本地 MCP 桥接器,用于 ChatGPT desktop Quick Chat + GPT-5.6 Pro。
Codex、OpenCode、Claude 或类似 MCP 主机中的编码代理会调用 ProBridge。ProBridge 将任务加入队列,打开一个已验证的 ChatGPT Quick Chat,并发送提示词。在该 ChatGPT 会话中,LocalAnt / DevSpace 是连接到你本地 Mac 和当前工作区的连接器。
使用 ChatGPT Pro 配额,而非 Codex 模型配额。无需模型 API 密钥。
当前目标平台:macOS。 尚不支持 Windows 和 Linux。欢迎贡献,为这些平台添加真正的驱动程序。
它是如何协同工作的
Codex / OpenCode / Claude
|
| MCP tool call
v
ProBridge
prompt · queue · status · follow-up
|
| drives ChatGPT desktop Quick Chat
v
ChatGPT Quick Chat (GPT-5.6 Pro)
|
| LocalAnt / DevSpace inside ChatGPT
v
authenticated device tunnel
|
v
local Mac / active workspace调用代理只需要三个工具:
gpt56_pro_start({ prompt })
gpt56_pro_status({ jobId })
gpt56_pro_followup({ jobId, prompt })start 会立即返回一个 jobId。轮询 status。仅在同一个 Quick Chat 轮次完成后使用 follow-up。
Related MCP server: mcacp
本仓库新增了什么
LocalAnt / DevSpace 让 ChatGPT 可以访问你的 Mac。 ProBridge 不会替代该连接器,也无法替你安装它。
ProBridge 为你的编码代理提供了通往 ChatGPT Pro 的桥梁。 MCP 主机向 ProBridge 发送提示词;ProBridge 将其加入队列,驱动 Quick Chat,并通过 MCP 返回任务状态。这就是为什么当你已经希望 ChatGPT Pro 执行本地工作,但又想让 Codex、OpenCode、Claude 或其他代理将其作为子代理调用时,本仓库是有意义的。
环境要求
macOS
Node 20+
Xcode 命令行工具(
swiftc)已使用 Pro 登录的 ChatGPT desktop
为编译后的
bin/ax-driver授予辅助功能权限
LocalAnt / DevSpace 赋予 ChatGPT Pro 在机器上的操作能力,而 ProBridge 则让其他代理可以向该 ChatGPT 会话发送工作。
设置 — 两个必需部分
1. 先设置 ChatGPT 的本地连接器
ProBridge 需要 ChatGPT 已经拥有一个可以访问你本地 Mac 的连接器。在安装 ProBridge 之前,请选择一个连接器并完成其上游设置:
LocalAnt(经过测试的路径): 按照 LocalAnt 的设置指南 操作。快速入门如下:
npx -y localant setup
localant tools profile codinglocalant setup 会打印你已认证的 MCP 端点。在 ChatGPT desktop 中,进入 设置 → 应用与连接器,启用开发者模式,选择连接器 → 创建,粘贴该 MCP 端点,选择身份验证:无,并将连接器命名为 LocalAnt。请根据你的机器情况,保持合适的 LocalAnt 本地审批与安全设置。
DevSpace: 按照 Waishnav/devspace 项目的说明,将其本地环境连接到 ChatGPT。
在继续之前,打开一个 ChatGPT Quick Chat,验证所选连接器能否读取一个无害的本地项目文件。这是 ChatGPT 端的独立设置;仅安装 ProBridge 不会让 ChatGPT 访问你的 Mac。
2. 在 Mac 上安装 ProBridge
git clone https://github.com/HAMZADEMIR33412005/probridge.git
cd probridge
node scripts/build-ax.mjs
node scripts/install.mjs
node scripts/doctor.mjs如有需要,install.mjs 会创建 ~/.codex/config.toml,写入 ProBridge MCP 条目,并在现有配置发生变化时生成带时间戳的备份。然后,如果 macOS 有提示,请为 bin/ax-driver 授予辅助功能权限,保持 ChatGPT desktop 打开,并开启一个新的 Codex 对话。
它不会设置 cwd;Codex 应从你已经打开的项目中启动服务器。
用于 Codex 的 MCP
自动:
node scripts/install.mjs手动:将 examples/codex.config.toml 复制到 ~/.codex/config.toml,并替换服务器绝对路径。
注册的服务器名称是 probridge。在任何更新之后,请开启一个新的 Codex 对话,以便重新加载 MCP 进程和守护进程协议。
用于 Claude Code / OpenCode / 其他主机的 MCP
将 stdio MCP 服务器指向此检出目录:
{
"mcpServers": {
"probridge": {
"command": "/Applications/ChatGPT.app/Contents/Resources/cua_node/bin/node",
"args": ["/ABS/PATH/TO/probridge/src/server.mjs"]
}
}
}参见 examples/claude-code.mcp.json 和 examples/opencode.json。如果 ChatGPT 自带的 Node 缺失,任何 Node 20+ 二进制文件都可以使用。
MCP 主机必须从项目工作区启动服务器,或者只提供一个 file:// 根目录。ProBridge 会拒绝 home、Desktop、Documents 以及类似的范围过大的文件夹。
使用方法
从项目工作区中的代理执行:
gpt56_pro_start({
prompt: "Inspect the failing tests, fix the root cause, run focused tests, and report changed files."
})轮询:
gpt56_pro_status({ jobId: "pro_..." })在同一个 Quick Chat 完成后继续:
gpt56_pro_followup({
jobId: "pro_...",
prompt: "Now implement the review findings."
})任务会排队。一旦前一个提示词被确认已提交,就可以发送第二个 New chat。后续消息会保持在同一个对话中。
状态存在于两个位置:
~/.chatgpt-pro-subagent/— 守护进程的权威状态、队列和锁<workspace>/.chatgpt-pro-jobs/<jobId>.md— ChatGPT 通过 LocalAnt / DevSpace 写入的协作控制文件
相关项目
平台支持
平台 | 状态 |
macOS | 受支持。原生辅助功能驱动程序。 |
Windows | 不受支持。需要不同的 UI 驱动程序。 |
Linux | 不受支持。需要不同的 UI 驱动程序。 |
MCP 服务器、队列和控制文件协议与操作系统无关。其他平台缺失的只是一个可信的 src/native/ax-driver.swift 替代品。
安全
ProBridge 驱动你已经登录的 ChatGPT 应用,然后 ChatGPT 通过 LocalAnt / DevSpace 操作工作区。请将其视为同一用户的本地执行,而非沙箱。
~/.chatgpt-pro-subagent 下的运行时文件是私有的(0700 / 0600)。工作区任务文件在可能的情况下会通过 .git/info/exclude 从 git 中排除。范围过大的个人文件夹会被拒绝作为工作区。
开发
npm test
npm run build:ax
node scripts/doctor.mjs许可证
MIT
Available Tools
3 toolsgpt56_pro_followupA
Queue a follow-up in the verified same Quick Chat thread. The target must be the latest completed round and must have a captured chat title. Returns a child jobId; poll gpt56_pro_status.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | Latest completed job id in the Quick Chat thread. | |
| prompt | Yes | The follow-up task to send into that verified conversation. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and it discloses key behavior: the operation is queued (non-blocking), returns a child jobId, and requires verification. It also tells the agent the next step (poll status). It stops short of describing error/failure behavior, but the core behavioral contract is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and target, with the second sentence covering the return and polling behavior. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with no output schema, the description supplies the preconditions, the return value, and the follow-up polling action. It is slightly thin on failure/error conditions, but complete enough for an agent to invoke and process the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both jobId and prompt are already documented. The description restates the recency constraint for jobId ('latest completed round') and frames prompt as a follow-up task, reinforcing but not adding meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise action (queue a follow-up) and a specific resource (verified Quick Chat thread), clearly differentiated from siblings by emphasizing the same thread and returning a child jobId. It also names the polling sibling, so an agent can distinguish from gpt56_pro_start and gpt56_pro_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit preconditions: the target must be the latest completed round and must have a captured chat title, and directs the agent to poll gpt56_pro_status. It does not explicitly name gpt56_pro_start as the alternative for new threads, but the phrase 'follow-up in the verified same Quick Chat thread' strongly implies it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gpt56_pro_startA
Queue one verified GPT-5.6 Sol / Effort Pro Quick Chat sub-agent job for this MCP workspace. Returns immediately with a jobId. The local daemon serializes full job execution, verifies the UI send, and keeps authoritative lifecycle state outside the workspace. Poll gpt56_pro_status.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | The complete task for the LocalAnt / DevSpace-capable GPT-5.6 Pro sub-agent. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and discloses key behavior: immediate return with jobId, daemon serialization, UI verification, and external lifecycle state. It does not mention failure modes or idempotency, but the async nature and polling requirement are clearly conveyed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences each serve a distinct purpose: stating the action, describing the return behavior, and explaining daemon internals and next step. The key information is front-loaded, and there is no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter async queue tool with no output schema, the description covers what to send, what is returned (jobId), and what to do next (poll status). It does not explicitly say how to use the jobId with siblings, but that is a minor inferable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the single 'prompt' parameter with a full description (100% coverage), so the baseline is 3. The tool description adds no new parameter-specific detail beyond the schema's own description, merely restating that the prompt is the task.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb 'Queue' and a specific resource 'GPT-5.6 sub-agent job', making the tool's role clear. The phrase 'for this MCP workspace' scopes it further, and the sibling tools (status, followup) are implied to have different purposes. The description distinguishes this as the start action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context that this queues a job and returns immediately, and instructs to poll gpt56_pro_status afterward. However, it does not explicitly compare to the followup sibling or state when not to use this tool, so usage is more implied than fully specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gpt56_pro_statusA
Read authoritative daemon state and the latest validated cooperative control-file report for a job in this MCP workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | Job id returned by gpt56_pro_start or gpt56_pro_followup. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It signals this is a read operation (non-mutating, safe to call). However, terms like 'authoritative daemon state' and 'cooperative control-file report' are unexplained jargon that obscure the actual behavior and return semantics. The description gives hints (read-only, latest/validated data) but doesn't disclose what an agent will actually receive or whether repeated calls are safe.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler words, front-loading the key verb 'Read' and specifying the resource. The structure is efficient — a busy agent can extract the action quickly. Points are deducted only because the dense, jargony phrasing ('authoritative daemon state', 'validated cooperative control-file report') achieves brevity at the expense of immediate clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a status-checking tool with no output schema and no annotations, the description carries significant responsibility, and it's mostly adequate: it conveys read-only semantics and a job-scoped scope. However, it doesn't clarify what an agent will do with the output (e.g., does it return a job state like pending/running/completed?) or how 'daemon state' differs from the 'control-file report.' The existence of siblings suggests a workflow (start → status → followup), but the description doesn't articulate where the boundaries lie.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 with no additional parameter info needed. The description's phrase 'for a job in this MCP workspace' loosely references the job context, but the schema already documents that jobId comes from gpt56_pro_start or gpt56_pro_followup. The description adds no meaning beyond what the schema provides, which is acceptable given full coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Read') and identifies a concrete resource ('authoritative daemon state and the latest validated cooperative control-file report') scoped to a job in the MCP workspace. It clearly distinguishes from siblings: start and followup are different operations, so an agent would not confuse this with them. The phrase 'in this MCP workspace' adds a scoping qualifier that reduces over-flagging as a general system status tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context: check status of a job in the MCP workspace, presumably after gpt56_pro_start or gpt56_pro_followup. However, there's no explicit guidance on when to prefer this tool over siblings, when polling is appropriate, or what conditions would call for gpt56_pro_followup instead. The context is implied by the workflow rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
v1.2.0- First observed
gpt56_pro_followup - First observed
gpt56_pro_start - First observed
gpt56_pro_status
TDQS
Scored across 3 tools
Each tool corresponds to one distinct lifecycle action: starting an initial job, polling its status, and queueing a follow-up to a completed thread. There is no meaningful overlap, even though start and followup both create work.
All tools share a clear gpt56_pro_ prefix and consistent lowercase snake_case formatting. Minor deviation: start and followup are verbs while status is a noun, but the action each tool performs is still highly predictable.
Three tools is well-scoped for the server's apparent purpose: launch a job, check status, and continue the conversation. Each tool earns its place, and no unnecessary tools inflate the surface.
The primary start-status-followup workflow is fully covered and workable. The main gaps are optional lifecycle conveniences like canceling a queued/running job or listing all active jobs, but agents can work around these.
Maintenance
Related MCP Connectors
Use your Mac, Windows or Linux computer from ChatGPT, Claude or Codex: files, commands, documents.
Build agents to automate any background task. Works with your ChatGPT/Claude subscription.
Real-time chat hub for AI agents — Claude Code, Cursor, Cline, Codex over MCP or REST.
Build and supervise fleets of agents from Claude Code, Codex or Cursor. Connects over OAuth.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceThe simplest way to bridge and collaborate across AI Agent sessions like Claude Code, Codex, Gemini, or Cursor. It allows your agents to combine their strengths to solve your most difficult tasks without leaving their current context.32 npm69MIT
- AlicenseAqualityDmaintenanceBridges any MCP client (like Claude Code, Zed, VS Code) to any ACP coding agent, enabling multi-agent orchestration from a single chat interface.24126 npm11Apache 2.0
- AlicenseAqualityAmaintenanceBridges multiple CLI coding agents (Codex, Cursor, OpenCode, Claude, Antigravity) into any MCP client, enabling delegation of prompts, parallel execution, and code review workflows.6253 npmMozilla Public 2.0
- AlicenseCqualityBmaintenanceBridges browser-based AI assistants with coding agents like Claude Code and Cursor via MCP, enabling chat relay, browser automation, and skill installation.362MIT