Node 与 Python 双实现 MCP 服务器
同一批示例分别用官方 MCP TypeScript SDK 和 Python FastMCP 实现服务器,例如 pizzaz_server_node 与 pizzaz_server_python 提供功能对应的 Node 与 Python 版本,可按技术栈选择参考实现。
BAIZE AI RESOURCE
openai-apps-sdk-examples
OpenAI Apps SDK 官方示例库,含 MCP 服务器与 ChatGPT 小组件

本资源的内容依据上游仓库、说明文档和已保存的版本信息整理,用于帮助使用者了解其交付内容与基本使用边界。开始前请先阅读资源包中的中文说明,并核对当前版本、操作系统、运行环境、依赖组件以及许可证要求。安装或配置时只使用上游明确提供的命令和文件,不执行来源不明的脚本,也不要把示例配置直接用于生产环境。如果文档未说明某项能力、平台兼容性或外部服务要求,应将其视为尚未确认,并到上游仓库核实。完成配置后,建议先在隔离环境验证主要功能、文件完整性和访问权限,再根据实际场景逐步启用。
同一批示例分别用官方 MCP TypeScript SDK 和 Python FastMCP 实现服务器,例如 pizzaz_server_node 与 pizzaz_server_python 提供功能对应的 Node 与 Python 版本,可按技术栈选择参考实现。
工具响应通过 _meta.ui.resourceUri 或 _meta.openai/outputTemplate 指向 ui://widget/... 资源,将结构化内容与内嵌 HTML 小组件绑定,由 Apps SDK 在 ChatGPT 中渲染出对应界面。
Kitchen Sink Lite MCP server (Node)
MCP App Basics server (Node)
当受保护工具收到缺少令牌的请求时,服务端返回 mcp/www_authenticate 提示(基于 WWW-Authenticate 头)以及 /.well-known/oauth-protected-resource 元数据,使 ChatGPT 获知应使用的授权服务器并触发认证界面;携带有效令牌后,工具正常返回组件标记或结构化结果。
Cards Against AI 示例用 openai/widgetSessionId 把多次工具响应绑定到同一小组件 iframe,并通过自定义 SSE 端点把游戏状态推送到前端。
使用场景在 ChatGPT 中体验带界面的点单流程
pizzaz_server_node 与 pizzaz_server_python 暴露整套 Pizzaz 工具,返回列表、轮播、地图、商店与结账等多种视图,工具响应同时包含文本确认、结构化 JSON 与指向小组件模板的元数据。
使用场景学习 window.openai 宿主接口的完整用法
kitchen-sink-show 返回初始渲染模板与结构化内容,kitchen-sink-refresh 作为轻量回显工具供小组件通过 window.openai.callTool 回调,展示读写宿主状态与调用工具的方式。
使用场景构建需要实时状态同步的多人卡牌应用
服务器同时提供 MCP 端点与小组件资源,用 widgetSessionId 绑定同一 iframe,并通过自定义 SSE 端点把游戏状态推送到前端,游戏状态保存在内存 Map 中而非 MCP 会话。
使用场景为连接器接入第三方授权服务器
authenticated_server_python 暴露 search_pizza_sf(混合认证)与 see_past_orders(需 OAuth)两个工具,未携带令牌时返回认证提示与受保护资源元数据,引导 ChatGPT 启动 OAuth 流程。