如果你最近关注AI领域,大概率会被“MCP”这个词反复刷屏。Agent技术爆火之后,MCP几乎成了技术圈口口相传的热词。但说句实在话,很多小伙伴一开始就被那一堆技术名词给劝退了——什么叫技术协议?什么又是通信标准?主机、客户端、服务器到底怎么区分?工具和资源又是什么东西?看着技术大神们用MCP搭建出一个个酷炫的智能体,自己只能干瞪眼。别急,今天咱们就把这事儿彻底掰扯清楚。
MCP的全称是Model Context Protocol,也就是模型上下文协议,由Claude的母公司Anthropic在去年11月正式提出。
MCP刚发布那会儿其实不温不火,直到今年Agent大爆发,才被真正推到聚光灯下。更关键的是今年2月,Cursor正式宣布支持MCP,这一下直接把MCP推到了全体开发者面前。
那么到底什么是MCP?它到底能用来干什么?从本质上说,MCP是一种技术协议,是在智能体开发过程中大家共同约定的规范。打个比方,这就好比秦始皇搞的“书同文、车同轨”——有了统一标准,协作效率自然就上去了,最终目的就是提升Agent的开发效率。截至目前,已经有上千种MCP工具诞生,在这样强悍的生态加持下,人人手搓一个Manus级别的智能体,恐怕不再是幻想。
在初步了解MCP的核心价值之后,我们再深入聊两句:MCP具体解决了Agent开发中的什么痛点?以及如何接入MCP?
说白了,MCP解决的最大痛点,就是Agent开发中调用外部工具的技术门槛太高了。大家都知道,能不能调用外部工具,是大模型能否进化成智能体Agent的关键。如果连外部工具都用不了,那大模型就只能是个简单的聊天机器人,连查个天气都做不到。
要搭建一个简单的天气预报Agent,就必须让大模型能调用类似OpenWeather这样的天气查询工具。
那具体怎么实现呢?目前主流的解决方案是借助Function calling方法,也有人叫它tools方法。Function calling是OpenAI在2023年6月首次提出的一种技术方案。
由于底层技术限制,大模型本身没法直接和外部工具通信。所以Function calling的思路就是创建一个外部函数(function)作为中介——一头对接大模型的请求,另一头调用外部工具,最终让大模型间接地完成工具调用。
举个例子,当我们要查询当前天气时,大模型调用外部工具的Function calling流程大概就是这个样子:
Function calling的设计确实很棒,自诞生以来一直被行业奉为圭臬。但问题在于,编写这个外部函数的工作量实在太大了。一个简单的外部函数往往就需要上百行代码,而且为了让大模型“认识”这些函数,还得额外给每个函数写一份JSON Schema格式的功能说明。此外,还得精心设计提示词模板,才能提高Function calling的响应准确率。一套流程走下来,开发难度着实不小。之前我们团队在做交互式编程Agent MateGen的时候,为了顺利调用6个外部函数,硬是写了3000多行代码。
而随着技术发展,现在的Agent开发需求难度更是指数级上升。就拿之前火遍全网的Manus来说,处理每一个任务,至少需要调用网页搜索、网页访问、信息抓取、本地(沙盒环境)文件创建与管理、代码解释器等几十个外部工具。要调用这些工具,就得编写对应的几十个外部函数,大模型调用外部工具的架构变得相当复杂,编写的工作量可想而知。
MCP的目标,正是让大模型在Agent开发过程中更便捷地调用外部工具。为此,MCP提出了两个关键举措。第一个是“车同轨、书同文”——统一Function calling的运行规范。先统一命名:把大模型运行环境叫做MCP Client(客户端),把外部函数运行环境叫做MCP Server(服务器),对应关系如下:
然后统一客户端和服务器的运行规范,要求两者之间按照既定的提示词模板进行通信。“车同轨、书同文”最大的好处,就是避免了MCP服务器的重复开发——也就是避免外部函数被反复编写。像查询天气、网页爬取、查询本地MySQL数据库这类通用需求,只要有人开发了一个服务器就行,其他人直接复制到自己的项目里使用,不需要每个人每次都从头写一套。这可是推动全球AI开发者协作的好事,所以GitHub上很快就涌现出海量已经开发好的MCP服务器,从SQL数据库检索、网页信息抓取,到命令行操作电脑、数据分析、机器学习建模,应有尽有。
现在,只要你的本地大模型支持MCP协议(也就是安装了相应的库),仅需几行代码就能接入这些海量外部工具。Agent开发的门槛是不是瞬间就降下来了?这种“书同文、车同轨”的规范,在技术领域里就叫协议,比如HTTP就是网络信息交换的协议。所有技术协议的目标都是通过提升协作效率来提高开发效率,而MCP就是专门用来提升大模型Agent开发效率的协议。
既然是协议,那肯定是用的人越多越有价值。为了进一步普及MCP,Anthropic还提供了一整套MCP客户端和服务器的开发SDK,并且支持Python、TypeScript和Java等多种语言。
借助SDK,只需几行代码就能快速开发一个MCP服务器。
之后你可以把它接入任意MCP客户端来构建智能体。如果愿意,还可以把服务器分享到社区,让有需求的开发者直接使用,甚至部署到线上让用户付费调用。而MCP的客户端不仅支持Claude模型,也支持任意本地模型、在线大模型,甚至是一些IDE。比如现在Cursor已经正式接入MCP,意味着Cursor本身就是一个MCP客户端。在Cursor里,你不仅能快速编写MCP服务器(外部函数),还能一键连接成百上千的开源MCP服务器,让大模型快速接入海量工具,大幅加快Agent开发进度。
我们也在自己的MateGen项目里试了一把。在MCP加持下,构建同样功能的智能体,手写代码量从原来的3000多行直接降到了500行。可以说MCP技术给智能体开发效率带来了质的飞跃。2025注定是智能体全面爆发的一年,而MCP必然成为加速这一进程的关键推手。好了,以上就是本期的全部内容。
