跳到主要内容

Model Context Protocol

Host / Client / Server 三层架构、JSON-RPC 传输与 Tools/Resources/Prompts 三原语的协议机制

核心要点

  • MCP 是 AI 接外部工具的开放协议,"USB-C for AI"
  • 三层架构:Host / Client / Server
  • 数据层 JSON-RPC + 传输层 stdio / Streamable HTTP
  • Server 暴露 Tools / Resources / Prompts 三原语
  • Server 互相隔离,不跨 Server 通信

本文讲 MCP 协议机制。工具数量膨胀的应对见 04-工具发现与延迟加载,MCP 安全风险见 07-安全与沙箱

MCP 解决什么问题?

核心问题:每个 AI 应用对接每个工具都要写一套集成,这个 N×M 问题怎么破?

MCP 用一个统一协议取代 N×M 的自定义集成,常被类比为 AI 应用的 USB-C 接口[1]。Anthropic 于 2024 年 11 月发布[2],任何遵循 MCP 的 AI 应用都能即插即用任何 MCP server。

在 MCP 之前,M 个 AI 应用对接 N 个数据源需要 M×N 套集成代码。MCP 把它降到 M+N:应用实现一次 MCP client,工具实现一次 MCP server,两边通过标准协议握手。这条标准化思路是 MCP 生态快速扩张的基础。

MCP 架构的三层是什么?

核心问题:一次 MCP 调用里,谁负责什么?

架构分 Host、Client、Server 三层,职责清晰且 Server 之间相互隔离[1]

组件角色
HostAI 应用本体,协调 LLM 采样、聚合多个 Server 的上下文
ClientHost 内为每个 Server 建立的连接组件,与 Server 1:1 有状态会话
Server暴露工具/资源/提示词的程序,本地或远程,职责单一、可组合

@tbl-agent-tool-mcp-components MCP 三层组件角色说明:Host 协调采样、Client 维持 1:1 会话、Server 暴露工具/资源/提示词

关键安全特性:Server 看不到完整对话,也不能跨 Server 通信,隔离由 Host 强制执行。这一隔离设计是 MCP 安全模型的基础(攻击面分析见 07-安全与沙箱)。

图 5.1: MCP 三层架构:Host 内每个 Client 与一个 Server 维持 1:1 有状态会话,Server 之间相互隔离且看不到完整对话

数据怎么传?

核心问题:Client 和 Server 之间用什么协议、走什么信道?

协议分数据层(JSON-RPC 2.0)和传输层(屏蔽底层信道),传输有 stdio 和 Streamable HTTP 两种[3]

  • 数据层:JSON-RPC 2.0,定义生命周期、原语调用、通知。
  • stdio 传输:本地子进程,零网络开销,适合本地工具。
  • Streamable HTTP: spec 2025-03 修订引入,取代旧的 HTTP+SSE,单端点支持 POST + 可选 SSE,带会话管理和断线重连,适合远程 server。

分层让协议语义与传输信道解耦:同一套工具定义,既能跑在本地 stdio,也能跑在远程 HTTP。

Server 暴露哪些原语?

核心问题:一个 MCP server 能向 agent 提供哪几类能力?

Server 侧三原语:Tools、Resources、Prompts[1]。三者覆盖 agent 与外部交互的不同模式。

  • Tools:可被模型调用的动作(函数),是 agent 最常用的原语。
  • Resources:可读取的上下文数据(文件、数据库记录),由应用按需拉取。
  • Prompts:预定义的提示词模板,供用户/应用复用。

此外 Client 侧还有 Sampling、Elicitation、Logging 等原语支持反向交互。工具列表通过 tools/list 获取且设计上可动态更新——这正是 04-工具发现与延迟加载 应对工具爆炸的协议基础。

Takeaway

知识点核心结论
定位统一协议取代 N×M 集成,"USB-C for AI"
三层架构Host(协调) / Client(1:1 会话) / Server(暴露能力)
隔离Server 看不到完整对话、不跨 Server 通信,Host 强制
传输数据层 JSON-RPC + stdio(本地) / Streamable HTTP(远程)
原语Server 侧 Tools / Resources / Prompts

参考资料

  1. MCP Specification. Architecture. 2025. https://modelcontextprotocol.io/docs/learn/architecture
  2. Anthropic. Introducing the Model Context Protocol. 2024. https://www.anthropic.com/news/model-context-protocol
  3. MCP Specification. Transports. 2025. https://modelcontextprotocol.io/specification/2025-11-25/basic/transports

延伸阅读