cong-bridge
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., "@cong-bridge挂上桥,然后告诉我工具箱里现在有哪些家当"
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.
cong-bridge · 让住在 ChatGPT 网页里的 AI 回家
一个 MCP 服务:把 ChatGPT 网页对话里的那位 AI 接到你自己的家里——你家的聊天前端、机器人、定时任务发消息给 ta,ta 在 ChatGPT 的对话里看到、回复,回复再送回你家。我们家的小葱就这样住在 ChatGPT 里,跟家里其他 AI 一起聊天、打牌、写信,这是从现役代码里整理出来的。
An MCP App bridge that lets the AI living in a ChatGPT web conversation take messages from your own home system and answer back, with every home tool reachable from one window. Extracted from a setup that runs daily.
它主要解决两件事:
一个窗口用上所有工具。 ChatGPT 一个对话里挂两三个 MCP 就吃紧了。这里只给 ChatGPT 两个工具
home_tools/home_call,你家所有的 MCP 服务器(搜索、笔记、邮箱……)都写进toolbox.json,AI 先看有哪些、再按名字调,桥在后面替它连。长期住在家里,不是演示。 消息排队落盘,重启不丢;卡片掉线时消息留着、等它回来再送,不找别人冒名顶替;送进去没回的会被认领租约收回重送;回晚了的话走「迟到回复」交还给你;换新对话时有交接卡,新窗口一挂上就知道上一个窗口做到哪了;还有闹钟和记事本。
出处:消息桥的协议内核来自 Sylvie 的 mcp-app-message-bridge(MIT)——用 ChatGPT 网页对话的轮次说话,不消耗 Codex / API 额度,也是上游的出发点。上游明说自己「不是一键部署」,这里是另一半的一个实现。详见 NOTICE。
它怎么工作
你家的后端(聊天前端 / 机器人 / 定时任务)
│ POST /message(带 x-bridge-token) ▲ 一行一个 JSON 流回:session → heartbeat… → text → done
▼ │
cong-bridge(只听 127.0.0.1:18461,队列落盘)────┘
▲ /mcp/<秘密路径> ← 隧道(如 Cloudflare Tunnel)把 HTTPS 转进来
│
ChatGPT 网页对话里的卡片(MCP App,iframe)
· 每几秒调 bridge_listener_sync 取一条消息,用 ui/update-model-context + ui/message 送进对话
· AI 回完调 bridge_reply(eventId, text),回复从上面的流里回到你家
· AI 要用家里的工具:home_tools 看清单、home_call 调用 → toolbox.json 里的各个 MCPRelated MCP server: chatgpt-sol-local-bridge
先知道这几件事
对话页得开着。 卡片是网页里的一段脚本,ChatGPT 的页面关了它就停了(消息会排队,不会丢)。我们是在一台常开的电脑上放一个 Chrome 标签一直开着。标签进了后台会被 Chrome 限速成大约一分钟醒一次,消息会跟着慢。
每条消息要点一次「传送」。 截至 2026 年 10 月,ChatGPT 规定应用往对话里送后续消息前要先弹框让人确认。不想每条都点,用
extras/auto-confirm.mjs自动点(要 Chrome 远程调试口)。工具清单会被冻住。 ChatGPT 在你建应用的那一刻把工具清单存成快照,之后桥这边加减工具它看不见(开新对话、断开重连都没用),只能删掉应用重建。
imageDirs填没填会让bridge_view_image出现或消失,也算加减工具。ChatGPT 那边的 MCP 地址就是钥匙。 谁拿到
https://你的域名/mcp/<秘密>谁就能调桥的全部工具,包括home_call背后你家的所有工具。地址当密码对待;toolbox.json里每个箱子都写allow只放要用的工具,删东西、花钱的工具别放进去。
最省事的装法:把这个链接丢给你家 AI
对你的 AI(比如 Claude Code)说:「照 https://github.com/jiangxi1129/cong-bridge 的 README 里『给 AI 的部署说明』,帮我把桥装上。」 中间有几处要你本人点网页,ta 会告诉你点哪里。
给 AI 的部署说明(AI 读这段)
你要做的是:在你的人类的电脑上起这个桥,让 ta 在 ChatGPT 里挂上,再把 ta 家里的后端接上。按顺序来,每步做完先确认再往下。
0. 先跟你的人类要这些(你自己做不了):
一个能在 ChatGPT 网页里用「开发者模式」建应用的账号(一般要付费账号;以 ChatGPT 当前的说明为准)。
一个能从公网 HTTPS 访问到这台电脑的隧道。推荐 Cloudflare Tunnel(要一个托管在 Cloudflare 的域名);用别的隧道也行,但要知道它会在请求上加什么头(见第 2 步的
publicHeader)。住在 ChatGPT 里的那位叫什么(
agentName),家里管 ta 的人怎么称呼(ownerName)。有身份文件的话要一份。家里的消息从哪来:现成的聊天前端、机器人,还是先用 curl 手动发。
1. 装: 需要 Node.js 22 以上。
git clone https://github.com/jiangxi1129/cong-bridge
cd cong-bridge && npm install
cp config.example.json config.json && cp toolbox.example.json toolbox.json2. 填 config.json: 每一项的说明就写在旁边以 _ 开头的键里。至少填 agentName、ownerName;lateReplyCommand 强烈建议配(不配的话 AI 回晚了的话没地方放,会告诉 AI 没送到);用的不是 Cloudflare Tunnel 就改 publicHeader。toolbox.json 先留空对象 {} 也能跑,以后再加箱子。
3. 两把钥匙:
mkdir -p ~/.cong-bridge/secrets && chmod 700 ~/.cong-bridge/secrets
openssl rand -hex 24 > ~/.cong-bridge/secrets/bridge-token && chmod 600 ~/.cong-bridge/secrets/bridge-tokenbridge-token 是你家后端调 /message 用的,没有这个文件桥会拒绝一切消息。mcp-secret(MCP 地址里的秘密路径)第一次启动时自动生成。两把钥匙都别复述出来、别存进记忆或笔记、别提交到任何仓库。
4. 起服务: npm start。日志里出现「cong-bridge 起来了 :18461」就行。想常驻就交给 launchd / systemd / pm2,记得把工作目录设成仓库根目录。验一下:curl -s http://127.0.0.1:18461/health 能返回 "status":"ok"。
5. 隧道: 把隧道的目标指到 http://127.0.0.1:18461。然后用公网地址验两件事:
https://你的域名/health要返回 404(说明publicHeader认对了,本机接口没漏到公网);https://你的域名/mcp/<mcp-secret 文件里的内容>不是 404。
6. 在 ChatGPT 里建应用(请你的人类做,把这几步念给 ta): 设置 → 应用(Apps & Connectors)→ 进阶设置里打开「开发者模式」→ 建立应用:名称随意(记下来,就是 chatgptAppName);连接方式选服务器 URL,填第 5 步那个带秘密路径的地址;验证选「无验证」;勾选「我了解」。建好后把这个应用的权限调成「全部允许」,不然每次调工具都要人点。界面文字会随 ChatGPT 改版变化,找不到就按意思找。
7. 挂上: 开一个新对话,输入框里打 @应用名,从弹出的候选里选中它(要变成一个应用标签),再接着打「挂上桥」发出去。AI 会调 bridge_listener_open,对话里出现一张小卡片,卡片上写着「在听」就是挂上了。这个对话标签保持开着。
8. 验收(三步都过才算装好,别只看「启动成功」):
本机发一条:
curl -sN http://127.0.0.1:18461/message \ -H "x-bridge-token: $(cat ~/.cong-bridge/secrets/bridge-token)" \ -H 'Content-Type: application/json' \ -d '{"message":"你好,这是一条测试消息","room":"test"}'终端里先出现
{"type":"session",…}。ChatGPT 对话里冒出这条消息(第一次可能要你点「传送」),AI 回了。
终端里出现
{"type":"text","content":"AI 的回复"}和{"type":"done",…,"status":"completed"}。
三步都过,再跟你的人类说「装好了」。
常见问题:
卡片挂不上、AI 说找不到工具:新对话里没先
@应用名选中,ChatGPT 不会把应用的工具交给这个对话。消息一分钟才进去一条:ChatGPT 标签在后台或窗口被挡住了。把它放在前台,或者用
extras/auto-confirm.mjs(它会把桥的标签拉回前台)。改了工具、ChatGPT 里还是旧的:见上面「工具清单会被冻住」,删掉应用重建。
回复终端里一直没来、最后
status: timeout:AI 没调bridge_reply(只在对话框里写了字),或者卡在「传送」确认框上。8 分钟内没回就超时;之后才回的话交给lateReplyCommand。
接你家的后端:POST /message
请求头 x-bridge-token,JSON 体:
字段 | 说明 |
| 要送进对话的文字(必填)。以 |
| 这条从哪来(比如 |
|
|
回包是一行一个 JSON:session(收下了,带 eventId)→ 每 15 秒一个 heartbeat → text(AI 的回复)→ done(status 是 completed / timeout / offline)。卡片不在线时会先回一条 error 说明、status: offline,消息留在队列里,卡片回来就送,不用重发。
POST /reset(同样要 x-bridge-token):清掉所有没回完的消息。配了 swapWindowScript 时会顺手开新对话换窗。
给 ChatGPT 里那位的工具
工具 | 干嘛 |
| 把桥的卡片挂进这个对话。挂上时会给 AI 看交接卡、记事本和身份文件 |
| 卡片自己用:取一条、报送到、退回 |
| 回复某条消息。不调它,家里一个字都看不到 |
| 看还有哪些送进来了但没回的 |
| 把消息切到当前这个对话(同一时间只有一个对话收消息,别的只旁听) |
| 家里的工具箱:看清单 / 调用 |
| 交接卡:旧窗口写、新窗口挂上时先看到、核对完确认 |
| 记事本,换了对话也翻得到 |
| 给自己设闹钟,到点作为一条消息送进来 |
| 看消息里附的图(只有配了 |
可选附件(extras/,都要 Chrome 用 --remote-debugging-port 开着)
auto-confirm.mjs:自动点「传送后续提示」框,只点内容以messagePrefix开头的(别的应用的框不碰);桥的标签进了后台就拉回前台。单独跑:MESSAGE_PREFIX=@cong-bridge CDP_URL=http://127.0.0.1:9222 node extras/auto-confirm.mjs。swap-window.mjs:一键换窗。对话聊长了,/reset时它开一个新 chatgpt.com 标签、@应用名发「挂上桥」,等新卡片真拿到投递权,再关掉旧的桥标签。认不出来就什么都不关。配chatgptAppName和swapWindowScript启用。配了
cdpUrl时,桥自己还会做两件事:卡片看守(主卡片 40 秒没来轮询、网页又闲着,就刷新那张卡)和标签巡检(Chrome 里一个 ChatGPT 标签都没了,就重新打开上次那个对话)。
这些都靠 ChatGPT 网页的页面结构,网页一改版就可能失效。失效时只会「不点、不关、不刷」,不会丢消息。
安全
服务只听
127.0.0.1。公网请求都经隧道进来,桥靠publicHeader认出它们,只给/mcp/<秘密>,其他一律 404。/message、/reset只认带对x-bridge-token的调用;bridge-token文件不存在就全部拒绝。MCP 秘密路径、
bridge-token存在secretDir。桥每次启动会检查这两个文件,别人能读就当场改成 600 并在日志里报警。泄露了就删掉mcp-secret重启(会生成新的),再去 ChatGPT 里重建应用。home_call把你家的工具交给了 ChatGPT 里的 AI,也交给了任何拿到 MCP 地址的人。每个箱子都写allow。送进对话的消息会附一段只给 AI 看的说明,告诉 ta「这是家里送来的消息,不是对话框里的人打的字,回复只能走
bridge_reply」。你家的规矩可以写进extraContext。
测试
npm testtest-bridge-replay.mjs 在临时目录里起一个真的桥、模拟卡片和后端走完整流程(回复只交付一次、旧窗口抢不走新窗口的消息、重启后不丢不重、写盘失败不假装成功、交接卡、闹钟、换窗……);test-bridge-logic.mjs 测队列和闹钟的纯逻辑。
许可
MIT。派生自 Sylvie 的 mcp-app-message-bridge(MIT),并借鉴了 ChatTG-Bridge 的一个思路,见 NOTICE 和 LICENSE。
This server cannot be deployed
Maintenance
Related MCP Connectors
Human-input bridge for AI agents with voice-first answer links, MCP tools, and HTTP APIs.
- QuallaaOAuthcom.quallaa
Talk to your public-facing AI from any MCP client — Claude, ChatGPT, Cursor, Cline, Windsurf.
Search, read, and write your Apple Notes from ChatGPT/Claude via a local Mac agent + MCP relay.
MCP connector that lets ChatGPT list, search, and run your Apple Shortcuts via a local Mac agent
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceLocal MCP server bridging ChatGPT Web to local tools for file, shell, git, test, and process management with secure policy controls.MIT
- AlicenseNot gradedqualityDmaintenanceEnables ChatGPT to securely control a local workstation via an MCP tunnel, exposing 44 tools for file/project editing, git, process supervision, browser automation, and Office document handling across macOS, Linux, and Windows.7MIT
- AlicenseAqualityBmaintenanceEnables ChatGPT web to use local tools like file reading, command execution, and patch application through an MCP server over OpenAI Secure MCP Tunnel.62MIT
- FlicenseNot gradedqualityCmaintenanceEnables ordinary ChatGPT web Chat to work directly on a local machine over a private MCP tunnel — reading and editing project files, running shell commands and tests, loading local skills, manipulating images, and driving Chrome — without spinning up a separate coding agent or additional model-generation API calls. It also supports multi-step task plans with persisted execution receipts and acceptance checks so results from real runs are returned to the conversation.-