一、什么是模型上下文协议(MCP)?
MCP(模型上下文协议)是一个开源标准,用于将人工智能应用与外部系统连接起来。是由 Anthropic 公司提出并开源的一项标准协议框架,旨在标准化大型语言模型与外部数据源和工具之间的交互方式。通过 MCP,AI 应用可以以统一的方式访问本地和远程资源,实现更高效、灵活的集成。
通过MCP,像Claude或ChatGPT这样的AI应用可以连接数据源(如本地文件、数据库)、工具(如搜索引擎、计算器)和工作流程(如专门提示)——使它们能够访问关键信息并执行任务。
MCP 被誉为 AI 应用的“TYPE-C 接口”,可以把MCP想象成AI应用的USB-C接口。正如USB-C提供了连接电子设备的标准化方式,MCP 为 AI 模型连接不同的数据源和工具提供了标准化接口。
二、MCP能实现什么?
-
客服可以访问您的Google日历和Notion,作为更个性化的AI助手。
-
Claude Code 可以基于 Figma 设计生成整个网页应用。
-
企业聊天机器人可以连接组织内多个数据库,使用户能够通过聊天分析数据。
-
AI模型可以在Blender上创建3D设计,并用3D打印机打印出来。
三、工作原理
当用户以自然语言提出请求时,MCP 的工作流程如下:
-
请求解析:主机进程识别用户意图,并将请求传递给 MCP 客户端。
-
能力匹配:客户端查询可用的 MCP 服务器,确定能够处理该请求的资源或工具。
-
任务执行:客户端向选定的服务器发送请求,服务器执行相应操作(查询数据库、调用 API 等)。
-
结果返回:服务器将结果返回给客户端,客户端将其传递给主机进程。
-
响应生成:主机进程整合上下文信息,生成自然语言响应呈现给用户。
整个过程对用户透明,提供了流畅的自然语言交互体验。
核心能力
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 协议,向客户端提供特定的能力
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的区别