本文适用对象:中级水平
目标:让Dify与MCP配合更丝滑
上一篇我们学习了如何让AI应用的Agent具备长记忆能力,这样每次对话,都会让AI记住对话历史,就再也不用每次都要重新交代一遍背景。不知道各位网友是否动手完成学习了没?
上半年早些时候,麦金叔针对MCP的概念和技术,做过非常全面的介绍,之前的系列课地址如下(或者在主页点击MCP文章集合):
但是当时Dify还没有官方支持MCP,所以是通过第三方的插件形式来实现的。经过大半年的发展,MCP技术已经习以为常,所以官方也早就完成了对MCP的适配(虽然支持不完全)。不过新接触Dify的朋友,可能还处在知识爆炸的阶段,没有理解MCP怎么用。
正好今天结合Dify的官方MCP功能,再给新入行的朋友说道说道。
01.
概念与架构
MCP(Model Context Protocol)是由Anthropic于24年11月开源的模型上下文协议,它是AI大模型与外部世界交互的标准化接口,被形象地称为AI领域的"USB-C接口"。
它能实现即插即用最根本的原因在于AI大模型能力的进化。当模型能主动调用工具的时候,为了更好的解耦创建工具和使用工具,MCP协议便有了用武之地。
所以就不难理解围绕MCP工具的架构就是3个部分。
使用方 :就是谁在用工具,如Dify的工作流里面的某个大模型,或者Cherry Studio对话中的某个大模型。
执行方 :即提供能力,也就是它可以做什么事情,查询数据库,或获取网站文章等。
运行环境 :包括了使用方在哪里运行,执行方在哪里运行,它们可以在一台机器上,也可以在不同机器上,也可以在同一台机器的不同沙箱环境里。
02.
使用实例
理解了上述3个部分之后,现在我们再来看看Dify里面如何对应的。
我们分别对这三部分进行配置。
先设置中间的部分,它是连接大模型和MCP的桥梁。从顶部菜单工具进入后,点击MCP,切换至MCP配置页。使用最左的“添加MCP服务(HTTP)”,在弹出的对话框内进行设置。
这里我们先不看是否成功,假设这一步添加成功了,就先回到第一部分。
添加Agent节点后,需要给它配上MCP工具。在Agent策略这里,选择官方的Agent下的FunctionCalling或ReAct。如下图所示:
其他的插件会有兼容性问题,如果没有就忽略。如果之前安装过,注意不要再去选择。
工具列表这里点击+,弹出对话框切到MCP页面,选择上面我们添加的MCP服务的标识符,就完成了MCP工具选择。
如果界面上显示工具名和工具箱下有图标就成功了。
动手部分就已经完成,其他就不赘述了。
03.
MCP运行
现在我们再来理解一下,上面说的第三部分。因为第一部分和第二部分的执行是在Dify的API服务中,而第三部分MCP的运行也需要有地方。
很多朋友困惑的地方就在这里,导致找到的MCP如果是以SaaS服务方式提供的,才能在Dify中用。也就是服务商那里才是真正运行MCP代码的地方,比如看到这种配置信息。
而绝大多数网上开源的MCP(可从导航站mcp.so上搜索)是不提供运行的(Playground是另外一回事)。
比如配置里有command命令的,这种就是需要自行提供执行环境的。uvx需要Python环境,而npx需要Nodejs环境。
如果不是在Dify上用,而是本地助手工具如Cherry Studio,就需要先配置运行环境,才能成功运行MCP工具。只有MCP工具能正常运行,大语言模型才能成功调用它们。
最后一个问题,如果你找到的那个MCP没有提供SaaS服务,而Dify又要用,那应该怎么办?
如果理解了上述麦金叔说的,到这里基本上就懂了。最重要的一点就是你需要一个能运行这些MCP的地方,最简单的方案是将其放在Dify的容器一起,也包装为一个可运行的容器。
当然,如果你需要的开源MCP已经有提供SSE的方式,只需要运行时按SSE方式启动,通过容器内部sse地址就可使用。而如果开源MCP代码里面还是只有Stdio的方式,就还需要进一步改造,利用MCP Proxy项目,将其进一步封装。
总之,普通人要想在Dify上使用mcp.so里面找到的大多数MCP还是需要具备一定的技术能力的,非技术人员量力而行。
总结
今天介绍了如何让Dify的AI应用能通过MCP来扩展能力,通过原理的介绍和动手配置,让你彻底理解MCP的使用。
如果你对AI的发展感兴趣,欢迎一键三连。有任何问题可以长按下图添加小助手的微信,我们共同探讨。
