MCP模型上下文协议的消息格式是其作为“数据标准”的核心体现。它严格遵循JSON-RPC 2.0 规范这是一种轻量级、无状态的远程过程调用RPC协议确保了不同系统间的通用性和互操作性。所有 MCP 消息本质上都是一个 JSON 对象其结构根据功能不同分为三类请求、响应和通知。 请求 (Requests)请求是由客户端Client或服务器Server发起的用于启动一个操作。每个请求都必须包含一个唯一的id以便与后续的响应进行匹配。基本结构json{ jsonrpc: 2.0, method: 方法名称例如 tools/call, params: { 参数键: 参数值 }, id: 唯一标识符可以是字符串或数字 }jsonrpc: 固定为字符串2.0。method: 要调用的方法名称如initialize、tools/list、tools/call。params: 一个包含方法所需参数的结构化对象。id: 请求的唯一ID响应中会原样返回此ID。示例调用一个查询天气的工具json{ jsonrpc: 2.0, method: tools/call, params: { name: get_weather, arguments: { location: 南京 } }, id: 1 }✅ 响应 (Responses)响应是对请求的回复其id必须与对应的请求id相同。响应分为成功和失败两种情况result和error字段二选一不能同时存在。成功响应结构json{ jsonrpc: 2.0, result: { 返回的结果数据 }, id: 与请求相同的标识符 }失败响应结构json{ jsonrpc: 2.0, error: { code: 错误码为整数, message: 错误的简要描述, data: 可选的额外错误信息 }, id: 与请求相同的标识符 }示例上述天气查询的成功响应json{ jsonrpc: 2.0, result: { content: 南京市今天晴气温25摄氏度。 }, id: 1 } 通知 (Notifications)通知是一种单向消息用于发送不需要接收方回复的信息。通知不包含id字段这是它与请求最显著的区别。基本结构json{ jsonrpc: 2.0, method: 通知的方法名称, params: { 可选的参数 } }示例客户端通知服务器即将关闭连接json{ jsonrpc: 2.0, method: notifications/closed }总而言之MCP 通过标准化的 JSON-RPC 2.0 格式清晰地定义了请求、响应和通知三种消息类型为 AI 智能体与外部世界的可靠通信奠定了坚实的基础。