MCP 架构设计

模型上下文协议(MCP)采用客户端-宿主-服务端架构,单个宿主可运行多个客户端实例。该架构支持用户跨应用集成AI能力,同时保持明确的安全边界与功能隔离。基于JSON-RPC构建的MCP协议,专注于客户端与服务端间的上下文交换及采样协调(sampling coordination),提供有状态的会话管理。

核心组件

1. 宿主(Host)

宿主进程作为容器和协调器:

  • 创建和管理多个客户端实例
  • 控制客户端连接权限与生命周期
  • 强制执行安全策略和授权要求
  • 处理用户授权决策
  • 协调AI/LLM集成与采样
  • 管理跨客户端的上下文聚合

2. 客户端(Clients)

每个客户端由宿主创建并维护独立的服务端连接,具体功能包括:

  • 为每个服务端建立有状态会话
  • 处理协议协商与能力交换
  • 双向路由协议消息
  • 管理订阅与通知
  • 维护服务端间的安全边界

宿主应用负责创建和管理多个客户端,每个客户端与特定服务端保持1:1对应关系。

3. 服务端(Servers)

服务端提供专业化的上下文处理与能力支持:

  • ​功能暴露​:通过MCP基础协议开放资源、工具及提示词
  • ​独立运行​:各服务端专注单一职责,独立运作
  • ​采样请求​:经由客户端接口发起模型采样
  • ​安全合规​:必须严格遵守安全约束规范
  • ​部署形态​:支持本地进程或远程服务两种部署模式

设计原则

MCP基于以下核心设计原则构建,这些原则指导着其架构设计与实现:

1. 服务端应当极易构建

  • 宿主应用处理复杂协调职责
  • 服务端专注特定明确功能
  • 简洁接口最大限度降低实现开销
  • 清晰分离确保代码可维护性

2. 服务端应具备高度可组合性

  • 每个服务端独立提供专注功能
  • 多个服务端可无缝组合
  • 共享协议确保互操作性
  • 模块化设计支持可扩展性

3. 服务端不应读取完整对话内容,也无法"窥探"其他服务端内部数据

  • 服务端仅接收必要的上下文信息
  • 完整对话历史由宿主端保留
  • 每个服务端连接保持隔离
  • 跨服务端交互由宿主端管控
  • 宿主进程强制实施安全边界

4. 功能可在服务端和客户端逐步扩展

  • 核心协议仅提供最小必要功能
  • 额外能力可按需协商添加
  • 服务端与客户端可独立演进
  • 协议设计预留未来扩展空间
  • 始终保持向后兼容性

能力协商

模型上下文协议采用基于能力的协商系统,客户端和服务端在初始化时明确声明其支持的功能。能力决定会话期间可用的协议功能和基础组件。

  • 服务端声明能力包括资源订阅、工具支持和提示模板
  • 客户端声明能力包括采样支持和通知处理
  • 双方在整个会话期间必须遵守声明的能力范围
  • 可通过协议扩展协商额外能力

每项能力解锁会话中可使用的特定协议功能,例如:

  • 已实现的服务端功能必须在服务端能力中声明
  • 发送资源订阅通知需要服务端声明订阅支持能力
  • 工具调用要求服务端声明工具相关能力
  • 采样功能需要客户端声明对应支持能力

这种能力协商机制确保客户端和服务端对支持的功能有明确认知,同时保持协议的可扩展性。

相关推荐
gogoMark3 小时前
口播视频怎么剪!利用AI提高口播视频剪辑效率并增强”网感”
人工智能·音视频
2201_754918413 小时前
OpenCV 特征检测全面解析与实战应用
人工智能·opencv·计算机视觉
love530love4 小时前
Windows避坑部署CosyVoice多语言大语言模型
人工智能·windows·python·语言模型·自然语言处理·pycharm
985小水博一枚呀5 小时前
【AI大模型学习路线】第二阶段之RAG基础与架构——第七章(【项目实战】基于RAG的PDF文档助手)技术方案与架构设计?
人工智能·学习·语言模型·架构·大模型
白熊1885 小时前
【图像生成大模型】Wan2.1:下一代开源大规模视频生成模型
人工智能·计算机视觉·开源·文生图·音视频
weixin_514548895 小时前
一种开源的高斯泼溅实现库——gsplat: An Open-Source Library for Gaussian Splatting
人工智能·计算机视觉·3d
四口鲸鱼爱吃盐5 小时前
BMVC2023 | 多样化高层特征以提升对抗迁移性
人工智能·深度学习·cnn·vit·对抗攻击·迁移攻击
Echo``6 小时前
3:OpenCV—视频播放
图像处理·人工智能·opencv·算法·机器学习·视觉检测·音视频
Douglassssssss6 小时前
【深度学习】使用块的网络(VGG)
网络·人工智能·深度学习
okok__TXF6 小时前
SpringBoot3+AI
java·人工智能·spring