适合谁
- 希望学习 Apps SDK/MCP 组件化开发模式的前端与后端开发者
- 计划为 ChatGPT 构建自定义连接器应用的团队
- 需要参考真实代码示例(Node 与 Python 双语言)来理解 widget 渲染与状态同步机制的工程师
OpenAI 官方维护的 Apps SDK/MCP 示例仓库,提供多个可运行的 Node/Python 服务器示例(Pizzaz、Kitchen Sink Lite、Solar System、Authenticated、Shopping Cart),配合前端组件构建脚手架,用于教学与二次开发,而非直接面向最终用户的生产服务。
这是 OpenAI 官方仓库,收录了一系列示例 MCP 服务器与配套 UI 组件(widget),用于展示如何为 ChatGPT 构建基于 Apps SDK 的应用。仓库包含多个可独立运行的示例服务器:Pizzaz(Node 与 Python 双实现,展示列表、轮播、地图等视图及购物结账流程)、Kitchen Sink Lite(Node 与 Python,演示 window.openai 全部宿主 API,包括读取/写入 widget 状态、从组件内调用工具、请求切换显示模式等)、Solar System(Python,3D 太阳系可视化)、Authenticated(Python,演示不同级别的 OAuth 鉴权工具调用)、Shopping Cart(Python,演示如何用 widgetSessionId 在多轮工具调用间保持购物车状态)。仓库还提供 Vite 构建脚手架,将组件源码打包为可被 MCP 服务器直接引用的静态 HTML/JS/CSS 资源。定位是开发者学习和二次开发的起点,而非面向最终用户的生产服务。
pnpm install && pre-commit install(也可用 npm/yarn)。pnpm run build,产物输出到 assets/ 目录。pnpm run serve(默认监听 http://localhost:4444,已启用 CORS)。cd pizzaz_server_node && pnpm start;或 Python 版服务器(如 Pizzaz、Kitchen Sink、Solar System、Authenticated、Shopping Cart)需先创建虚拟环境并安装对应 requirements.txt,再用 uvicorn <module>:app --port 8000 启动。https://<endpoint>.ngrok-free.app/mcp)。MCP_ALLOWED_HOSTS 与 MCP_ALLOWED_ORIGINS 为隧道域名。BASE_URL(用于生成引用静态资源的 widget HTML)和 API_BASE_URL(供客户端 widget 构造完整 API 请求地址)。