AI的“USB-C”接口:MCP协议笔记
MCP(模型上下文协议)是一个开放标准,旨在解决AI模型与外部世界连接时“各自为政”的碎片化问题,可以理解为AI领域的“USB-C”接口。
它的核心目标是:为AI大模型(如Claude、GPT)访问外部数据源(如数据库、文件)和调用工具(如发送邮件、查询API)提供一套统一的、标准化的通信协议。有了MCP,AI应用开发者不再需要为每个数据源或工具编写定制化的集成代码。
核心架构:三个角色
MCP采用客户端-服务器架构,主要包含三个核心组件,它们协同工作:
| 组件 | 角色 | 做什么 |
|---|---|---|
| MCP 主机 (Host) | AI应用本身 | 发起请求的LLM应用程序,例如AI驱动的IDE、聊天机器人或AI代理。它是用户交互的起点。 |
| MCP 客户端 (Client) | 主机内的“翻译官” | 集成在主机内,负责将AI的请求翻译成MCP标准消息,并管理与一个或多个MCP服务器的连接。 |
| MCP 服务器 (Server) | 功能与数据的“提供者” | 轻量级服务程序,通过MCP标准向外暴露特定的功能(如数据库查询、文件操作)。它将外部系统的复杂API封装成AI易于理解的形式。 |
关键功能:三大核心能力
一个MCP服务器可以向客户端提供以下三种核心能力:
-
资源 (Resources):向AI提供上下文和数据的数据源。任何数据都可以通过URI(统一资源标识符)来寻址,比如一个本地文件(
file:///...)、数据库记录或网页内容。 -
工具 (Tools):供AI模型执行的函数。这是MCP最强大的能力,让AI不仅能获取信息,还能采取行动,如“发送一封邮件”、“创建一个工单”。
-
提示模板 (Prompts):为用户设计的可复用工作流和消息模板。这可以帮助用户更有效地与AI交互,完成特定任务。
工作流程示例
以“帮我查一下北京今天的天气”为例,完整的MCP交互流程如下:
-
请求与发现:用户在MCP主机(如一个聊天界面)中提问。MCP客户端收到请求后,查询已连接的MCP服务器,发现一个名为
get_weather的可用工具。 -
协议转换与调用:MCP客户端将AI的意图转换为一个符合JSON-RPC 2.0标准格式的
call_tool请求消息,并发送给对应的MCP服务器。 -
执行与返回:MCP服务器接收到请求,调用真正的天气API获取数据,然后将结果封装成标准响应,返回给MCP客户端。
-
注入上下文:客户端将返回的天气信息注入到AI模型的上下文中。AI现在“知道”了天气情况,最终生成“北京今天天气晴朗,气温25°C”这样的自然语言回复给用户。
为什么重要:MCP与RAG的区别
MCP常与RAG(检索增强生成)被一起讨论,但它们解决问题的层面不同。
-
RAG:是一种技术策略,专注于在AI生成答案前,从一个知识库中“查找”相关信息,以增强回答的准确性。它主要解决的是“让AI知道更多”的问题。
-
MCP:是一个通信协议,它提供了一种“标准化的方式”让AI去发现、请求和使用任何外部工具或数据,无论是为了“知道”还是“行动”。它的范围更广,目标是构建一个可互操作的AI工具生态系统。
安全与治理
由于MCP允许AI执行代码和访问数据,安全是设计的重中之重。核心原则包括用户明确同意与控制、工具安全(执行工具前需用户授权)以及对AI自主行为的严格约束,例如在“采样”功能中,用户需批准所有AI发起的LLM请求。
在实际的企业应用中,除了协议本身,还会引入MCP注册表(一个可发现和信任服务器的目录)和允许列表(一个决定哪些服务器可用的管理策略)来确保安全可控地使用MCP
更多推荐
所有评论(0)