Skip to main content
Glama

ProBridge

CI Version Node.js License

ProBridge cover

ChatGPT desktop Quick Chat + GPT-5.6 Pro를 위한 오픈소스 로컬 MCP 브리지입니다.

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)

  • ChatGPT desktop에 Pro로 로그인

  • LocalAnt / DevSpace가 ChatGPT에 연결

  • 컴파일된 bin/ax-driver에 대한 손쉬운 사용 권한

LocalAnt / DevSpace가 ChatGPT Pro에 머신을 조작할 수 있는 능력을 부여합니다. ProBridge는 다른 에이전트가 해당 ChatGPT 세션에 작업을 보낼 수 있게 해줍니다.

설정 — 필수 두 가지

1. 먼저 ChatGPT의 로컬 커넥터 설정

ProBridge는 ChatGPT가 로컬 Mac에 도달할 수 있는 커넥터를 이미 보유하고 있어야 합니다. 커넥터 하나를 선택하고 ProBridge를 설치하기 전에 해당 커넥터의 업스트림 설정을 완료하세요:

  • LocalAnt (검증된 경로): LocalAnt의 설정 가이드를 따르세요. 빠른 시작은 다음과 같습니다:

    npx -y localant setup
    localant tools profile coding

    localant setup은 인증된 MCP 엔드포인트를 출력합니다. ChatGPT 데스크톱에서 Settings → Apps & Connectors로 이동하여 Developer Mode를 켜고, Connectors → Create를 선택한 다음 해당 MCP 엔드포인트를 붙여넣고 Authentication: None을 선택한 후 커넥터 이름을 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 데스크톱을 열어 둔 채 새 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는 홈, 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를 통해 작성하는 협조적 제어 파일

관련 프로젝트

  • LocalAnt — ChatGPT의 로컬 MCP 게이트웨이 / 컴퓨터 커넥터

  • DevSpace — ChatGPT와 함께 사용되는 로컬 환경 / 컴퓨터 커넥터

플랫폼 지원

플랫폼

상태

macOS

지원됨. 네이티브 손쉬운 사용 드라이버.

Windows

지원되지 않음. 다른 UI 드라이버 필요.

Linux

지원되지 않음. 다른 UI 드라이버 필요.

MCP 서버, 큐, 제어 파일 프로토콜은 OS에 구애받지 않습니다. 다른 곳에서 빠진 조각은 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 tools
gpt56_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdYesLatest completed job id in the Quick Chat thread.
promptYesThe follow-up task to send into that verified conversation.

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesThe complete task for the LocalAnt / DevSpace-capable GPT-5.6 Pro sub-agent.

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdYesJob id returned by gpt56_pro_start or gpt56_pro_followup.

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

  1. 3 tool updatesv1.2.0
    • First observedgpt56_pro_followup
    • First observedgpt56_pro_start
    • First observedgpt56_pro_status

TDQS

A4/5.0

Scored across 3 tools

Disambiguation5/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers