




自从2023年3月,OpenAI公司的GPT-4模型诞生以来,市面上的AI大模型如雨后春笋一般涌现出来。
无论是国外ChatGPT、Claude、Gemini,还是国内的DeepSeek、通义千问、文心一言,都是智能水平非常高的AI模型,用户可以向这些AI模型提出五花八门的问题,并且获得高质量的回答。
不过,尽管这些AI模型都很强大,但用户却只能在小小的聊天窗口里和它们进行对话。比如用户让AI写一篇文章,AI写出文章以后,用户需要手工把文章复制粘贴到本地或者自媒体平台,并且手动发布;再比如用户让AI写一段代码,AI生成代码以后,用户需要手工把代码复制粘贴到本地的IDE,并手工调试和执行。
这些AI模型,就好比是一个个聪明的大脑,却不具备能够感知外界的五官,也不具备能够行动的手和脚。


所谓Function Calling,是OpenAI公司于2023年6月推出的一项革命性功能,它允许AI模型在对话过程中识别用户请求中的特定需求,并"调用"预设的外部函数或工具来获取更准确的信息或执行特定任务。简单来说,它让AI从"只能回答问题"进化到"可以实际操作工具"。
如果我们把AI模型比作是人类的大脑,那么计算机当中的数据库、浏览器、应用、服务就像是人类的手、脚、眼睛和耳朵。
大脑想要控制身体各个部位,需要神经系统来传递电信号:

而AI模型想要调用外部的资源和服务,则需要function calling来传递消息:

在2024年流行的各种智能体(Agent),就是基于Funcation calling技术实现的。



在过去,function calling并没有统一的规范,同一个Agent往往需要访问数据库、网络、文件、应用等等不同的资源,不同开发者所开发的function call彼此又并不兼容,这使得Agent开发的成本非常高。
如何避免这种低效的重复发明轮子的现象呢?在2024年末,AI模型Claude所属的研发公司Anthropic提出了一项开源协议,名为MCP协议(Model Context Protocol)。
这项协议通过客户端-服务器架构与JSON-RPC 2.0等标准通信协议,实现了大型语言模型与外部数据源、工具的无缝集成。


在人与人之间,存在着很多的交流合作。假如每个人都使用不同的语言来讲话,张三说英语,李四说德语,王五说法语,赵六说日语......那大家就没法正常沟通合作了。
但是,如果我们让张三、李四、王五、赵六统一用汉语讲话,大家就可以高效地交流想法,团结一致办大事。
在计算机网络的世界中同样如此。假如每一个程序都采用不同的通信格式,彼此之间互不兼容,那么程序之间协作的效率就会非常低。
但如果程序之间的通信拥有统一的格式和规范,就可以实现高效通信,从而大大节省了开发成本。
目前在计算机领域有很多成熟的协议,包括HTTP协议、FTP协议、TCP/IP协议等等,这些协议都在各自的领域发挥着作用。



MCP Client:用户或AI模型的请求发起方,负责格式化任务指令(比如自然语言命令)并发送给MCP Server。
MCP Server:协议的中枢,负责路由请求、管理上下文、调用工具,并返回执行结果。
其中MCP Client通常并不是独立运行的,而是嵌入在AI模型相关的工具当中,比如Claude桌面应用、IDE等等。内嵌MCP Client的应用被称为MCP Host。
MCP Client、MCP Server、MCP Host、AI模型与外部资源,这几大角色之间的协作关系如下图所示:






许多人把自己开发的MCP Server上传到了包括Github在内的技术社区,大家可以从下面这个地址里找到许多好用的MCP Server:


