概述


MCP 概述

MCP 是由 Anthropic 提出的开放标准,用于规范 AI 模型与外部系统(如工具、数据库、文件或 API)之间的通信方式。协议基于 JSON-RPC 2.0(Remote Procedure Call,远程过程调用),支持两种传输形式:

  • 标准输入输出(stdio):适用于桌面或本地模型环境。
  • HTTP + SSE(Server-Sent Events,服务器推送事件):适用于远程网络交互场景。

MCP 的目标是让模型能像访问本地资源一样,安全地使用外部工具与数据,而不必为每种组合编写独立适配器。这种统一接口极大简化了模型集成的复杂度。


架构与角色

下表介绍 MCP 协议中的三类核心参与者及其职责:

角色 描述 主要职责
Host(主机) 模型运行的宿主环境,如 IDE、桌面应用或 CLI 启动模型进程并建立客户端连接
Client(客户端) 代理层,位于模型与外部系统之间 转发消息、维护上下文、缓存资源元数据
Server(服务器) 提供具体功能或数据接口 实现 MCP 规范,暴露工具、资源与提示模板

表 1: MCP 架构角色与职责

下方流程图展示了 MCP 的典型交互结构:

【iframe defaul_iframe_type】https://assets.jimmysong.io/images/book/ai-handbook/mcp/overview/10b60b5f586b486a789757a541f0c07c.svg

图 1: MCP 架构交互流程

运行机制说明

模型通过 Client 向 Server 发现可用能力,Server 响应可调用的工具(Tools)、资源(Resources)和提示模板(Prompts)。Client 负责中继、缓存与权限控制,所有通信通过 JSON-RPC 请求/响应完成,确保安全与一致性。

协议原语(Primitives)

MCP 的核心由三类原语(Primitive)构成,分别定义了模型可访问的能力类型。下表总结了三类原语及其典型用途:

原语 说明 示例
Tools(工具) 模型可调用的具体函数或操作 创建事件、查询数据库、发送邮件
Resources(资源) 模型可访问的数据对象 文件、文档、数据库表、API 响应
Prompts(提示模板) 定义任务上下文的文本模板 不同任务场景下的系统提示

表 2: MCP 协议原语类型

这些原语共同描述了 MCP Server 能向模型提供的能力清单。模型可通过 tools/listresources/list 等方法动态发现,再按需调用,实现灵活扩展。

通信机制与安全模型

在 MCP 协议中,通信机制与安全模型是保障模型与外部系统安全协作的基础。

传输层

MCP 基于 JSON-RPC 2.0,定义了双向请求 - 响应机制。典型通信包含以下阶段:

  • Initialize 握手:双方交换协议版本与能力声明。
  • List 查询:客户端发现服务器暴露的工具与资源。
  • Call/Get 调用:模型发起工具调用或数据请求。
  • Notify 通知:服务器实时告知更新(如加载新工具)。

下方时序图展示了 MCP 的典型通信流程:

【iframe defaul_iframe_type】https://assets.jimmysong.io/images/book/ai-handbook/mcp/overview/fb72aa6a4cc54f0b7f6071f76df75d2c.svg

图 2: MCP 通信时序

安全与访问控制

MCP 强调最小权限原则(Principle of Least Privilege)与用户授权边界:

  • 每个工具与资源都带有权限说明;
  • 客户端可过滤模型的访问范围;
  • 敏感操作支持二次确认;
  • 服务器可本地部署以保护隐私数据。

这种设计确保模型只能访问被授权的资源,防止越权和数据泄露。


双向能力:客户端的扩展接口

除了服务器向模型提供能力外,MCP 也允许服务器反向请求客户端完成任务,实现模型、主机与外部系统的双向协作。

下表总结了 MCP 客户端扩展接口的能力类型及典型方法:

能力类型 功能 典型方法
Sampling(采样) 请求客户端调用其内部模型生成文本或代码 sampling/complete
Elicitation(引出) 通过用户界面获取额外输入 elicitation/request
Logging(日志) 服务器向客户端发送调试或运行日志 logging/event

表 3: MCP 客户端扩展能力类型

这种设计让 MCP 不仅是“模型访问外部世界”的通道,也能反向利用模型宿主的能力,实现协同执行,提升系统灵活性。

协议交互范式

在典型的大语言模型(LLM, Large Language Model)调用场景中,MCP 的工作模式如下:

  1. 模型发现能力:通过 list 方法了解可调用资源。
  1. 模型执行任务:选择合适工具并发起 call 请求。
  1. 结果返回与上下文更新:服务器返回数据,客户端缓存上下文。
  1. 动态通知:当 Server 功能变化时,通过 notify 机制同步。

这种机制让模型能像访问 API 一样访问任意系统资源,同时保持一致的语义层与安全边界。

设计动机与价值

过去,每个 AI 助手或智能体要访问外部数据,都必须为每个数据源定制适配层。MCP 的出现解决了这一“碎片化适配”问题。

MCP 的核心理念

统一接口 + 可声明能力 + 安全沙箱化通信

下方图表对比了传统方式与 MCP 标准的优势:

图 3: MCP 标准与传统方式对比

通过 MCP,模型能在需要时动态拉取信息,而无需一次性塞入所有上下文数据,从而显著提升上下文效率与扩展性。

关键特性与优势总结

下表总结了 MCP 的关键特性与优势维度:

维度 特性 说明
标准化 基于 JSON-RPC 定义的通用通信结构 兼容性强,可跨语言实现
可扩展性 三类原语可自定义扩展 支持任何工具或数据源接入
安全性 权限声明与用户确认机制 防止模型越权访问
生态开放性 统一协议层,促进开源组件协作 客户端与服务器可独立开发
开发简化 消除专用适配器 减少模型集成复杂度
可组合性 与提示模板和工具系统协同 支持多模型共享接口

表 4: MCP 关键特性与优势


总结

MCP 让 AI 模型具备了“连接世界”的能力。它并不改变模型推理逻辑,而是建立了一个安全、标准、可编排的上下文通道。借助 MCP,AI 系统可以像模块化操作系统那样,把模型、工具、资源与提示模板拼装成可协作的智能体生态。

技术落地

生态系统

2026-1-11 14:43:56

技术落地

背景

2026-1-11 14:44:39

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索