MCP架构概述

169 阅读7分钟

一、什么是模型上下文协议(MCP)?

    MCP(模型上下文协议)是一个开源标准,用于将人工智能应用与外部系统连接起来。是由 Anthropic 公司提出并开源的一项标准协议框架,旨在标准化大型语言模型与外部数据源和工具之间的交互方式。通过 MCP,AI 应用可以以统一的方式访问本地和远程资源,实现更高效、灵活的集成。

    通过MCP,像Claude或ChatGPT这样的AI应用可以连接数据源(如本地文件、数据库)、工具(如搜索引擎、计算器)和工作流程(如专门提示)——使它们能够访问关键信息并执行任务。

    MCP 被誉为 AI 应用的“TYPE-C 接口”,可以把MCP想象成AI应用的USB-C接口。正如USB-C提供了连接电子设备的标准化方式,MCP 为 AI 模型连接不同的数据源和工具提供了标准化接口。

image.png

二、MCP能实现什么?

  • 客服可以访问您的Google日历和Notion,作为更个性化的AI助手。

  • Claude Code 可以基于 Figma 设计生成整个网页应用。

  • 企业聊天机器人可以连接组织内多个数据库,使用户能够通过聊天分析数据。

  • AI模型可以在Blender上创建3D设计,并用3D打印机打印出来。

三、工作原理

    当用户以自然语言提出请求时,MCP 的工作流程如下:

  1. 请求解析:主机进程识别用户意图,并将请求传递给 MCP 客户端。

  2. 能力匹配:客户端查询可用的 MCP 服务器,确定能够处理该请求的资源或工具。

  3. 任务执行:客户端向选定的服务器发送请求,服务器执行相应操作(查询数据库、调用 API 等)。

  4. 结果返回:服务器将结果返回给客户端,客户端将其传递给主机进程。

  5. 响应生成:主机进程整合上下文信息,生成自然语言响应呈现给用户。

    整个过程对用户透明,提供了流畅的自然语言交互体验。

  核心能力

1、MCP 服务器提供的能力

  • 资源(Resources) :提供静态或可查询的数据集,如文件、文档、数据库等。

  • 工具(Tools) :暴露可调用的函数或 API,供 AI 模型执行操作。

  • 提示词(Prompts) :提供结构化的提示模板,指导模型生成特定格式的响应。

2、客户端向服务器提供的能力

  • 大模型调用(Sampling) :支持服务器主动发起大模型请求,实现多轮对话、递归推理等复杂处理。

  • 文件系统访问(Root) :向服务器暴露受限的文件系统视图,便于识别和访问可操作的目录与文件。

四、MCP为什么重要?

根据你在生态系统中的位置,MCP可能带来多种好处。

  • 开发者:MCP在构建或集成AI应用或代理时,降低了开发时间和复杂度。

  • AI应用或代理:MCP提供访问数据源、工具和应用生态系统,提升能力并改善终端用户体验。

  • 终端用户:MCP带来了更强大的AI应用或代理,能够访问您的数据并在必要时代表您采取行动。

五、架构概述

模型上下文协议(MCP)概述讨论其范围和核心概念,MCP仅专注于上下文交换的协议——它并不强制要求 人工智能应用如何使用大型语言模型(LLM)或管理所提供的上下文。

1)范围

模型上下文协议包括以下项目:

  • MCP规范:MCP的规范,概述客户端和服务器的实现需求。

  • MCP SDK:针对实现MCP的不同编程语言的SDK。

  • MCP 开发工具:用于开发 MCP 服务器和客户端的工具,包括 MCP 检查器

  • MCP 参考服务器实现:MCP 服务器的参考实现。

1、参与者角度

    MCP 采用客户端-服务器架构,MCP 主机——如 Claude Code 或 Claude Desktop 等 AI 应用——建立与一个或多个 MCP 服务器的连接。MCP主机通过为每个MCP服务器创建一个MCP客户端来实现这一点。每个MCP客户端都与其对应的MCP服务器保持专用的一对一连接。解耦了 AI 助手与后端服务之间的关系。

    MCP架构的主要参与者【典型的 MCP 部署】包括有:

  • MCP Host(主机进程):协调和管理一个或多个 MCP 客户端的 AI 应用(运行大模型的应用程序),如 Claude desktop、Cursor、方舟体验中心等

  • MCP 客户端(Client):一个组件,负责维护与 MCP 服务器的连接,并从该 MCP 服务器获取上下文供 MCP 主机使用,作为主机进程与服务器之间的抽象接口层,负责规范化通信并处理协议转换。

  • MCP 服务器(Server):为 MCP 客户端提供上下文的程序,通过标准化的 MCP 协议,向客户端提供特定的能力

image.png

2、层角度

    MCP由两层组成:

  • 数据层:定义基于JSON-RPC的客户端-服务器通信协议,包括生命周期管理及核心原语,如工具、资源、提示和通知。

  • 传输层:定义支持客户端与服务器之间数据交换的通信机制和通道,包括传输专用连接建立、消息框架和授权。

从概念上讲,数据层是内层,而传输层是外层。

3、数据层角度

数据层实现了基于JSON-RPC 2.0的交换协议,定义了消息结构和语义。 这一层包括:

  • 生命周期管理:处理客户端与服务器之间的连接初始化、能力协商和连接终止

  • 服务器功能:使服务器能够提供核心功能,包括AI作工具、上下文数据资源,以及客户端交互模板的提示

  • 客户端功能:使服务器能够请求客户端从主机LLM采样,从用户那里获取输入,并向客户端记录消息

  • 实用功能:支持实时更新通知和长期运行作的进度跟踪等额外功能

4、传输层角度

    传输层负责管理客户端与服务器之间的通信通道和认证。它负责连接建立、消息框架以及MCP参与者之间的安全通信。

    MCP支持两种传输机制:

  • Stdio 传输:使用标准输入/输出流实现同一机器上本地进程之间的直接进程通信,提供最佳性能且无网络开销。

  • 可流式 HTTP 传输:使用 HTTP POST 处理客户端到服务器消息,并可选地支持服务器发送事件以实现流媒体功能。该传输支持远程服务器通信,并支持标准的HTTP认证方法,包括承载令牌、API密钥和自定义头部。MCP建议使用OAuth来获取认证令牌。

传输层从协议层抽象通信细节,使所有传输机制都能实现相同的JSON-RPC 2.0消息格式。

5、数据层协议

    MCP的核心部分是定义MCP客户端与MCP服务器之间的模式和语义。开发者可能会发现数据层——尤其是原语集合——是MCP中最有趣的部分。它是MCP中定义开发者如何从MCP服务器向MCP客户端共享上下文的部分。

MCP 使用 JSON-RPC 2.0 (www.jsonrpc.org/specificati…)协议。客户端和服务器相互发送请求并相应响应。无需回应时可以使用通知。

六、应用价值

MCP协议的价值在于通过标准化统一的接口,打破了大语言模型的能力边界,使用户能够通过自然语言交互方便地调用各类工具和资源,极大提高了人机交互的体验。

结尾:1.0与2.0的区别