基础协议

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

类型 描述 要求
请求 发送以启动操作的消息 必须包含唯一 ID 和方法名
响应 对请求的回复消息 必须包含与请求相同的 ID
通知 无需回复的单向消息 不能包含 ID

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

协议层

模型上下文协议由几个协同工作的关键组件组成:

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

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

这些协议层在实现客户端和服务器之间丰富交互的同时,建立了明确的关注点分离。模块化设计使实现能够精确支持所需的功能。

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

认证

认证和授权目前不是 MCP 核心规范的一部分,但我们正在考虑在未来引入它们的方法。欢迎加入我们的 GitHub 讨论,帮助塑造协议的未来!

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

模式

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

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

文章目录