hwang
1
早上看到了这个帖子,发现了 MCP 这个概念,觉得会是个很好的东西(如果成为一个流行标准的话)。另开一贴,说下我的理解,请各位佬指正:MCP协议和大模型的function call有什么本质区别?
古早阶段,大家写的接口有的返回纯文本,有的返回 xml
,有的返回 json
,甚至有的返回 true/false
。这会 restful
出来说:你们都听我的,一起用 标准 json
。后续开发者接接口的时候可以不用管解析,根据接口文档的接口结构拿就好了,甚至直接解析成对象直接用(javaer 点赞)。
现在我有一个功能,是让大模型帮我搜索一个文件并删除。
用 Function Call
的话,我需要写两个 fun:searchFile ()
和 delFile ()
, 写一个 prompt 里面专门拿来给我处理搜索的,另外一个 prompt 专门处理删除的,再用代码把它们串起来。这个功能就出来了。
如果我有个朋友,说也想要把我这个功能加入他的系统,他就得把我的 Function 搬过去,然后改他的 prompt 、手动上报这个 Function call 的相关信息。
但是有了 MCP 之后,我可以把这两个 Function 做成 MCP Server,后续甚至可以加入更多的功能。当我朋友要用到时候,他只要在他本地跑这个 MCP Server,然后 MCP Clent (Cursor 、Cherry Studio 、LobeChat 之类的大模型客户端)拔插这个 MCP Server 就可以了,他的 MCP Client 会自己去处理。
总结
这里我觉得是MCP 最主要的功能:解耦
和复用
。
那么理应会有一个类似docker hub、Maven 中央库 之类的MCP Server Market。
18 个赞
其实诞生的第一周基本上已经成为事实上的 AI Agent 标准协议。
遵循 CS 架构,MCP Server 本身就是一个服务器,MCP Client 你可以理解成就是 AI Agent。
比如 GitHub 开放了自己的 API,GitHub 基于它的 API 设计实现了 MCP Server (servers/src/github at main · modelcontextprotocol/servers · GitHub ),这个 Repo 下还有众多官方 MCP Server,比如 MySQL 数据库,文件系统等等。AI Agent / MCP Client 不用直接对 GitHub / MySQL 进行交互,而是和定义好标准的 MCP Server 交互,Client 不需要关注具体的增删改查实现;MCP 就是一个中间层,很多 Library / SDK 已经陆续实现了 MCP,比如知名 Java 框架 Spring 的 Spring AI。
这种操作基本就是软件工程中最最常见的做法 。「 计算机领域的任何问题都可以通过增加一个间接的中间层来解决」,换个八股一点的说法:适配器模式。
10 个赞
hwang
3
这个库应该是MCP 自己做的吧?Github 的 Api 一直都是公开的,这里只是为了推广自己的标准把它封装了一遍,包括我看这个库下面基本都是把一些公开的库给封装了一遍。当然用还是一样用。
是的,按道理应该交给官方厂商自己实现(readme 里可以找到 Official Integrations 列表)。GitHub 的实现刚好是 GitHub 员工自己提的 PR 放这个 repo 里的。
hwang
6
没法,刚起步,而且是闭源公司维护的,要成为行业标准还有很长的距离,哪怕它看上去像是未来。
qingyu
(老干部)
8
Cherry Studio 、LobeChat 能用 MCP吗,没看到设置的入口在哪里丫
hwang
9