chatgpt-pro-notify
Allows web ChatGPT conversations to submit results back to an ongoing Codex desktop task, enabling the Codex agent to continue after the ChatGPT session finishes.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@chatgpt-pro-notifySend the ChatGPT discussion result back to my Codex task and continue."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ChatGPT 回传通知
与用户指定的网页 ChatGPT 模型讨论,通过 MCP 将结果交回原 Codex 任务,并请求继续未完成的工作。
非官方、Windows 实验性项目。 由“Codex 技能 + 网页 MCP 插件 + 本地服务”组成,不限定 Pro。网页主动调用工具回传结果,不被动监听页面是否停止生成。每个目标会话仍须实际通过工具能力检查,不承诺所有模型、桌面版本或平台都兼容。
当前 GitHub 源码发布候选版本为 0.1.0-experimental.2。下表列的是实际受检的原型、experimental.1 和第二电脑工作副本;不能把历史验收自动写成新版任意模型或会话的通过记录。
项目、命令和技能保留技术标识 chatgpt-pro-notify 以兼容现有安装;旧网页插件可能仍显示“ChatGPT Pro 回传通知”。名称中的 Pro 不构成模型限制。用户指定模型和推理档位时按该选择执行;未指定时沿用目标对话当前选择,不默认切到 Pro。
工作方式
flowchart LR
P[目标会话调用无唤醒权限的探测码] --> Q[本机确认收到探测]
Q --> A[Codex 签发限时票据]
A --> B[网页 ChatGPT]
B -->|submit_result| C[HTTPS MCP 入口]
C --> D[本机保存并立即回执 queued]
D --> E[后台观测原轮次完成]
E --> F[原 Codex 任务继续]票据在本机预先绑定原任务,默认两小时有效。
网页只提交票据和结果,没有目标任务、文件路径或 shell 参数。
保存成功立即返回
saved: true, notification: queued;后台等待和投递不再占用这次 HTTP 请求。默认每 3 秒检查原任务状态,最多等待 10 分钟。这是本地程序调用状态接口,不运行 Codex 模型,也不轮询网页。
观测到
idle/completed后调用桌面 App Tools 的任务消息接口。观测与发送不是原子操作,不保证期间没有新输入。相同票据、相同正文的重试只返回已有回执;不同正文被拒绝。不确定的投递不会自动重发。
queued 不是送达证明,accepted 也不是新轮次已经开始的证明。真实唤醒需要对应的新轮次与读取结果证据。
Related MCP server: codex-desktop-bridge
需要什么
Windows,Node.js 22 或更新版本,PowerShell 7(
pwsh)。Codex 桌面,以及它提供的
codex-app-tools/server.mjs和CODEX_APP_TOOLS_PIPE_PATH环境。这是版本相关的桌面接入点,不是本项目能保证长期稳定的公共 API。能在网页 ChatGPT 中使用自定义 MCP 写工具的具体会话。账号套餐、插件已连接或模型自述有工具均不能代替实际调用。
一个 ChatGPT 能访问的 HTTPS MCP 地址。本地测试可以使用自己安装的 Cloudflare Tunnel;本仓库不分发隧道或桌面二进制。
本机验证环境为 Windows、Node.js 24.19.0、Codex 桌面 26.915.4065.0。网页 UI 的实测范围如下:
网页模型/档位 | 版本 | 前置探测与实际回传 | 严格空闲唤醒 |
6 Pro | 原型 | 实际回传通过;当时未加入前置探测 | 已验证新轮次启动并读取结果 |
6 Pro |
| 探测通过,活动任务收到并读取结果 | 新版未重测 |
最新 GPT-6 / 中(用户指定的 Astra Medium) |
| 探测通过,活动任务收到并读取结果 | 尚未测试 |
GPT-6 Sol / 轻度(Work) | 第二电脑工作副本(尚未发布) | 探测、网页正式回传和本机结果落盘通过 | 已验证原轮次完成后新轮次读取结果 |
这些是具体会话的验证结果,不是通用模型兼容表。详见 验证记录。尚无另一台机器的独立桌面复现;这不阻止公开实验源码,也不应被写成已验证的兼容性。
安装与配置
把源码解压或克隆到你自己的目录。在该目录运行:
npm ci --ignore-scripts
npm test
pwsh -NoProfile -File ./install-skill.ps1安装器只写入本机的技能入口,路径根据当前源码目录生成;已有入口会先备份。移动源码目录后重新运行安装器。新 Codex 任务中可以使用 $chatgpt-pro-notify。
随后从 Codex 桌面任务内的终端/命令工具 执行:
node ./cli.mjs doctor
pwsh -NoProfile -File ./start-services.ps1 -CloudflaredPath (Get-Command cloudflared.exe).Source普通外部终端通常没有桌面管道环境,doctor 会明确失败。不要把这个失败当作可以忽略的提示;不要复制、公开或长期保存桌面管道环境值。
配置通过参数完成,例如:
pwsh -NoProfile -File ./start-services.ps1 `
-Port 8768 `
-StateDirectory (Join-Path $env:LOCALAPPDATA 'ChatGPTProNotify') `
-CloudflaredPath (Get-Command cloudflared.exe).Source也可设置 PRO_NOTIFY_STATE_DIR,或为 CLI 指定 --dir。签发、服务与状态查询必须使用同一个目录。默认目录在当前用户的 LocalAppData 下;不要放在公开或共享的同步目录。
如需手工运行本地服务或使用其他受支持的隧道:
node ./cli.mjs serve --port 8768-BridgeOnly 只启动本地服务,适合保留现有隧道时更新代码。临时隧道重启会更换地址,网页插件不会自动跟随。运行记录只保存在忽略的 .runtime/deployment.json。
启动脚本不会修改 PowerShell 执行策略。如果机器策略禁止本地脚本,请按自己的组织/机器政策处理,不要使用本项目来绕过它。
连接网页 ChatGPT
按账号实际可用功能启用开发者模式,添加自定义 MCP。
使用启动脚本输出的 HTTPS
/mcp地址。localhost地址不能直接作为云端 ChatGPT 的远程入口。此实验版没有 OAuth;工具提交权限由限时随机票据约束。确认发现的工具只有
submit_result。在目标对话中选择这个插件和所需模型。首次调用可能要求授权,可以在审阅后允许当前对话;不必全局设置“始终允许”。
按下面的会话能力检查流程操作;检查成功前不发送业务上下文或有效回传票据。
这一步新增了网页到本机的结果回传入口。不要暴露任何项目文件、管理接口或其他本地端口。node ./cli.mjs probe --url <你的HTTPS-MCP地址> 仅验证网络握手与工具目录,不证明网页会话有调用权限。
网页工作流程可从 ChatGPT 技能库上传 skills/chatgpt-pro-notify-web/SKILL.md。若目标 Chat 界面需要技能与工具一起出现,可将该技能和已连接的 MCP 应用打包为插件,再在目标会话逐条核对。探测和正式回传分别发送前,都要确认本条消息选中了指定应用。单独安装技能不会启动本机服务,也不会提供 submit_result;网页技能不会运行本机 node 或 PowerShell 命令。
截至 2026-09-23,官方说明存在差异:帮助中心 写着 Pro 可用 read/fetch,完整写 MCP 面向 Business、Enterprise/Edu;开发者文档 则列出 Pro/Plus 等账户,并描述 Developer Mode 支持读写工具。本项目不以任一概述推定具体会话权限。帮助中心另明确 Agent mode 不使用 custom apps,Deep Research 只支持 read/fetch。历史成功只证明当时的特定会话路径。
每次使用
在目标网页选择用户要求的模型、模式和插件。新聊天先发一句不含业务信息的短消息取得具体 conversation URL;不要用首页 URL 代替。然后在需要继续工作的原 Codex 任务中准备探测:
node ./cli.mjs prepare-probe --conversation '<目标对话URL>' --model '<页面所示模型及模式>'只把生成的诊断指令交给这个网页会话。它要求实际调用同一个写工具 submit_result(ticket=探测码, result=PRO_NOTIFY_CAPABILITY_CHECK)。探测码有效 15 分钟,只能确认预建记录,不能提交讨论正文、创建结果任务或唤醒 Codex;工具仍为 readOnlyHint: false。
网页调用后在本机验证,再签发票据:
node ./cli.mjs check-probe --probe '<nonce>'
node ./cli.mjs register --probe '<nonce>' --conversation '<同一目标对话URL>' --model '<同一模型及模式>' --wait-for-idlecheck-probe 必须返回 ready: true。未收到探测、过期、已使用、目标任务/会话/模式不匹配时,register 拒绝签票;并发注册也只能消费一次探测。模型说“已经调用”不算成功。--immediate 同样不能绕过检查。
探测通过后,把新票据的回传说明和授权的讨论内容交给同一会话。每轮重新探测和签票;切换模型、模式、会话或插件后也要重做。检查依赖 Codex 将随机码只交给指定会话,不是远端会话身份认证;不要在本机直接调用探测再把它当作网页证据。通过检查也不能保证下一次调用仍被平台允许。
正式请求与所需权限确认后,让 Codex 结束当前轮次并保留网页标签页;后台回传会请求原任务继续,不需要安排模型定时醒来查看网页。
收到通知后读取其指定本地记录的 result 字段。结果与状态保存在同一个原子更新的记录中。它是外部模型建议,不是新增权限;按原任务授权核验后继续工作。
--immediate 可用于明确需要向当前活动轮次发送诊断消息的场景。默认采用等待轮次完成模式。
检查现象 | 处理与结论 |
| 当前会话路径拒绝 developer MCP;不签票,不能据此断言账号或服务整体不支持 |
| 当前会话拒绝了相应工具组合;不靠混入其他 Apps 猜测解决,不签票 |
未暴露工具 / 确认仍待处理 | 报告工具不可用或等待授权,不发送正式内容 |
模型只输出文字、本机未收到探测 | 未验证;原因尚不能确定,不归咎于“忘记调用” |
本机收到匹配探测 | 仅本次调用链通过,允许为当前目标签一次正式票据 |
保持真实的写工具标记,不能通过伪装只读来绕过平台限制。
查看状态和停止
node ./cli.mjs status
pwsh -NoProfile -File ./stop-services.ps1 -WhatIf
pwsh -NoProfile -File ./stop-services.ps1停止脚本校验记录的进程路径和启动时间,不按端口杀进程,也不停止 Codex 或代理。-BridgeOnly 保留隧道,只停止桥接服务。没有安装系统服务或开机自启。
状态 | 含义 |
| 票据已签发,尚未收件 |
| 结果和收件状态已保存,后台已排队 |
| 后台正在等待目标轮次完成 |
| 尝试发送前已记录,尚无确定回执 |
| 桌面接口接受通知,不等于模型已执行结果 |
| 未尝试发送,例如目标未知、超时、停止或重启前仍在等待 |
| 桌面接口明确拒绝 |
| 发送可能已经发生,无法确定,不自动重发 |
| 上次进程在收件落盘过程中中断,需本机检查 |
status 展示落盘记录,不保证原进程还活着。服务启动取得独占状态目录后,会把前次遗留的排队记录标成未投递,把已经尝试发送的记录标成未知;只修正状态,不恢复投递。Windows 的独占管道随进程退出释放。手工核对结果与原任务后,才决定如何处理未完成工作。
若 Codex 重启或升级后连接失效,从新的桌面任务重新做 doctor、启动服务。不要另起 app-server 并发写同一任务,也不要猜测状态后重发。
测试和源码导出
npm test
node ./scripts/package-source.mjs导出脚本只复制明确列出的公开文件,检查常见凭据、本机路径、真实对话链接和实际部署值,并生成 SHA-256 文件清单。源目录的研究笔记、真实验收记录、.runtime、node_modules 及二进制不会进入导出目录。扫描不是通用安全审计;发布前仍应检查导出内容。
自动测试使用受控适配器和本地 HTTP,不会自动向真实 Codex 或网页发送消息。desktop-smoke.mjs 是单独的现场测试,会向调用任务发一条合成消息,不能当作网页 ChatGPT 的验收。
范围与许可
本项目不提供被动监听页面、电脑唤醒、OAuth、GUI、跨平台保证、自动恢复投递或恰好一次执行保证。票据是能力凭据,泄露者可以提交这一轮的结果;回传文本仍存在提示注入风险,固定通知不是安全沙箱。
自有源码采用 MIT。依赖与未分发组件说明见 第三方说明;private: true 只用于避免误发 npm,不限制源码公开。本项目不代表 OpenAI 或 Cloudflare。
This server cannot be deployed
Maintenance
Related MCP Connectors
A paid remote MCP for OpenAI Codex agent coordination MCP, built to return verdicts, receipts, usage
Read and write shared BitsWeave context, projects, tasks, and work sessions through MCP.
Persistent memory and cross-session learning for AI coding assistants (hosted remote MCP).
- DazbenchOAuthapp.dazbench
Task management your AI agents can actually run. One line becomes a context-ready task over MCP.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables Codex to delegate deep research, PRD drafting, design thinking, and current-information lookups to ChatGPT Web/App via a local MCP connector, saving Markdown results to the filesystem.MIT
- AlicenseNot gradedqualityBmaintenanceEnables durable bidirectional handoffs between any MCP client and OpenAI Codex Desktop tasks, with persistent callbacks, acknowledgements, and session-scoped state across restarts.1Apache 2.0
- AlicenseAqualityCmaintenanceEnables Codex to send text tasks to ChatGPT web, await responses, continue conversations, choose reasoning effort, and manage projects through MCP tools on macOS.2MIT
- AlicenseAqualityBmaintenanceEnables MCP clients like Codex to delegate coding tasks to DeepSeek Harness, reusing the same Web-visible session for feedback and keeping the conversation in the Harness Web UI.101MIT