English
主导航

MCP

了解模型上下文协议如何与 Apps SDK 协同工作。

什么是 MCP?

The 模型上下文协议 (MCP)是一个开放规范,用于将大型语言模型客户端连接到外部工具和资源。MCP 服务器会暴露 工具 ,模型可以在对话期间调用这些内容,并根据指定的参数返回结果。其他资源(元数据)可以随工具结果一并返回,包括我们可以在 Apps SDK 中用于渲染界面的内联 HTML。

借助 Apps SDK,MCP 是保持服务器、模型和 UI 同步的核心骨干。通过标准化传输格式、身份验证和元数据,它使 ChatGPT 能够像推理内置工具一样推理你的应用。

协议构建块

一个为 Apps SDK 打造的最简 MCP 服务器可实现三项功能:

  1. 列出工具 – 你的服务器会公布其支持的工具,包括它们的 JSON Schema 输入和输出约定以及可选的注解。
  2. 调用工具 – 当模型选择使用某个工具时,它会发送一个 call_tool 请求,其中包含与用户意图相对应的参数。你的服务器执行操作,并返回模型能够解析的结构化内容。
  3. 返回组件 – 除了工具返回的结构化内容之外,每个工具(在其元数据中)都可以选择指向一个 嵌入式资源 ,该资源代表要在 ChatGPT 客户端中渲染的界面。

服务器还可以在 MCP 初始化期间返回可选的 instructions 。ChatGPT 和 Codex 将它们用作服务器级别的跨工具工作流指导、约束、速率限制以及其他不属于单一工具描述的上下文信息。

该协议与传输方式无关,你可以通过 Server-Sent Events 或 Streamable HTTP 来托管服务器。Apps SDK 支持这两种选项,但我们推荐使用 Streamable HTTP。

为什么 Apps SDK 基于 MCP 进行标准化

通过 MCP 进行开发可为你带来以下立即可用的好处:

  • 发现集成 – 模型使用你的工具元数据和表面描述的方式与使用第一方连接器完全相同,从而实现自然语言发现和启动器排名。请参见 发现 for details.
  • 服务器级别指导 – 可选的服务器指令为模型提供了单个工具描述无法单独涵盖的跨工具上下文。
  • 对话感知 – 结构化内容和组件状态在对话中流转。模型可以检查 JSON 结果,在后续多轮对话中引用 ID,或者在稍后再次渲染该组件。
  • 多客户端支持 – MCP 具有自描述性,因此你的连接器无需编写自定义客户端代码即可在 ChatGPT 网页端和移动端通用。
  • 可扩展的身份验证 – 该规范包含受保护的资源元数据、OAuth 2.1 流程、带有公共客户端或 private_key_jwt 令牌交换的 Client ID Metadata Documents,以及 DCR,让你无需发明专有握手协议即可控制访问权限。

后续步骤

如果你刚开始接触 MCP,我们建议从以下资源入手:

熟悉了 MCP 基础组件之后,你可以继续阅读 设置服务器 指南以了解实现细节。