AI导航

MCP协议使用哪种消息格式?

AI百科
2 min read
55 次阅读

MCP协议使用的消息格式:JSON-RPC 2.0 全解析

一、消息格式概述MCP(Model Context Protocol)在客户端与服务器之间统一采用 JSON-RPC 2.0 作为消息封装格式。所有请求、响应及通知都严格遵循 JSON-RPC 2.0 规范,使通信结构清晰、易于解析与调试。

二、JSON-RPC 2.0 简介JSON-RPC 2.0 是一种轻量、无状态的远程过程调用协议,以 JSON 结构描述 idmethodparamsresult/error 字段,可脱离具体传输层独立使用,天然适配 MCP 的可插拔通道(Stdio、HTTP/SSE 等)。

三、为何 MCP 选择 JSON-RPC 2.0

  1. 跨语言易实现:JSON 数据结构简单,主流语言均有成熟库。
  2. 双向对等:同一连接内既可请求也可响应,适合 MCP 的双向调用场景。
  3. 与传输层解耦:消息可在本地管道、HTTP 长连接或 SSE 流中透明传递。
  4. 可扩展:ID 与参数字段不受限,方便增加能力协商、采样等新功能。

四、MCP 中的三类 JSON-RPC 消息

  1. 请求(Request):客户端或服务器主动调用方法,例如 mcp.runTool
  2. 响应(Response):对应请求返回 resulterror
  3. 通知(Notification):无需响应的单向推送,如进度事件。

五、与 REST 或 GraphQL 的对比

特性 JSON-RPC 2.0 REST/HTTP GraphQL
通信模型 方法调用 资源导向 查询语言
状态码/错误处理 结构化 error 字段 HTTP 状态码 自定义错误对象
长连接与流式响应 原生支持(双向) 需升级协议 需订阅机制
适配多工具调用

六、开发实践要点

  • 为每个请求生成唯一 id,方便追踪多线程或并发场景。
  • params 中仅传递必要字段,避免上下文过大导致 token 浪费。
  • error.code 采用统一枚举,便于 LLM 判断重试策略。
  • 结合传输层心跳或重连机制,保障长连接稳定性。

推荐工具

NVIDIA Chat with RTX AI聊天 Chat with RTX 是 NVIDIA 面向 RTX 电脑的本地 AI 聊天工具,可围绕本地文档和视频资料做问答,适合重视隐私、离线检索并具备硬件条件的用户更适合资料不便上传云 文心一言 AI聊天 文心一言 是百度文心大模型 AI 助手,支持百度 AI 聊天、文案创作和图像理解,适合中文用户和内容创作者完成 AI 对话、资料问答和任务协作,适合上线前核对权限、成本和资料质量。 HuggingChat AI聊天 HuggingChat 是 Hugging Face 的开源模型聊天应用,支持 Omni 自动选模型,也可手动选社区开放模型对话。它适合体验开源模型、技术探索和问答,结果可能不稳定,重要内容需复核。 纳米AI搜索 AI搜索 纳米AI 是 360 旗下 AI 搜索和智能体入口,支持文字、语音、拍照提问、多模型协作与内容创作,适合中文用户做日常搜索、学习问答、移动查询、热点追踪、生活决策、知识整理和轻量创作。 Meta AI AI聊天 Meta AI 是 Meta 的个人 AI 助手,可在网页、应用、AI 眼镜及 WhatsApp、Instagram 中使用,支持问答、图像理解和语音交流,适合社交与生活场景,部分功能受地区限制。 Pi AI AI聊天 Pi AI 是 Inflection AI 推出的个人 AI 助手,强调情绪理解、陪伴式交流、生产力建议和安全对话,可在 pi.ai 与移动端使用。它适合日常思考、学习陪练和规划,不替代专业心理支持。