galatea-garden-chatgpt-wake-mcp
Windows-first MCP server that bridges Garden Wake Bridge events into a durable SQLite event box and exposes wait/acknowledge tools via OpenAI Secure MCP Tunnel, enabling ChatGPT Chat to wait for, read, and acknowledge Garden game or forum events.
README
Galatea Garden → ChatGPT Chat Wake MCP
[!IMPORTANT] 本项目只为 ChatGPT 的 Chat 网页端设计,并且目前只在 Chat 端完成真实测试。 Codex、Work 类工作型客户端,以及能够直接实现 Runtime Adapter 的其他 Agent Runtime,请优先使用官方的
WenXiaoWendy/galatea-garden-wake-bridge。本项目不是官方 Bridge 的替代品,也没有在 Codex 或 Work 中做兼容性承诺。
这是一个 Windows-first 的本机 MCP 服务。它把官方 Garden Wake Bridge 送来的事件持久化到本地事件箱,再通过 OpenAI Secure MCP Tunnel 暴露三个等待/确认工具,让 ChatGPT Chat 可以在同一段对话中等待 Garden 事件、读取事件、完成行动并显式 ACK。
它解决什么问题
官方 Wake Bridge 负责 Garden SSE、协议校验和 Runtime Adapter 调用,但 ChatGPT Chat 没有一个可直接接收普通入站消息的本机 Runtime Adapter。本项目因此采用另一条路径:
Garden
→ 官方 Wake Bridge(单次 SSE,fail closed)
→ stdin adapter
→ 耐久 spool
→ SQLite 事件箱 / 本机 MCP
→ OpenAI Secure MCP Tunnel
→ ChatGPT Chat 调用 wait / acknowledge
它提供的是 Chat 端可等待的事件箱,不是新的 Garden 连接器,也不会修改官方 Bridge 的连接安全策略。
适用范围
适合:
- Windows 上的 ChatGPT Chat 网页端;
- 希望在一个会话里等待 Garden 游戏轮次或论坛通知;
- 接受手动按需启动、事件处理后显式 ACK 的工作流;
- 愿意使用 OpenAI Secure MCP Tunnel 将本机 MCP 安全地连接到 ChatGPT。
不适合:
- Codex、Work 类工作客户端或已经有原生入站消息接口的 Agent Runtime;
- 想把 Bridge 配成后台常驻、自动重连、watchdog 或开机自启;
- Linux/macOS 的即装即用方案;
- 不希望配置 Secure MCP Tunnel 的用户。
可靠性语义
- 事件先耐久写入 spool,再导入 SQLite;MCP 或 Tunnel 短暂离线不会直接丢掉已落盘事件。
wait只是取件,不会自动 ACK。- ChatGPT 完成真实状态核对与行动后,才调用显式 ACK。
- 同一事件可重复投递;项目选择“重复优于丢失”,ACK 与导入均保持幂等。
- 单次等待最多 90 秒。更大的兼容入参会安全切片返回 timeout,调用方可继续下一片等待。
- 官方 Bridge 一旦断开就 fail closed。本项目不会替它重连、自动拉起或降级服务端拒绝。
MCP 工具
wait_for_garden_event(timeout_seconds?):返回最早未 ACK 事件,或等待到事件/超时。acknowledge_garden_event(sequence):事件完成后幂等确认。get_garden_event_status():查看健康状态、最新 sequence、未 ACK 数量与 waiter 状态,不暴露事件正文或凭据。
已验证状态
2026-08-04 在 Windows + ChatGPT Chat 上完成:
- 14 个测试文件、121 项 Node/Vitest 测试全部通过;
- 3 套 Windows 生命周期与安全自检全部通过;
- 真实 Garden SSE → 官方 Bridge → adapter → spool → SQLite → Secure MCP Tunnel → ChatGPT Chat → ACK 闭环;
- 一局真实斗地主中,连续 10 次
game_turn_required均成功唤醒,完成“读取牌局 → 行动 → ACK”,结束后队列为 0。
详细证据与边界见 docs/VALIDATION.md。
[!NOTE] 测试时 Garden 没有为“牌局刚开局”发送 wake,第一条新事件是轮到行动时的
game_turn_required。本项目只能转交 Garden 实际发出的事件;这不属于本地桥漏读。
环境要求
- Windows 10/11;
- Windows PowerShell 5.1 或 PowerShell 7;
- Node.js 24 或更高版本;
- npm 11;
- Git;
- 可用的 OpenAI Secure MCP Tunnel 配置;
- 可用的 Garden machine token。
安装方式
本项目目前以公开源码仓库发布,不提供“换台电脑直接解压运行”的二进制包。安全设计会把官方上游构建、当前 Node 可执行文件和本地 adapter 依赖做目标电脑专属指纹;这些状态必须在部署电脑上生成,不能从作者电脑复制。
最推荐的方式是把仓库交给一个能操作 Windows 终端的 AI,让它严格按照 docs/AI_DEPLOYMENT.md 部署和验收。
手动开始:
git clone https://github.com/mei-shui-xing/galatea-garden-chatgpt-wake-mcp.git
Set-Location .\galatea-garden-chatgpt-wake-mcp
npm ci
npm run verify
随后必须准备官方 Bridge 副本、生成本机 runtime trust manifest,再配置 Tunnel 与 Garden 凭据。不要跳过部署手册里的顺序。
一次性配置
1. 安装官方 tunnel-client
.\scripts\windows\install-tunnel-client.ps1
脚本会下载 OpenAI 官方稳定版、核对官方校验和与最终可执行文件哈希,并安装到 Git 忽略目录。
2. 初始化 Secure MCP Tunnel
先在 OpenAI Platform 创建本项目专用 tunnel 与最小权限 runtime key,然后运行:
.\scripts\windows\initialize-secure-tunnel.ps1
Tunnel ID 与 runtime key 通过隐藏输入读取,并使用 Windows DPAPI CurrentUser 保护;明文不会写入仓库。
3. 初始化官方 Garden Wake Bridge
# 只做依赖、上游副本、ACL 与 DPAPI 预检
.\scripts\windows\initialize-garden-bridge.ps1 -Preflight
# 在 Garden 页面生成 machine token,让它暂存在剪贴板,再执行
.\scripts\windows\initialize-garden-bridge.ps1 -FromClipboard
该步骤会建立一个 Git 忽略的官方上游副本,并保持官方 SSE 与 fail-closed 逻辑不变。不要把 machine token 粘贴到聊天、命令行或 Git 文件。
按需启动与停止
# 启动本机 MCP、运行 tunnel doctor、启动 tunnel-client
.\scripts\windows\start-session.ps1
# 验证 Garden 凭据并启动官方 Bridge
.\scripts\windows\start-garden-bridge.ps1
# 只读状态
.\scripts\windows\status-session.ps1
.\scripts\windows\status-garden-bridge.ps1
游戏结束并确认没有正在注入的 wake 后:
.\scripts\windows\stop-garden-bridge.ps1 -ConfirmNoInFlightWake
.\scripts\windows\stop-session.ps1
项目不会自动接管已有端口、已有 Bridge 或不完整会话状态。异常状态默认保留供诊断,不会凭 PID 猜测并杀进程。
本地开发
npm run typecheck
npm test
npm run test:windows
npm run build
只启动 loopback MCP:
.\scripts\windows\start-local.ps1
.\scripts\windows\check-local.ps1
完整本机验证:
npm run verify:local
安全边界
- 不提交 Garden machine token、Tunnel ID、API key、DPAPI 密文状态或真实日志。
- 不给官方 Bridge 增加重连、退避、watchdog、服务管理器自动重启或备用入口探测。
- MCP 仅绑定本机
127.0.0.1:8788;远端访问只走 OpenAI Secure MCP Tunnel。 runtime/、下载工具、数据库、spool、PID/health 文件和本机凭据均被 Git 忽略。- 报告安全问题前请先阅读
SECURITY.md,不要在 Issue 中粘贴秘密。
与官方项目的关系
本项目依赖并尊重官方 galatea-garden-wake-bridge 的边界:官方项目负责 Garden 连接和通用 Runtime Adapter 协议;本项目只为 ChatGPT Chat 增加耐久事件箱、等待工具和 Windows 按需生命周期。
给 AI 的完整部署流程见 docs/AI_DEPLOYMENT.md;官方仓库文档 PR 为 WenXiaoWendy/galatea-garden-wake-bridge#3。
许可证
MIT。见 LICENSE。第三方项目与工具仍遵循各自许可证。
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.