MCP是什么?
随着大语言模型的广泛应用,如何高效地连接模型与工具、数据源以及其他智能体,成为了一个亟待解决的问题。本文将深入探讨模型上下文协议(MCP)这一新兴技术,它是由 Anthropic 开发的标准化开放协议,旨在为 AI 模型与外部资源的无缝交互提供通用解决方案。
先回答比较基础的问题。
1.MCP是大模型之前的吗?
答:是的,MCP不同于Function,是模型之外的协议,Function是模型参数内部的能力。
2.MCP可以替代Function吗?
答:不能。先说一件事,春节发布的原生态DeepseekR1无工具调用能力,所以被很多人成为垃圾。然而5月份发布的DeepseekR1-0528具备了Function,也就是在MCP发布之后,Deepseek依旧在增强自己的Function,所以答案显而易见。
原因:LLM是人类文字语言和类人类语言(编程语言)训练的。他的输入输出只有人类语言也就是字符串string格式。但是string(一句话)能说清调用哪个工具,n8n具有440多个工具接口,你和他说:“调用edge“(纯文字语言)他不清楚。所以需要function输出JSON结构化数据文件给到MCP Client。而且模型调用能力不仅仅是Function还有参数内部的微调。
那为什么MCP不能结构化文件?hh,回到那句话,MCP是外部的!!!!
3.MCP协议和A2A协议有什么区别?
答:调用的对象是工具还是智能体。
MCP是依据MCP client和server来调用某个工具
A2A是调用某一个Agent(智能体)来达成多智能体协作。
那又有一个问题了,为什么非得用A2A。
答:小马用的Openai的swarm架构写的Agent1,小张用Microsoft的AutoGen架构(framework)写的Agent2,作者用google JDK写的Agent3.这三架构能功能协作吗?
你用的springboot,我用的JavaEE。
1. 什么是模型上下文协议 (MCP)?
模型上下文协议 (MCP)是由 Anthropic 开发的标准化开放协议,它使 AI 模型能够与外部数据源和工具无缝交互,充当 AI 集成的通用连接器。
- MCP code:modelcontextprotocol/servers: Model Context Protocol Servers
- MCP whitebook:https://modelcontextprotocol.io/
2.MCP如何运作?
MCP 遵循client-server(客户端-服务器)架构,其中:
- Host:承载mcp client的程序
- Client:(如 AI 应用程序或 LLMs)连接到。Client和server必须1:1.
- Server:(MCP 工具提供程序)向客户端公开工具、API 或数据源。
注:此流程中有两个协议。
- LLM to Client。这里你随意,愿意怎么传参怎么传参,可以json可以string
- Client to server:真正的意义的MCP
3.MCP的服务器示例
- 文件系统:访问本地文件和目录
- 网页搜索:运行实时 Web 搜索。
- 数据库:查询 SQL 或 NoSQL 数据库
- 客户关系管理:连接到 Salesforce 等 CRM 系统。
- 版本控制:访问 Git 等版本控制系统。
具体已有server可查询github。
4.MCP的具体工作流程
5.function calling和MCP的区别
(1)function calling 为大模型具备的功能,MCP属于模型外部调用功能。我们在搭建agent或者调用api的时候,有些模型会说明,此模型有函数调用。如deepseekv3.有些没有,如deepseekr1
(2)MCP是统一协议,function不是统一。例:dify平台的百度搜索插件和coze的百度搜索插件不统一。但是百度搜索 api client对应统一的百度搜索 server。如果agent是工作室自己用code开发的,那更不统一了。在以后迭代,开发会非常麻烦。
最后注意:
MCP为MCP Client TO server的协议,并非llm to client的协议。Llm to client依旧可以用function calling以json的形式传送到client因此function calling部分功能可以和MCP共存。如果不用function calling也可以用字符串的形式传参。
本文由 @无痕丶无殇 原创发布于人人都是产品经理,未经作者许可,禁止转载。
题图来自 Unsplash,基于CC0协议。
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。
- 目前还没评论,等你发挥!