用途:指导在 ChatGPT 对话中创建带交互式小组件(widget)的自定义应用。应用由 MCP 服务器(提供工具)与内嵌 HTML 小组件组成,二者通过 window.openai API 通信。
主要能力:介绍 window.openai 的三个接口——sendFollowUpMessage(代表用户发送后续提示,推荐用于操作按钮)、toolOutput(回传结构化数据,用于选择与表单提交)、callTool(在小组件内调用其他 MCP 工具)。同时给出 FastMCP 服务器模板、小组件注册表、响应元数据格式与开发流程。
使用方式:用 FastMCP 创建 MCP 服务器并定义小组件资源,MIME 类型为 text/html+skybridge;工具响应需在 _meta["openai.com/widget"] 中嵌入小组件资源,并通过 structuredContent 向小组件传数据。本地运行 python main.py(默认 http://localhost:8001),用 ngrok http 8001 暴露,再到 https://chatgpt.com/apps 开启开发者模式并创建应用,填入 MCP 服务器 URL。
限制与注意:ChatGPT 在沙箱 iframe 中渲染小组件,部分点击处理不可靠,复杂交互、链式工具调用、window.getSelection() 可能失效,建议改用简单的建议按钮模式;调用前须检查 window.openai 是否存在;小组件应自包含并使用内联样式;ChatGPT 会缓存小组件,更新需删除应用并重建隧道。资料未提供收费、价格与平台支持范围等信息。