协议版本: 2024-11-05
MCP 客户端与服务器之间的所有消息 必须 遵循 JSON-RPC 2.0 规范。该协议定义了 三种基本类型的消息:
类型描述需求
请求发送以启动操作的消息必须包含唯一ID和方法名称
响应消息回复请求时发送必须包含与请求相同的ID
通知不包含回复的单向消息不得包含ID
响应进一步细分为成功的结果错误。 结果可以是任意JSON对象结构,而错误必须至少包含错误代码和消息。

协议层

Model Context Protocol 由以下几个关键组件协同工作:
  • 基础协议:核心JSON-RPC消息类型
  • 生命周期管理: 连接初始化、能力协商和会话控制
  • 服务器功能: 服务器公开的资源、提示和工具
  • 客户端功能: 由客户端提供的采样和根目录列表
  • 工具:横切关注点,比如日志记录与参数补全
All implementations 必须 support the base protocol and lifecycle management components. Other components 可以 be implemented based on the specific needs of the application. 这些协议层建立了清晰的关注点分离,同时支持客户端与服务器之间的丰富交互。这种模块化设计让实现能够精确支持它们所需的功能。 有关不同组件的更多详情,请参阅以下页面:

认证

身份验证和授权目前不属于核心 MCP 规范的一部分, 但我们正在考虑在未来的版本中引入它们的功能。欢迎加入我们的 GitHub Discussions 讨论, 共同塑造协议的未来! Clients and servers 可以 negotiate their own custom authentication and authorization strategies.

模式结构

该协议的完整规范被定义为一个 TypeScript架构。 这是所有协议消息和架构的真实来源。 还有一个 JSON Schema, 它从 TypeScript 的源数据自动生成,用于各种自动化工具。