安全 MCP 通道讓你無須開放防火牆的入站連接埠,也不必將伺服器暴露於公用網際網路,就能將私有 MCP 伺服器連接至支援的 OpenAI 產品。在已能連線至 MCP 伺服器的網路內執行 tunnel-client;它會建立通往 OpenAI 的對外 HTTPS 連線、取得佇列中的 MCP 工作、在本機轉送請求,並透過同一條通道傳回回應。
安全 MCP 通道支援私有 MCP 連線,包括開發人員模式的 測試,但不支援公開外掛程式的提交或散布。公開 外掛程式需要穩定且可從公用網際網路存取的 HTTPS MCP 端點。如果 MCP 伺服器必須保持私有,請提供公開的 HTTPS 代理伺服器,將請求 轉送至該伺服器。端點 與身分驗證需求請參閱公開外掛程式提交。
什麼是 MCP 通道?
MCP 通道是從網路內部主機連線至 OpenAI 託管 MCP 端點的連線,僅由內向外建立。當 MCP 伺服器位於私有網路、地端或防火牆後方,而 ChatGPT、Codex、Responses API 或其他支援的 OpenAI 介面仍需要呼叫它時,即可使用 MCP 通道。
安全 MCP 通道可讓 MCP 伺服器保持私有,同時為支援的 OpenAI 產品提供一般的 MCP 請求路徑。tunnel-client 會輪詢 OpenAI 以取得工作、在本機轉送 MCP 請求,並透過同一條通道傳回回應。
適合使用安全 MCP 通道的情況
- 你的 MCP 伺服器在私有網路、地端或開發人員的電腦上執行,或受到既有存取控制的保護。
- 你希望 ChatGPT、Codex、Responses API 或其他支援的 OpenAI 介面能使用該伺服器,而不必將 MCP 伺服器公開。
- 你的網路允許執行
tunnel-client的主機對外發送 HTTPS 請求,預設目的地為api.openai.com:443;若已設定控制平面 mTLS,則為mtls.api.openai.com:443,且該主機能連線至私有 MCP 伺服器。 - 請先閱讀 MCP 伺服器指南,了解 MCP 的一般概念。
運作方式
- 在 Platform 通道設定中建立或管理 OpenAI 託管的 MCP 通道端點。
- 在能連線至私有 MCP 伺服器的網路內執行
tunnel-client。 - 為
tunnel-client設定通道身分與私有 MCP 伺服器位址。 - OpenAI 產品會將 MCP 請求傳送至 OpenAI 託管的通道端點。
tunnel-client會透過長輪詢取得佇列中的工作,將每個JSON-RPC請求轉送至私有 MCP 伺服器,再透過通道回傳回應。
私有 MCP 伺服器不需要公開的接聽端點。OpenAI 託管的端點為支援的產品提供一般的 MCP 請求路徑,而網路連線仍由你的網路邊界內部發起。當連接器要求串流結果時,通道路徑可以轉送過程中伺服器傳送的事件。
OpenAI 產品會呼叫 OpenAI 託管的通道端點;tunnel-client
則透過長輪詢取得佇列中的工作,並透過同一條
通道傳回 MCP 回應。
開始之前
你需要準備:
- 從 Platform 通道設定取得的
tunnel_id。 - 供
tunnel-client執行時使用的 API 金鑰。 - 一部可讓
tunnel-client從網路內部透過 stdio 或 HTTP 連線的 MCP 伺服器。
權限與存取
Platform 通道權限與 ChatGPT 開發人員模式存取權是分開管理的:
- 建立或編輯通道需要通道的 讀取 + 管理權限。
- 執行
tunnel-client或在建立應用程式時選取通道,需要通道的 讀取 + 使用權限。 - 通道權限適用於 Platform 組織。通道角色由 Platform 組織擁有者或 RBAC 管理員授予。
- ChatGPT 開發人員模式是獨立的工作區權限。對於 Enterprise/Edu,工作區管理員會授予開發人員模式存取權,使用者再到 設定 → 安全性與登入中啟用。各方案的政策請參閱說明中心的開發人員模式文章。
請向目標 ChatGPT 工作區的管理員申請開發人員模式存取權,並向目標 Platform 組織的擁有者或 RBAC 管理員申請通道權限。
將通道與正確的組織和工作區建立關聯
一條通道可以與一或多個 Platform 組織或 ChatGPT 工作區建立關聯。透過這些關聯,指定哪些 OpenAI 組織與工作區環境可以找到或使用該通道。
- 納入擁有或管理該通道的 Platform 組織。
- 納入應在建立應用程式時列出該通道的 ChatGPT 工作區。
- 如果 Codex、Responses API 或其他支援的產品會從另一個 Platform 組織呼叫私有 MCP 伺服器,也請納入該組織。
- 為
tunnel-client使用相同的tunnel_id;新增組織或工作區不會建立第二條通道,也不會變更私有 MCP 伺服器端點。
若使用個人帳戶,請使用該帳戶所屬的個人 Platform 組織。測試 ChatGPT 和 Codex 時,請將通道與目標 ChatGPT 工作區及 Codex 將使用的 Platform 組織建立關聯。僅與個人 Platform 組織建立關聯的通道,不會自動出現在 Enterprise/Edu 工作區中。
如果 Platform 組織與 ChatGPT 工作區已連結,你可以在 Platform 通道設定中加入尚未納入的組織或工作區。如果系統無法自動驗證你的企業設定,例如 Platform 組織沒有對應的 ChatGPT 工作區,請聯絡你的 OpenAI 客戶團隊,針對應使用該通道的企業帳戶對應關係,申請經審查的手動關聯覆寫。
網路需求
tunnel-client 不需要接受來自網際網路的入站連線。它需要能透過 HTTPS 對外連線至 OpenAI,並能從本機連線至私有 MCP 伺服器:
| 來源 | 目的地 | 用途 |
|---|---|---|
執行 tunnel-client 的主機 | 透過 HTTPS 存取 api.openai.com:443 的 /v1/tunnel/* 路徑 | 預設的輪詢與回應回傳。 |
執行 tunnel-client 的主機 | 透過 HTTPS 存取 mtls.api.openai.com:443 的 /v1/tunnel/* 路徑 | 設定控制平面 mTLS 後的輪詢與回應回傳。 |
執行 tunnel-client 的主機 | 已設定的 stdio 指令或 MCP 伺服器 URL | 從網路內部轉送 MCP 請求。 |
設定 tunnel-client
開啟平台通道設定,使用該頁面的下載連結,或從 openai/tunnel-client 取得最新公開發布的 tunnel-client 版本。請在操作手冊中使用最新版本的 URL,不要寫死特定版本的 URL。
如果你已經有執行檔,請先執行 tunnel-client help quickstart。若要使用具名的本機 stdio 設定檔,請執行:
export CONTROL_PLANE_API_KEY="sk-..."
tunnel-client init \
--sample sample_mcp_stdio_local \
--profile local-stdio \
--tunnel-id tunnel_0123456789abcdef0123456789abcdef \
--mcp-command "python /path/to/server.py"
tunnel-client doctor --profile local-stdio --explain
tunnel-client run --profile local-stdio
若使用 HTTP MCP 伺服器,請以 --mcp-server-url https://mcp.internal.example.com/mcp 取代 --mcp-command。
建立或測試應用程式時,請讓 tunnel-client run ... 保持正常運作。應用程式探索和 MCP 工具呼叫都依賴執行中的用戶端。
從 ChatGPT、Codex 或 API 流程進行測試前,
你可以透過 /ui 的本機管理介面,
查看執行中的用戶端是否運作正常、已就緒並已連線。
選擇執行 tunnel-client 的位置
請在原本就能連線至私有 MCP 伺服器的同一信任邊界內執行 tunnel-client。常見的部署方式包括:
- Kubernetes 邊車容器: 在同一個 Pod 中,將
tunnel-client與 MCP 伺服器一同執行,並透過localhost連線。 - 專用 Kubernetes 部署: 若已能透過私有 Service 連線至 MCP 伺服器,可獨立執行
tunnel-client。 - VM 或 systemd 服務: 在可透過私有網路連線至 MCP 伺服器的主機上執行
tunnel-client。
從 ChatGPT 連線
前往 ChatGPT 外掛程式,選取加號按鈕來建立開發人員模式應用程式,然後在「 連線」下選擇「 通道 」。當 ChatGPT 列出可用通道時,選取其中一個;若你已有有效的 tunnel_id,也可以直接貼上。
如果通道未出現在 ChatGPT 中,請確認通道已與目標 ChatGPT 工作區建立關聯,而不只是與平台組織建立關聯,並確認應用程式建立者具備通道的 讀取 + 使用權限。
從 Responses API 連線
在 MCP 工具定義中,將通道識別碼傳入 tunnel_id。請勿將 OpenAI 託管的通道端點傳入 server_url;只有 Responses API 能直接連線的 MCP 伺服器才使用 server_url。
curl https://api.openai.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-6-astra",
"input": "Use the private MCP server to answer my request.",
"tools": [
{
"type": "mcp",
"server_label": "private_mcp",
"tunnel_id": "tunnel_0123456789abcdef0123456789abcdef"
}
]
}'安全性與網路
私有 MCP 伺服器始終位於客戶控管的環境內。
tunnel-client 使用執行階段 API 金鑰,透過對外 HTTPS 連線至 OpenAI,
並可視需要選用控制平面 mTLS。
- MCP 伺服器位址保持私有,且僅供執行
tunnel-client的環境內部使用。 tunnel-client向 OpenAI 通道控制平面進行身分驗證;支援此功能的 OpenAI 產品則使用 OpenAI 託管的通道端點。- 通道存取沿用既有的組織與工作區上下文,不會引入另一條公開的連入路徑。
tunnel-client支援企業網路需求,例如對外連線 Proxy、自訂 CA 憑證組合、控制平面用戶端憑證,以及 MCP 端的mTLS。
記錄範圍
安全 MCP 通道將通道傳輸與應用程式層級的產品記錄分開處理:
- 通道路徑不會將通道控制平面的身分驗證、長輪詢/回應流量,以及個別通道傳輸請求,輸出為 ChatGPT 合規紀錄平台的應用程式事件。
- 通道中繼資料的變更會透過 API 平台的稽核記錄介面,以
tunnel.created、tunnel.updated和tunnel.deleted的形式提供。 - 當 ChatGPT 透過安全 MCP 通道連線至自訂應用程式時,通道仍僅作為傳輸路徑。應用程式路徑仍會照常記錄應用程式層級的合規記錄,包括應用程式呼叫記錄,以及連結或取消連結應用程式時產生的
APP_AUTH_LOG等應用程式身分驗證生命週期記錄。
進階:列入允許清單的 HTTP 呼叫
安全 MCP 通道也可支援由受支援的智慧體或 API 流程向客戶網路發起的 HTTP 呼叫,且呼叫範圍受到嚴格限制。tunnel-client 內建 MCP 伺服器 Harpoon,可依標籤提供已設定的 HTTP 目標,讓呼叫端透過通道呼叫這些目標,並對請求與回應施加明確限制。
當你需要連線至少量私有 REST 端點,又不想將它們公開時,可使用此功能。Harpoon 並非通用 Proxy:呼叫端無法任意選擇主機,請求也僅限於客戶設定的目標與方法。
疑難排解
- 平台通道設定顯示「需要通道存取權」: 通道權限屬於組織層級,而非專案層級。請選取要使用的平台組織,再請組織擁有者或 RBAC 管理員將你加入適當的角色或群組。檢視通道需要 讀取 權限;建立、編輯或刪除通道則需要 讀取 + 管理 權限。如果沒有符合需求的角色,他們可以建立角色、將角色指派給群組,再將你加入該群組。執行
tunnel-client或在連接器設定中選取通道,還需要 使用 權限。新的角色指派最多可能需要 30 分鐘才會全面生效。 - ChatGPT 中看不到通道: 確認通道已關聯至目標 ChatGPT 工作區,而不只是平台組織;接著檢查連接器操作人員是否具備通道的 使用 權限。如果企業帳戶的工作區無法自動連結,請聯絡你的 OpenAI 客戶團隊,透過經審查的手動關聯覆寫程序處理。
- 連接器探索或工具呼叫失敗: 確認
tunnel-client run ...仍在執行,然後重新執行tunnel-client doctor --profile <name> --explain。 - 可以檢視通道,但無法編輯: 操作人員可能具備通道的 讀取 權限,但沒有通道的 管理權限。
tunnel-client提供/healthz、/readyz、/metrics,並在/ui提供本機管理介面。- 管理介面預設僅允許透過回送介面存取。只有在你確實需要讓操作人員的網路存取時,才開放遠端存取。
- 從 ChatGPT、Codex 或 API 流程進行測試前,請使用這些介面確認用戶端運作正常、已就緒且正在輪詢。
- 如果用戶端未連線,透過通道發出的請求都會失敗,直到
tunnel-client重新連線為止。 - 原始 HTTP 記錄功能預設停用,匯出供支援使用的資料也會遮蔽敏感資訊。
OAuth
- OAuth 探索可透過通道路徑進行,因此 MCP 伺服器本身可以保持私有。
- 通道會保留瀏覽器端 OAuth 流程所需的上游授權伺服器中繼資料。
- 授權伺服器本身不會自動透過通道提供連線。如果公用網際網路和
tunnel-client主機都無法連線至授權伺服器,即使 MCP 伺服器可連線,OAuth 流程仍可能失敗。
設定位置
- 在平台通道設定中管理 OpenAI 託管的 MCP 通道端點。
- 在 ChatGPT 外掛程式建立開發人員模式應用程式時,使用隧道連線。
- 對於 Codex 或 API 流程,請使用受支援產品介面提供、透過隧道連線的 MCP 目標。
後續步驟
- 在平台隧道設定中建立或管理隧道。
- 使用
tunnel-client doctor --profile <profile> --explain驗證你的tunnel-client設定檔。 - 從 ChatGPT 外掛程式或你正在使用的受支援 OpenAI 介面連接隧道。

