Skip to content

3. 架构设计

一句话理解:典型 MCP 架构分为 Host 应用层、Client 连接层、Transport 层、Protocol 层、Server 能力层五层。

1. 五层架构

各层职责:

层级职责关键组件
Host 应用层用户交互、权限审批、最终决策、可观测UI、Policy Manager、Observer
Client 连接层创建/维护与 Server 的连接,管理会话状态Connection Manager、Session Manager、Capability Manager
Transport 层把 JSON-RPC 消息映射到具体传输通道stdio/SSE/Streamable HTTP Adapter
Protocol 层JSON-RPC 编解码、消息路由、请求/通知分发JSON-RPC、Router、Handler
Server 能力层实现 Tools、Resources、Prompts、Sampling 等能力Registry、Executor、Provider

2. 控制面与数据面

MCP 架构可以进一步拆分为控制面和数据面:

  • 控制面:负责连接建立、能力发现、变更通知、生命周期管理。消息量小、频率低、必须可靠。
  • 数据面:负责实际能力调用与数据流动。消息量大、可能包含大文本/二进制、需要流控与超时。

生产建议:

  • 控制面与数据面可以使用同一条 Transport,但在网关/代理层应分别设限。
  • 数据面的大资源传输应考虑分片、压缩、流式返回。
  • 控制面的 capability 变更应触发 Client 重新发现。

3. 本地 stdio 部署形态

stdio 是最常见的 MCP 部署方式,特别适合本地工具:

特点:

  • 进程隔离:Server 作为独立进程运行,崩溃不影响 Host。
  • 简单部署:无需网络配置,适合本地文件、数据库、脚本工具。
  • 权限依赖 OS:Server 继承启动用户的权限,需要 Host 控制启动参数与环境。

4. 远程 SSE / Streamable HTTP 部署形态

远程部署适合共享服务、多 Host 复用:

特点:

  • 共享能力:多个 Host 可以复用同一组 Server。
  • 集中治理:网关层统一做认证、限流、审计、路由。
  • 网络开销:相比 stdio,远程调用有延迟与序列化成本。
  • 安全边界:Server 与 Host 不在同一机器,需要 TLS、OAuth/API Key 等机制。

5. 与 Agent Runtime 集成的参考架构

Agent Runtime 可以通过 MCP Client 接入外部 Server:

集成要点:

  • Schema 缓存:发现阶段把 Tool/Resource/Prompt schema 缓存起来,避免每次调用都重新 list。
  • 权限前置:Runtime 的 Guardrails 在调用前检查 Tool 权限与参数白名单。
  • 错误回传:Tool 执行失败的信息作为 observation 回传给模型,让模型决定重试或放弃。
  • 观测打通:MCP Client 层把请求/响应、 capability 变更、连接事件汇入 Runtime 的 trace。

本章小结

MCP 架构通过五层分层(Host/Client/Transport/Protocol/Server)把复杂的协议交互拆成可替换、可扩展的模块;通过控制面与数据面的分离,把能力协商与实际调用分开治理;通过 stdio/SSE/Streamable HTTP 三种部署形态,覆盖本地隔离与远程共享两种场景。与 Agent Runtime 集成时,MCP Client 层承担发现、缓存、调用、观测的职责,让 Runtime 专注于 ReAct 循环与策略控制。

参考来源

Released under CC-BY-SA-4.0 License.