基础协议

ℹ️
协议修订版: 草案

MCP 客户端和服务器之间的所有消息 必须 遵循 JSON-RPC 2.0 规范。该协议定义了三种基本类型的消息:

类型描述要求
请求用于发起操作的消息必须包含唯一 ID 和方法名称
响应用于回复请求的消息必须包含与请求相同的 ID
通知无需回复的单向消息不得包含 ID

响应 进一步分为 成功结果错误。结果可以遵循任何 JSON 对象结构,而错误必须至少包含错误代码和消息。

协议层

Model Context Protocol 由几个关键组件组成,这些组件协同工作:

  • 基础协议: 核心 JSON-RPC 消息类型
  • 生命周期管理: 连接初始化、能力协商和会话控制
  • 服务器功能: 服务器暴露的资源、提示和工具
  • 客户端功能: 客户端提供的采样和根目录列表
  • 实用工具: 跨领域问题,如日志记录和参数补全

所有实现 必须 支持基础协议和生命周期管理组件。其他组件 可以 根据应用程序的具体需求进行实现。

这些协议层建立了清晰的关注点分离,同时支持客户端和服务器之间的丰富交互。模块化设计允许实现仅支持其所需的功能。

有关不同组件的更多详细信息,请参阅以下页面:

认证

MCP 为 HTTP+SSE 传输提供了一个 授权 框架。使用 HTTP+SSE 传输的实现 遵循此规范,而使用 STDIO 传输的实现 不应 遵循此规范,而应从环境中获取凭据。

此外,客户端和服务器 可以 协商自己的自定义认证和授权策略。

有关 MCP 认证机制演进的进一步讨论和贡献,请加入 GitHub Discussions,帮助我们塑造协议的未来!

模式

协议的完整规范定义为 TypeScript 模式。这是所有协议消息和结构的真实来源。

还有一个 JSON 模式,它是从 TypeScript 真实来源自动生成的,用于各种自动化工具。