为什么需要MCP?
Function Calling是一大进步,但随着越来越多的AI模型和工具出现,一个新问题浮现:每个AI系统都有自己的“方言”,导致连接不同系统时需要大量定制工作。
就像古代的欧洲,每个王国都有自己的语言和标准,商人在各国之间贸易时需要不断翻译和适应。这种情况下,一种通用语言将极大地简化交流。
这正是Anthropic在2024年11月创建MCP的原因。
MCP:AI世界的“世界语”
如果说Function Calling是给AI提供工具的方法,那么MCP则是创建了一种标准化的语言,让所有AI和工具都能无缝对话。
我喜欢把MCP比作计算机的USB接口。在USB出现之前,连接打印机需要一种端口,连接键盘需要另一种,连接相机又需要完全不同的接口。USB的魅力在于它提供了一个统一标准——任何USB设备都可以插入任何USB端口。MCP为AI世界做了同样的事情(图2-3)。
图2-3 MCP 工作原理
MCP的神奇之处
MCP引入了“客户端-服务器”架构,就像网络浏览器和网站的关系。
● MCP客户端: 嵌入在AI助手(如Claude Desktop)中,负责与用户交互。
● MCP服务器: 连接各种数据源和工具,提供实际功能。
它们通过一组标准化的原语(Primitives)进行通信,这些原语包括以下几种。
● Prompts: 指令或模板,告诉AI该做什么。
● Resources: 结构化数据,提供AI分析和处理的内容。
● Tools: 可执行的函数或操作,让AI能够执行实际操作。
● Roots: 允许AI访问主机文件系统或环境的特定部分。
● Sampling: 让AI能够将复杂推理分解成更小的步骤。
其中,Roots和Sampling这两个原语特别值得关注。它们代表了AI正在朝着更复杂、更自主的方向发展,这就像是从“给AI提供工具”升级到“允许AI在一定范围内自由探索和思考”。
MCP带的优势见表2-7。
表2-7 MCP 的优势
Anthropic采取开源方式发布MCP,这一决定令我印象深刻。这意味着任何人都可以为这个标准做出贡献,加速了创新和普及。就像互联网的开放标准推动了网络的蓬勃发展,MCP有潜力成为AI集成的通用语言。
小故事:从API混乱到和谐统一
一位开发者朋友曾抱怨,为了让应用程序同时支持GPT和Claude,他不得不维护两套完全不同的代码。“就像同时为Windows和Mac开发软件,但区别更大。”他说。
当MCP推出后,他试着重构了应用程序。“现在我只需要写一次集成代码,然后它就能适用于任何支持MCP的AI模型。这简直是救命稻草!”
从锁匙到桥梁:技术基石如何塑造AI Agent的未来
Function Calling和MCP这两项技术正在从根本上改变AI Agent的能力和开发方式。Function Calling就像是给了AI一把能开启外部世界的钥匙,让它从“只会说话”变成“能够行动”。而MCP则像是在不同AI系统和工具之间架起了桥梁,构建了一个互联互通的生态系统。
我个人认为,这些技术的意义远不止于此。它们不仅是技术创新,更是AI从“被动回应”走向“主动服务”的关键一步。在不远的将来,我们可能会看到AI Agent能够自主规划复杂任务,协调多种工具,并根据用户的长期目标提供持续支持。
思考问题: 如果你可以为AI设计一个新的“超能力”(即新的工具或接口),你会创造什么样的功能?它将如何改变人们与AI的互动方式?
动手尝试: 如果你熟悉编程,试着使用OpenAI的API创建一个简单的Function Calling 示例,比如,一个能查询天气或转换货币的小应用。体验一下AI如何理解用户需求并调用正确的函数。