Skip to main content
Glama
AaAndrew233

ChatGPT Codex Bridge

by AaAndrew233

ChatGPT Codex Bridge

简体中文 | Security | Contributing

Eine lokale MCP-Bridge, die es ChatGPT ermöglicht, registrierte Codex-Projekte zu prüfen, den Codex-Sitzungsverlauf zu lesen und bestätigte Aufgaben an die lokale Codex-CLI zu übermitteln.

[!IMPORTANT] Dies ist ein unabhängiges Community-Projekt. Es ist kein offizielles OpenAI-Produkt und weder mit OpenAI verbunden noch von OpenAI unterstützt. ChatGPT, Codex und OpenAI sind Marken ihrer jeweiligen Inhaber.

Funktionen

  • Erkennt Projekte, die bereits in Codex Desktop registriert sind, ohne Zugriff auf das gesamte Home-Verzeichnis zu gewähren.

  • Führt Analyse und Planung in der schreibgeschützten Codex-Sandbox aus.

  • Erfordert ein kurzlebiges, einmal verwendbares Bestätigungstoken vor Schreibvorgängen im Arbeitsbereich.

  • Listet und liest sichtbare Codex-Sitzungen mit Cursor-Paginierung und Schwärzung.

  • Erstellt begrenzten Projektverlaufskontext, ohne mehrere Gigabyte große Verläufe in den Speicher zu laden.

  • Erstellt und führt persistente Codex-Desktop-Sitzungen über das lokale Codex-App-Server-Protokoll fort.

  • Übergibt ChatGPT-Kontext als nicht vertrauenswürdigen Referenztext mit Geheimnis-Erkennung an Codex.

  • Verwendet Hintergrundjobs, sodass lange Codex-Aufgaben keine MCP-Tunnelanfrage offen halten.

Die Bridge stellt kein beliebiges Shell-Tool bereit und lauscht nicht auf einem öffentlichen Port. Der Fernzugriff erfolgt über den offiziellen OpenAI Secure MCP Tunnel client.

Architektur

flowchart LR
    A[ChatGPT] -->|MCP connector| B[OpenAI Secure MCP Tunnel]
    B -->|outbound tunnel| C[tunnel-client on your machine]
    C -->|stdio MCP| D[ChatGPT Codex Bridge]
    D -->|sandboxed commands| E[Codex CLI]
    D -->|read-only indexes| F[Codex projects and sessions]
    D -. optional local IPC .-> G[Codex Desktop sidebar refresh]

Der optionale Seitenleisten-Aktualisierungspfad hängt von einer privaten, nicht unterstützten Codex-Desktop-Erweiterung ab und ist nicht in diesem Repository enthalten. Die Kern-Bridge funktioniert ohne sie; neu erstellte persistente Sitzungen können einen Neustart von Codex Desktop erfordern, bevor sie in der Seitenleiste erscheinen.

Voraussetzungen

  • macOS oder Linux mit Python 3.11+

  • Eine funktionierende codex-CLI-Installation und Anmeldung

  • Codex Desktop für automatische Projekterkennung und Sitzungsverlaufsfunktionen

  • Homebrew für den dokumentierten Tunnel-Installationspfad

  • OpenAI-Organisationszugriff auf Secure MCP Tunnels

Dieses Projekt wird derzeit auf macOS getestet. Windows wird nicht unterstützt, da der optionale Desktop-Benachrichtigungspfad Unix-Sockets verwendet.

Schnellstart

git clone https://github.com/AaAndrew233/chatgpt-codex-bridge.git
cd chatgpt-codex-bridge
./scripts/bootstrap.sh

bootstrap.sh erstellt eine lokale virtuelle Umgebung, installiert die geprüfte Abhängigkeitssperre und generiert nicht versionierte config.json- und .mcp.json-Dateien. Es überschreibt niemals vorhandene Konfigurationen.

Öffnen Sie config.json und wählen Sie eine Autorisierungsquelle:

{
  "codex_command": "codex",
  "model": null,
  "codex_project_catalog": "~/.codex/.codex-global-state.json",
  "allowed_roots": []
}
  • Behalten Sie model als null bei, um Ihre aktuelle Codex-Konfiguration zu übernehmen.

  • Lassen Sie allowed_roots leer, um nur in Codex Desktop registrierte Projekte zu verwenden.

  • Fügen Sie enge Projektverzeichnisse zu allowed_roots nur dann hinzu, wenn die automatische Erkennung nicht verfügbar ist.

  • Autorisieren Sie niemals / oder Ihr Home-Verzeichnis. Die Bridge lehnt beides ab.

Führen Sie die lokalen Prüfungen aus:

./scripts/check_public_release.py
.venv/bin/python -m unittest discover -s tests -v

Verbindung über Secure MCP Tunnel

Installieren Sie den offiziellen Client:

brew install openai/tools/tunnel-client
tunnel-client --version
tunnel-client help quickstart

Speichern Sie den Laufzeit-Schlüssel in einer Datei außerhalb dieses Repositorys und schränken Sie dessen Berechtigungen ein:

chmod 600 /ABSOLUTE/PATH/TO/runtime-key

Erstellen Sie eine verwaltete Hintergrundlaufzeit. Ersetzen Sie alle Platzhalterwerte:

tunnel-client runtimes connect \
  --alias codex-bridge \
  --profile codex-bridge \
  --tunnel-id '<YOUR_TUNNEL_ID>' \
  --runtime-api-key 'file:/ABSOLUTE/PATH/TO/runtime-key' \
  --mcp-command '/ABSOLUTE/PATH/TO/chatgpt-codex-bridge/scripts/run_server.sh'

Überprüfen Sie, ob die verwaltete Laufzeit läuft, fehlerfrei und bereit ist:

tunnel-client runtimes status codex-bridge --json

Erstellen oder aktualisieren Sie dann den Connector in den ChatGPT-Connector-Einstellungen. Die offizielle Tunnel-Onboarding-Anleitung ist die maßgebliche Quelle für Organisationsrollen, Tunnel-IDs, Laufzeitschlüssel und aktuelle Befehle: openai/tunnel-client/docs/onboarding.md.

Verwenden Sie keinen Admin-Schlüssel für die langlaufende Laufzeit. Committen Sie keine Laufzeitschlüssel, Tunnel-IDs, generierten Profile, config.json oder .mcp.json.

Erster Test in ChatGPT

Starten Sie eine neue ChatGPT-Konversation mit aktiviertem Connector und fragen Sie:

Call codex_status. Show only whether the bridge is healthy, the available tool names,
and the registered project names. Do not modify files.

Testen Sie dann eine schreibgeschützte Aufgabe:

Use codex_analyze on <PROJECT_PATH> to summarize the project structure and identify
the three highest-risk areas. Poll the job until it finishes and retrieve every output page.
Do not modify files.

Für einen Schreibvorgang muss ChatGPT zuerst codex_prepare_apply aufrufen, Ihnen den genauen Plan zeigen, Ihre ausdrückliche Bestätigung einholen und erst dann codex_apply mit dem zurückgegebenen Token aufrufen.

MCP-Tools

Tool

Zweck

Schreibbestätigung

codex_status

Statusübersicht zu Gesundheit, Fähigkeiten, Projekten, Jobs und Kompatibilität

Nein

codex_list_projects

Autorisiertes Codex-Projekte auflisten

Nein

codex_prepare_project_context

Begrenzten, paginierten Projektverlaufskontext erstellen

Nein

codex_analyze

Schreibgeschützte Codex-Aufgabe übermitteln

Nein

codex_plan

Nur-Planungs-Codex-Aufgabe übermitteln

Nein

codex_prepare_apply

Kurzlebiges Token für genau eine Schreibanfrage ausstellen

Nein

codex_apply

Codex-Aufgabe mit Schreibzugriff auf den Arbeitsbereich übermitteln

Ja

codex_job_status

Hintergrundjob abfragen

Nein

codex_job_result

Abgeschlossenes Ergebnis mit Ausgabe-Paginierung lesen

Nein

codex_cancel_job

In Warteschlange stehenden oder laufenden Job abbrechen

Nein

codex_list_sessions

Sichtbare Codex-Sitzungen mit Paginierung auflisten

Nein

codex_read_session

Sichtbare Benutzer- und Assistentennachrichten mit Schwärzung lesen

Nein

codex_create_desktop_session

Persistente Codex-Desktop-Sitzung erstellen

Nur Schreibmodus

codex_continue_desktop_session

Persistente Sitzung fortsetzen

Nur Schreibmodus

codex_handoff_chat_context

Sitzung mit explizitem ChatGPT-Kontext erstellen

Nur Schreibmodus

Sicherheitsmodell

Die Vertrauensgrenze ist bewusst eng gefasst:

  • Der Projektzugriff ist auf validierte Codex-Projektwurzeln oder explizite enge Wurzeln beschränkt.

  • Sensible Verzeichnisse wie .ssh, .aws, .gnupg, .kube, .config und Library werden bei der automatischen Erkennung abgelehnt.

  • Codex-Subprozesse erhalten eine minimale Umgebung und laufen mit expliziten Sandbox-Modi.

  • Schreib-Token laufen ab, sind einmal verwendbar und an das genaue Projekt und die genaue Anfrage gebunden.

  • Die Sitzungsausgabe wird auf benutzersichtbare Nachrichten gefiltert und vor dem Verlassen des Rechners geschwärzt.

  • Anfrage-, Ausgabe-, Scan-, Parallelitäts-, Aufbewahrungs- und Zeitlimitgrenzen sind begrenzt.

  • ChatGPT-Kontext wird als nicht vertrauenswürdige Eingabe behandelt und kann lokale Richtlinien nicht außer Kraft setzen.

Lesen Sie docs/security-model.md, bevor Sie die Bridge einem Team zugänglich machen. Schwachstellenmeldungen sollten SECURITY.md folgen.

Betriebliche Grenzen

Standardgrenzen sind in config.example.json dokumentiert und werden beim Start durchgesetzt. Wichtige Standardwerte umfassen zwei gleichzeitige Jobs, eine 30-minütige Aufbewahrung abgeschlossener Jobs, eine Anfrageobergrenze von 120.000 Zeichen, paginierte Jobausgabe von 100.000 Zeichen und begrenzte Streaming-Scans für den Projektverlauf.

scan_complete gibt an, ob der konfigurierte Quellscan abgeschlossen wurde. context_complete gibt separat an, ob der gesamte gescannte Text in das zurückgegebene Kontextbudget passt. Ein vollständiger Scan ist nicht dasselbe wie ein unbegrenzter Export.

Entwicklung

./scripts/bootstrap.sh
.venv/bin/python -m unittest discover -s tests -v
.venv/bin/python -m compileall -q \
  bridge_core.py conversation_catalog.py desktop_assignment.py \
  desktop_sessions.py project_context.py server.py

Beitragsregeln finden Sie in CONTRIBUTING.md und Modulgrenzen in docs/architecture.md.

Lizenz

Apache License 2.0. Siehe LICENSE.

-
license - not tested
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Search your AI chat history (ChatGPT, Claude, Codex) from any MCP client. Remote, private, read-only

  • A paid remote MCP for OpenAI Codex agent coordination MCP, built to return verdicts, receipts, usage

  • Give AI agents secure access to ZERNO project briefs, tasks, and context over remote MCP.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AaAndrew233/chatgpt-codex-bridge'

If you have feedback or need assistance with the MCP directory API, please join our Discord server