[控场AI]
· 9 分钟阅读· 4,551 字

MCP协议详解:AI智能体与工具通信的统一标准

MCP协议详解:AI智能体与工具通信的统一标准

为什么需要MCP?从Function Calling的痛点说起

在当前AI开发领域,一个重要的技术演进正在发生:MCP(Model Context Protocol,模型上下文协议)正在取代传统的Function Calling,成为智能体调用工具的主流方式。

传统的Function Calling存在两个核心痛点:

  1. 缺乏统一标准:不同模型提供商(OpenAI、Anthropic、智谱等)的接口和格式存在差异,开发者需要针对不同平台编写不同的适配代码。
  2. 工具执行缺乏统一框架:真正的工具执行依赖外部框架,但市面上没有一个统一的外部框架标准,导致代码在不同环境下需要频繁修改。

简而言之,如果你现在还在使用Function Calling来开发智能体,那你的技术栈可能已经落后于行业主流了。

Function Calling的技术背景

Function Calling是OpenAI在2023年6月首次引入GPT模型的一项能力,允许大语言模型在对话过程中识别用户意图并生成结构化的函数调用请求。其工作原理是:开发者预先定义一组函数的名称、参数描述和JSON Schema,模型在推理时判断是否需要调用某个函数,并输出对应的参数JSON。随后由开发者的应用层代码实际执行该函数,将结果返回给模型继续生成回答。这一机制的核心局限在于,模型只负责"决定调用什么",而"如何执行"完全依赖开发者自行实现,且不同厂商对函数定义格式、多轮调用逻辑的处理方式各不相同——这正是MCP试图解决的根本问题。

那你发现难道还把他写的代码

他们都已经对外发布了MCP的工具

是AI弹模型

MCP是什么?通俗理解模型上下文协议

MCP的全称是Model Context Protocol(模型上下文协议),由Anthropic在2024年11月底推出的一种开放标准。

用一句话来概括:MCP是模型(智能体)与工具之间的统一通信协议。

Anthropic是由前OpenAI研究副总裁Dario Amodei和Daniela Amodei于2021年创立的AI安全公司,以Claude系列模型闻名。Anthropic推出MCP的战略意图在于:通过定义开放标准来构建AI工具生态的基础设施层,类似于Google推动Kubernetes成为容器编排标准的策略。MCP采用JSON-RPC 2.0作为底层消息格式,这是一种轻量级的远程过程调用协议,广泛应用于区块链(如以太坊的节点通信)和IDE(如Language Server Protocol)等领域,具有成熟的技术基础。

为什么需要这个协议?

在传统开发模式中,智能体和工具是紧耦合的——你创建一个智能体,工具代码必须在同一个项目中运行。但在实际企业开发中,这种模式存在明显问题:

  • 如果有人已经写好了一个通用工具,想让多个智能体复用,难道要把代码一个个拷贝到每个项目中吗?
  • 如果工具由其他部门维护,如何实现跨团队协作?

MCP的出现,让智能体和工具可以完全分离。工具可以部署在远程服务器上,智能体通过标准化的网络协议来调用,只需要知道一个网络地址即可。

MCP支持的三种通信机制

MCP目前支持三种通信方式:

  1. Stdio(标准输入输出):本地通信机制,通过系统的标准输入输出实现。虽然存在,但在生产环境中几乎不会使用——因为本地工具直接在同一进程中调用即可,使用MCP反而增加了通信开销。

  2. SSE(Server-Sent Events):基于HTTP的服务器推送机制,是早期版本的主要远程通信方式。SSE是HTML5规范中定义的一种服务器向客户端单向推送数据的技术,基于HTTP长连接实现。其优势是简单易用、天然支持断线重连,但局限在于只能服务端向客户端推送,客户端向服务端发送数据仍需额外的HTTP请求,这在需要频繁双向交互的场景中效率不够理想。

  3. Streamable HTTP:2025年3月底新增的通信机制,这是未来的主流方向。相比SSE,它提供了更灵活、更高效的双向通信能力。Streamable HTTP允许服务端根据需要动态选择是返回普通HTTP响应还是升级为流式连接,支持无状态和有状态两种模式。这意味着简单的工具调用可以用单次HTTP请求完成(降低连接开销),而复杂的长时间任务则可以升级为持久流式连接(保证实时性),兼顾了效率和灵活性。

MCP的架构设计:服务端与客户端

MCP服务端(MCP Server)

MCP服务端是工具和数据的提供方。在服务端,你可以定义:

  • 工具(Tools):可被智能体调用的功能函数
  • 数据源(Resources):静态或动态数据,供模型访问

你可能没注意到,MCP服务端已经更新到了2.0版本,带来了不少API变化。从1.0到2.0的演进主要体现在几个方面:首先是传输层的重构,从仅支持Stdio和SSE扩展为支持Streamable HTTP;其次是会话管理的改进,2.0引入了Mcp-Session-Id头部来标识客户端会话,支持服务端主动终止会话;第三是工具定义的增强,支持更丰富的参数类型描述和工具分组。此外,2.0版本还引入了OAuth 2.1作为推荐的认证框架,为企业级部署提供了更规范的安全基础。

MCP客户端(MCP Client)

MCP客户端负责调用服务端的工具。常见的客户端包括:

  • LangChain:通过langchain-mcp-adapters库实现MCP集成
  • LangGraph:同样支持作为MCP客户端
  • 其他支持MCP协议的AI框架

LangChain是目前最流行的大语言模型应用开发框架之一,由Harrison Chase于2022年创立。其MCP集成通过langchain-mcp-adapters库实现,核心原理是将远程MCP服务端暴露的工具自动转换为LangChain的Tool对象。开发者只需提供MCP服务端地址,适配器会自动发现可用工具列表、解析参数Schema,并生成可直接被LangChain Agent使用的工具实例。LangGraph作为LangChain生态中专注于有状态多步骤工作流的框架,同样支持将MCP工具节点无缝嵌入到图结构的工作流中,使得复杂的多Agent协作场景也能轻松接入MCP生态。

MCP的安全性:认证与鉴权机制

很多开发者关心MCP的安全性问题。实际上,MCP协议已经内置了完善的认证机制:

  • 公司内部MCP服务:通常不需要额外认证,直接调用即可
  • 对公网暴露的MCP服务:需要通过Token认证。调用工具时需要传入Token,服务端验证通过后才允许执行

认证方式支持JWT等主流加密方法,安全性有充分保障。JWT(JSON Web Token)是一种基于RFC 7519标准的开放令牌格式,由Header、Payload和Signature三部分组成,通过Base64编码后以点号连接。在MCP场景中,客户端首先通过OAuth 2.1流程获取访问令牌(Access Token),随后在每次调用MCP工具时将该令牌附加在HTTP请求的Authorization头部。服务端通过验证令牌的签名和有效期来确认调用者身份和权限。MCP 2.0规范推荐使用OAuth 2.1而非2.0,因为2.1版本强制要求PKCE(Proof Key for Code Exchange)等安全增强措施,有效防止授权码拦截攻击,为生产环境中的MCP服务提供了企业级的安全保障。

MCP的生态现状与发展潜力

已经入局的大厂

国内外众多大公司已经对公网发布了自己的MCP工具接口:

  • 腾讯
  • 阿里巴巴
  • 智谱
  • 以及更多国内外AI公司

这意味着,开发者现在就可以在自己的智能体中,通过MCP协议调用这些大厂提供的工具和服务。

MCP的长远潜力

如果用一个类比来说明MCP的意义:MCP之于AI智能体,就像互联网协议之于个人电脑。

没有MCP之前,每个智能体就像一台孤立的个人电脑。有了MCP之后:

  • 公司内部各部门的智能体可以相互连接、共享工具
  • 全球任何公司只要愿意对公网暴露MCP接口,其他公司的智能体都可以调用
  • 智能体的功能边界被极大拓展,可以整合全球资源

这种模式与互联网早期的发展路径高度相似。1990年代,TCP/IP协议将全球孤立的计算机网络连接成统一的互联网,催生了Web、电子邮件等革命性应用。MCP正在为AI智能体构建类似的连接层——当全球的工具和服务都通过统一协议可达时,智能体的能力将不再受限于单个开发团队的实现,而是可以动态组合全球范围内的AI能力,这将催生全新的应用形态和商业模式。

MCP与Function Calling的核心区别对比

维度Function CallingMCP
本质函数调用机制通信传输协议
标准化各厂商各自实现统一开放标准
工具位置通常在本地支持远程网络调用
生态碎片化全球统一生态
适用场景简单工具调用企业级智能体开发
底层协议厂商私有格式JSON-RPC 2.0
安全机制依赖应用层自行实现内置OAuth 2.1认证框架
工具发现需手动定义支持自动发现与注册

需要注意的是,MCP并非完全取代Function Calling,而是在其之上构建了一层标准化的通信和管理协议。在MCP架构中,模型仍然需要具备"决定调用哪个工具"的能力(这本质上仍是Function Calling的推理能力),但工具的注册、发现、调用、认证等环节都由MCP协议统一管理,开发者不再需要为每个模型厂商单独适配。

总结与展望

MCP协议正在快速成为AI智能体开发的基础设施。随着服务端2.0、Streamable HTTP通信机制的推出,以及越来越多大厂加入MCP生态,可以预见MCP将在未来一到两年内覆盖几乎所有生产环境中的智能体项目和工作流项目。

对于AI开发者而言,现在是学习和掌握MCP的最佳时机。无论你是做智能体开发、工作流编排,还是对外提供AI工具服务,MCP都将是你技术栈中不可或缺的一环。从实践角度来看,建议开发者从以下路径入手:首先理解MCP的JSON-RPC消息格式和工具定义规范,然后尝试用Python或TypeScript的官方SDK搭建一个简单的MCP Server,最后通过LangChain等框架作为客户端进行集成测试。掌握这一技术栈后,你将能够构建真正可扩展、可复用、可协作的企业级AI应用。

核心要点

#MCP协议#Model Context Protocol#AI智能体#Function Calling#MCP服务端#Streamable HTTP#智能体工具调用#模型上下文协议
分享:

相关推荐