ChatGPT Codex Bridge
ChatGPT Codex Bridge
简体中文 | Security | Contributing
ローカルファーストのMCPブリッジ。ChatGPTが登録済みのCodexプロジェクトを検査し、Codexセッション履歴を読み取り、確認済みのタスクをローカルのCodex CLIにディスパッチできるようにします。
[!IMPORTANT] これは独立したコミュニティプロジェクトです。OpenAIの公式製品ではなく、OpenAIとの提携や承認を受けたものではありません。ChatGPT、Codex、OpenAIはそれぞれの所有者の商標です。
機能
Codex Desktopに登録済みのプロジェクトを、ホームディレクトリ全体へのアクセスを許可することなく検出します。
分析と計画をCodexの読み取り専用サンドボックス内で実行します。
ワークスペースへの書き込みには、短時間有効な使い捨て確認トークンが必要です。
カーソルページネーションと編集処理付きで、表示可能なCodexセッションを一覧表示・読み取りします。
Codex Desktopの「Recent」セクションにある個別のプロジェクト未割り当てセッションへの、時間制限付き・ユーザー確認済みアクセスをサポートします。
数ギガバイトの履歴をメモリに読み込むことなく、境界付きのプロジェクト履歴コンテキストを構築します。
ローカルのCodexアプリサーバープロトコルを通じて、永続的なCodex Desktopセッションを作成・継続します。
ChatGPTから提供されたコンテキストを、シークレット検出付きの信頼できない参照テキストとしてCodexに渡します。
バックグラウンドジョブを使用するため、長時間のCodexタスクがMCPトンネルリクエストを開いたままにしません。
このブリッジは任意のシェルツールを公開せず、公開ポートで待ち受けません。リモートアクセスは公式のOpenAI Secure MCP Tunnel clientによって提供されます。
Related MCP server: ChatGPT MCP Bridge
アーキテクチャ
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]オプションのサイドバー更新パスは、非公開でサポート対象外のCodex Desktop拡張機能に依存しており、このリポジトリには含まれていません。コアブリッジはこれなしで動作します。新しく作成された永続セッションは、サイドバーに表示される前にCodex Desktopの再起動が必要な場合があります。
要件
Python 3.11+ を搭載したmacOSまたはLinux
動作する
codexCLIのインストールとサインイン自動プロジェクト検出とセッション履歴機能のためのCodex Desktop
ドキュメント記載のTunnelインストール手順のためのHomebrew
Secure MCP TunnelsへのOpenAI組織アクセス
このプロジェクトは現在macOSでテストされています。オプションのDesktop通知パスがUnixソケットを使用するため、Windowsはサポートされていません。
クイックスタート
git clone https://github.com/AaAndrew233/chatgpt-codex-bridge.git
cd chatgpt-codex-bridge
./scripts/bootstrap.shbootstrap.shはローカルの仮想環境を作成し、レビュー済みの依存関係ロックをインストールし、追跡対象外のconfig.jsonと.mcp.jsonファイルを生成します。既存の設定を上書きすることはありません。
config.jsonを開き、認可ソースを1つ選択します:
{
"codex_command": "codex",
"model": null,
"codex_project_catalog": "~/.codex/.codex-global-state.json",
"allowed_roots": [],
"session_access_ttl_seconds": 3600
}modelをnullのままにして、現在のCodex設定を継承します。allowed_rootsを空のままにして、Codex Desktopに登録されたプロジェクトのみを使用します。自動検出が利用できない場合にのみ、狭いプロジェクトディレクトリを
allowed_rootsに追加します。session_access_ttl_secondsは、承認されたプロジェクト未割り当てセッションの許可のインメモリ有効期間を制御し、24時間を超えることはできません。/やホームディレクトリを認可しないでください。ブリッジは両方を拒否します。
ローカルチェックを実行します:
./scripts/check_public_release.py
.venv/bin/python -m unittest discover -s tests -vSecure MCP Tunnel経由で接続
公式クライアントをインストールします:
brew install openai/tools/tunnel-client
tunnel-client --version
tunnel-client help quickstartランタイムキーをこのリポジトリの外のファイルに保存し、その権限を制限します:
chmod 600 /ABSOLUTE/PATH/TO/runtime-key管理対象のバックグラウンドランタイムを作成します。すべてのプレースホルダー値を置き換えます:
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'管理対象ランタイムが実行中で、正常で、準備完了であることを確認します:
tunnel-client runtimes status codex-bridge --json次に、ChatGPTコネクタ設定でコネクタを作成または更新します。組織の役割、トンネルID、ランタイムキー、現在のコマンドについては、公式のTunnelオンボーディングガイドが信頼できる情報源です: openai/tunnel-client/docs/onboarding.md。
長時間実行されるランタイムに管理者キーを使用しないでください。ランタイムキー、トンネルID、生成されたプロファイル、config.json、.mcp.jsonをコミットしないでください。
ChatGPTでの最初のテスト
コネクタを有効にして新しいChatGPT会話を開始し、次のように尋ねます:
Call codex_status. Show only whether the bridge is healthy, the available tool names,
and the registered project names. Do not modify files.次に、読み取り専用タスクをテストします:
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.書き込みの場合、ChatGPTはまずcodex_prepare_applyを呼び出し、正確な計画をあなたに表示し、あなたの明示的な確認を得て、その後にのみ返されたトークンを使ってcodex_applyを呼び出す必要があります。
Recentの下にあるプロジェクト未割り当てセッションの場合、ChatGPTはまずcodex_list_sessions(include_unassigned=true)を呼び出します。結果は編集されたサイドバーメタデータのみを公開します。次にcodex_prepare_session_accessを呼び出し、セッションのタイトル、正規の作業ディレクトリ、アクセスモード、該当する場合は正確な書き込みリクエストを表示し、明示的な承認を待つ必要があります。返されたアクセストークンは、そのセッションのみに対するインメモリ許可を有効にします。ワークスペースへの書き込みには、同じ準備呼び出しによって返された正確なリクエスト確認トークンがさらに必要です。
MCPツール
ツール | 目的 | 書き込み確認 |
| ヘルス、機能、プロジェクト、ジョブ、互換性のスナップショット | なし |
| 認可されたCodexプロジェクトの一覧表示 | なし |
| 境界付き・ページネーション付きのプロジェクト履歴コンテキストの構築 | なし |
| 読み取り専用のCodexタスクの送信 | なし |
| 計画専用のCodexタスクの送信 | なし |
| 1つの正確な書き込みリクエスト用の短時間有効トークンの発行 | なし |
| ワークスペース書き込みのCodexタスクの送信 | あり |
| バックグラウンドジョブのポーリング | なし |
| 出力ページネーション付きで完了した結果の読み取り | なし |
| キュー済みまたは実行中のジョブのキャンセル | なし |
| ページネーション付きで表示可能なCodexセッションの一覧表示 | なし |
| 編集処理付きで表示可能なユーザーおよびアシスタントメッセージの読み取り | なし |
| 1つのプロジェクト未割り当てRecentセッション用の時間制限付き許可の準備 | ユーザー承認 |
| 永続的なCodex Desktopセッションの作成 | 書き込みモードのみ |
| 永続セッションの継続 | 書き込みモードのみ |
| 明示的なChatGPTコンテキスト付きセッションの作成 | 書き込みモードのみ |
セキュリティモデル
信頼境界は意図的に狭く設定されています:
プロジェクトアクセスは、検証済みのCodexプロジェクトルートまたは明示的な狭いルートに限定されます。
プロジェクト未割り当てのRecentセッションはデフォルトで非表示のままであり、1つのセッション、正規ディレクトリ、モードにバインドされた短時間有効な許可が必要です。
.ssh、.aws、.gnupg、.kube、.config、Libraryなどの機密ディレクトリは、自動検出中に拒否されます。Codexサブプロセスは最小限の環境を受け取り、明示的なサンドボックスモードで実行されます。
書き込みトークンは期限切れになり、使い捨てであり、正確なプロジェクトとリクエストにバインドされます。
セッション出力はユーザーに表示されるメッセージにフィルタリングされ、マシンから出る前に編集されます。
リクエスト、出力、スキャン、並行性、保持、タイムアウトの制限は境界付きです。
ChatGPTコンテキストは信頼できない入力として扱われ、ローカルポリシーを上書きできません。
ブリッジをチームに公開する前にdocs/security-model.mdをお読みください。脆弱性レポートはSECURITY.mdに従ってください。
運用上の制限
デフォルトの制限はconfig.example.jsonに文書化されており、起動時に適用されます。重要なデフォルトには、2つの同時ジョブ、30分の完了ジョブ保持、1時間のセッション許可、120,000文字のリクエスト上限、ページネーション付き100,000文字のジョブ出力、プロジェクト履歴の境界付きストリーミングスキャンが含まれます。
scan_completeは、設定されたソーススキャンが完了したかどうかに答えます。context_completeは、スキャンされたすべてのテキストが返されたコンテキスト予算に収まったかどうかに別途答えます。完全なスキャンは、無制限のエクスポートと同じではありません。
開発
./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貢献ルールについてはCONTRIBUTING.mdを、モジュール境界についてはdocs/architecture.mdを参照してください。
ライセンス
Apache License 2.0。LICENSEを参照してください。
This server cannot be deployed
Maintenance
Related MCP Connectors
Use your Mac, Windows or Linux computer from ChatGPT, Claude or Codex: files, commands, documents.
Work on your own computers from Claude or ChatGPT: run commands, edit and search files.
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
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceLocal MCP bridge enabling ChatGPT web to access approved local files and execute tasks via local Codex.14MIT
- AlicenseNot gradedqualityBmaintenanceEnables ChatGPT to read and edit local project files, inspect Git changes, and run approved development scripts through a secure MCP tunnel, with optional Codex Desktop integration.53 npm6Apache 2.0
- AlicenseNot gradedqualityAmaintenanceEnables ChatGPT to operate authorized local projects through MCP, including reading and modifying code, viewing Git changes, running configured programs, and reading local Codex sessions to continue work.63 npm6MIT
- AlicenseNot gradedqualityBmaintenanceEnables ChatGPT web to read local files, search code, run shell commands, and drive a local Codex CLI via an official MCP connector, with human approval for risky commands and full audit logging.MIT