已完成

MCP 协议架构

MCP 的架构让模型与工具像操作系统调用一样安全、可组合、可观测,是智能体生态的底层基石。

模型上下文协议(MCP, Model Context Protocol)定义了一个通用的通信标准,用于连接 大语言模型(LLM, Large Language Model)外部系统能力(工具 / 资源 / 上下文)。它通过统一的协议结构与传输语义,让智能体具备安全、可组合、可观察的执行环境。

本章将从架构角色、交互流程、核心元素到安全机制系统解析 MCP 的设计原理。

整体架构概览

MCP 的核心思想是将模型与外部世界之间的接口抽象为标准化协议栈,使 LLM 可以通过一致方式访问各种资源和工具。下方流程图展示了 MCP 架构的角色分工与连接关系:

图 1: MCP 架构角色分工与连接关系
图 1: MCP 架构角色分工与连接关系

下表总结了 MCP 架构的核心角色及其职责:

角色职责示例
Host(主机)运行模型与用户界面,协调上下文与工具访问Claude Desktop、VS Code Copilot
Client(客户端)实现协议通信与消息翻译,将模型指令转为 JSON-RPC 请求内置连接器或插件
Server(服务器)提供可调用工具、资源或提示模板Git、Filesystem、Playwright、Context7
表 1: MCP 架构核心角色与职责

Host 可同时连接多个 Server,使模型能够在同一上下文中调用不同系统资源。这种多连接机制是 MCP 可组合性的关键。

交互流程(消息生命周期)

MCP 的消息交互流程涵盖用户请求、模型决策、工具调用与结果反馈。下方时序图展示了完整的调用过程:

图 2: MCP 消息交互流程
图 2: MCP 消息交互流程

一个完整调用过程包括以下阶段:

  1. 用户发起请求(IDE 或聊天界面提交指令)
  2. 主机准备上下文(Host 提供工具列表、环境信息)
  3. 模型决策与调用(模型选择并调用合适工具)
  4. 客户端转发执行(Client 以 JSON-RPC 向服务器发送调用请求)
  5. 服务器执行操作(完成任务并返回结果)
  6. 结果整合与回答(模型基于结果生成最终输出)

MCP 的设计重点在于每次调用都有结构化输入与确定性输出,便于审计、调试与自动化重放。

核心定义与传输机制

MCP 协议包含一系列核心概念与传输层设计。下表总结了主要定义:

名称说明
Model Context Protocol允许 LLM 与外部系统标准化共享上下文与操作能力的协议
Host模型运行环境与用户界面容器
Client协议通信中间层,负责消息封装、转发与协商
Server暴露外部功能的接口服务,支持 tools / resources / prompts
TransportJSON-RPC 消息传输通道(支持 stdio 与 HTTP)
表 2: MCP 协议核心定义

下表总结了 MCP 的传输层设计及适用场景:

传输类型说明适用场景
STDIO通过主机启动子进程,使用标准输入输出传递 JSON-RPC 消息本地插件、离线环境
HTTP + SSE客户端以 HTTP POST 发送请求,服务器通过 SSE(Server-Sent Events)流式响应远程 Server、云端 SaaS 服务
表 3: MCP 传输层设计与适用场景
安全建议
HTTP 模式应启用 Origin 校验与认证机制,仅允许 localhost 或受信源访问。

生命周期与握手过程

MCP 连接生命周期分为初始化、运行中与关闭阶段。下表总结了各阶段关键动作:

阶段关键动作描述
初始化(initialize)客户端 → 服务器发送协议版本、客户端能力等信息,服务器返回自身能力
运行中(operational)双向通信支持 tools.list、tools.call、notifications 等交互
关闭阶段双方终止传输通道无专用关闭命令,通过连接关闭完成清理
表 4: MCP 连接生命周期与关键动作

下方时序图展示了 MCP 握手与初始化过程:

图 3: MCP 握手与初始化过程
图 3: MCP 握手与初始化过程

MCP 的握手过程保证双方协商协议版本、能力集与通知机制,为后续调用奠定标准语义层。

协议核心元素

MCP 通过工具、资源与提示模板三大元素让模型获得外部操作权。下表总结了各元素功能与示例:

元素功能示例
Tools主动调用的可执行操作搜索文件、提交 PR、发起支付
Resources只读数据或订阅源文件内容、数据库查询、文档索引
Prompts可复用提示模板或生成脚本编码规范、测试生成器、工作流模版
表 5: MCP 协议核心元素与示例

所有工具均以结构化方式定义参数模式与返回类型,保证模型调用的稳定性与可预测性。

客户端特性扩展

MCP 客户端支持多种扩展特性,提升模型与外部系统的协作能力。下表总结了常见扩展特性及使用场景:

特性作用使用场景
Roots查询主机文件系统根路径与访问范围文件浏览、代码编辑
Sampling允许服务器反向请求模型生成文本多模态协作、自动摘要
Elicitation服务器请求用户输入或确认安全审批、动态补全
表 6: MCP 客户端扩展特性与使用场景

这些特性在初始化阶段协商启用,由 Host 控制是否允许。

安全与隐私设计

MCP 在设计上引入最小信任原则,保障用户控制与数据安全。下表总结了 MCP 的安全机制:

安全维度机制描述
用户控制显式授权 UI用户可见哪些工具被启用
数据隐私主机侧拦截任何敏感数据传输前需用户确认
工具安全源验证与权限描述防止恶意 Server 伪装成合法服务
采样安全用户审阅提示内容防止模型生成非预期调用
传输安全OAuth2 / JWT 认证防止令牌泄露与中间人攻击
表 7: MCP 安全与隐私机制
实践建议
企业环境建议部署 MCP Gateway,将认证、授权、审计三层逻辑统一托管,提升安全与合规性。

总结

MCP 协议为 AI 工程提供了统一的执行语义层,使模型具备以下特征:

  • 标准化调用:统一工具与资源接口
  • 可组合能力:任意模型可组合任意 Server
  • 跨语言 / 跨平台互操作
  • 可观测与安全可控

它让智能体的外部调用方式像操作系统的系统调用(syscall)一样稳定。在未来的 AI 原生体系中,MCP 将成为智能体运行时的 API 协议层,是连接模型推理与真实世界操作的基础标准。

参考文献