Skip to main content
Glama
AaAndrew233

ChatGPT Codex Bridge

by AaAndrew233

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

  • 動作するcodex CLIのインストールとサインイン

  • 自動プロジェクト検出とセッション履歴機能のための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.sh

bootstrap.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 -v

Secure 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_status

ヘルス、機能、プロジェクト、ジョブ、互換性のスナップショット

なし

codex_list_projects

認可されたCodexプロジェクトの一覧表示

なし

codex_prepare_project_context

境界付き・ページネーション付きのプロジェクト履歴コンテキストの構築

なし

codex_analyze

読み取り専用のCodexタスクの送信

なし

codex_plan

計画専用のCodexタスクの送信

なし

codex_prepare_apply

1つの正確な書き込みリクエスト用の短時間有効トークンの発行

なし

codex_apply

ワークスペース書き込みのCodexタスクの送信

あり

codex_job_status

バックグラウンドジョブのポーリング

なし

codex_job_result

出力ページネーション付きで完了した結果の読み取り

なし

codex_cancel_job

キュー済みまたは実行中のジョブのキャンセル

なし

codex_list_sessions

ページネーション付きで表示可能なCodexセッションの一覧表示

なし

codex_read_session

編集処理付きで表示可能なユーザーおよびアシスタントメッセージの読み取り

なし

codex_prepare_session_access

1つのプロジェクト未割り当てRecentセッション用の時間制限付き許可の準備

ユーザー承認

codex_create_desktop_session

永続的なCodex Desktopセッションの作成

書き込みモードのみ

codex_continue_desktop_session

永続セッションの継続

書き込みモードのみ

codex_handoff_chat_context

明示的な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を参照してください。

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables 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 npm
    6
    Apache 2.0
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables 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 npm
    6
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables 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