扩展阅读

MCP Apps 在 ChatGPT 中的兼容性 – Apps SDK | OpenAI 开发者

OpenAI·2026/7/21·7 阅读

MCP Apps 在 ChatGPT 中的兼容性 – Apps SDK | OpenAI 开发者

来源: https://developers.openai.com/apps-sdk/mcp-apps-in-chatgpt 抓取时间: 2026-07-21 16:26:39


概述

ChatGPT 支持用于嵌入式应用 UI 的 MCP Apps 开放标准。 MCP Apps UI 在 iframe 内运行,并通过标准桥接(postMessage 上的 ui/* JSON-RPC)与主机通信。ChatGPT 实现了相同的 iframe-and-bridge 模型,因此您只需构建一次 UI,即可在 ChatGPT 和其他 MCP Apps 兼容主机上运行。 现有的 Apps SDK API 仍然受支持,新的实验性功能会首先在 Apps SDK 中发布。OpenAI 从 ChatGPT Apps 开始帮助制定了 MCP Apps 标准,新功能在经过形态和功能验证后会移入 MCP 规范。 默认情况下,使用 MCP Apps 标准密钥和桥接进行构建。当您需要 ChatGPT 特定功能时,使用 window.openai

推荐方法

对于新应用(以及现有应用内的新 UI 界面),从 MCP Apps 标准开始:

  1. 使用 _meta.ui.resourceUri 声明您的 UI
  2. 使用标准主机桥接postMessage 上的 ui/* JSON-RPC)进行初始化、通知和主机交互。

可选: 3. 仅当您需要共享规范未涵盖的功能时,通过 window.openai 叠加 ChatGPT 扩展。

MCP Apps 主机桥接 (ui/)

MCP Apps 定义了标准的 iframe 桥接:

  • 传输方式: window.postMessage 上的 JSON-RPC 2.0 消息
  • 命名空间: 用于 UI ↔ 主机交互的 ui/* 方法和通知
  • 工具调用: 使用 MCP 工具接口(例如,tools/call),而不是特定于主机的 UI 全局变量

这与 Apps SDK 的关系

Apps SDK 是构建和分发 ChatGPT 应用的受支持方式。ChatGPT 还实现了 MCP Apps UI 标准,因此您的 UI 可以在 MCP Apps 兼容主机上运行。 实际上:

  • 当有等效项时,使用 MCP Apps 标准密钥和桥接方法(_meta.ui.resourceUriui/*)。
  • 仅当您需要 ChatGPT 特定功能时,才使用 OpenAI 扩展。

这类似于 Web 平台:特定于供应商的 API 可以帮助提前交付,但一旦标准存在,文档应该以标准形式为主导。这是关于可移植性,而不是弃用。

通过 window.openai 的可选 ChatGPT 扩展

某些功能是 ChatGPT 特有的。当您使用它们时,将它们视为可选扩展,在 ChatGPT 中增加功能——同时不会阻止您的 UI 在其他 MCP Apps 主机中运行。 示例包括:

  • 即时结账 (window.openai.requestCheckout)
  • 文件处理 (window.openai.uploadFilewindow.openai.selectFileswindow.openai.getFileDownloadUrl)
  • 主机模态框 (window.openai.requestModal)

迁移和映射指南

本节将常见的 Apps SDK 模式映射到 MCP Apps 标准等效项。

工具元数据

目标MCP Apps 标准ChatGPT 兼容性别名
将工具链接到 UI 资源_meta.ui.resourceUri_meta[\"openai/outputTemplate\"]

主机桥接

目标MCP Apps 标准ChatGPT 扩展(可选)
接收工具输入ui/initialize \+ ui/notifications/tool-inputwindow.openai.toolInput
接收工具结果ui/notifications/tool-resultwindow.openai.toolOutput
从 UI 调用工具tools/callwindow.openai.callTool
发送后续消息ui/messagewindow.openai.sendFollowUpMessage
更新模型可见的 UI 上下文ui/update-model-contextwindow.openai.setWidgetState
围绕 MCP Apps 标准构建以实现可移植性,然后在可改善 ChatGPT 体验的地方叠加 ChatGPT 扩展。

扩展最佳实践

  • 功能检测 在调用扩展之前进行。
  • 优雅降级 当扩展不可用时。
  • 避免产品名称分支。 优先使用功能检测和渐进式增强,而不是假设特定的主机界面。
const openai = typeof window !== "undefined" ? window.openai : undefined;

if (openai?.requestModal) {
  await openai.requestModal({
    /* ... */
  });
} else {
  // 没有此扩展的主机的回退行为。
}

评论 (0)

暂无评论,快来抢沙发吧!

91学AI

© 2026 91学AI · 按岗位学 AI 与大数据. All rights reserved.