MCP协议核心角色与组件全览
一、角色分层概览MCP(Model Context Protocol)采用“三层三角”架构:Host(主机)-Client(客户端)-Server(服务器)。
- Host 负责统筹与安全;
- Client 负责通信与上下文;
- Server 负责能力与资源。
二、Host:主机层
- 创建并管理多个 Client,决定何时接入或断开 Server。
- 统一执行授权与令牌下发,确保最小权限。
- 聚合日志与调用链,实现审计、监控与配额控制。
三、Client:客户端层
- 与单一 Server 建立 1:1 状态会话,维持 JSON-RPC 消息流。
- 处理序列化/反序列化、重连、心跳等底层细节,让 Host 与 Server 解耦。
- 保存任务变量、记忆历史对话,为链式决策提供上下文。
四、Server:服务器层
- 暴露特定工具或数据源(如 GitHub、PostgreSQL、搜索引擎)。
- 在能力声明文件中列出可调用的方法、参数与权限说明。
- 聚焦单一职责:每个 Server 通常只做一件事,方便隔离与扩容。
五、辅助组件与机制
- Capability Negotiation:握手阶段双向声明版本、功能列表与速率限制;
- Transport Adapter:支持 Stdio、Streamable HTTP、SSE 等可插拔通道;
- Security Sandbox:对潜在危险操作(文件写入、系统调用)进行预执行检查;
- Metrics & Trace:实时收集调用延迟、错误率,为自动扩缩容提供依据。
六、选型与部署思考
- 小规模本地工具链:Host + Stdio Transport,部署简单、延迟低。
- 企业级多工具集成:Host 侧运行网关,Client 通过 HTTP 连接分布式 Server。
- 公有云 SaaS:将 Server 打包成无状态函数,由 API Gateway 统一鉴权。
通过严格的角色分层与松耦合组件,MCP 让 AI 应用像插 USB-C 一样快速获取外部能力,既保证灵活扩展,又兼顾安全可控。