Workflows

Dify进阶:MCP的使用

Dify作为一个 AI 工作流平台,他肯定是支持MCP协议的,这里的支持分为两个方面: 1、支持把一个Dify上面的工作流作为一个MCP Server发布 2、支持在Dify中调用一个MCP Server 在之前的Dify的版本中,…

TL;DR

Dify作为一个 AI 工作流平台,他肯定是支持MCP协议的,这里的支持分为两个方面: 1、支持把一个Dify上面的工作流作为一个MCP Server发布 2、支持在Dify中调用一个MCP Server 在之前的Dify的版本中,…

Dify作为一个 AI 工作流平台,他肯定是支持MCP协议的,这里的支持分为两个方面: 1、支持把一个Dify上面的工作流作为一个MCP Server发布 2、支持在Dify中调用一个MCP Server 在之前的Dify的版本中,想要使用MCP,还是比较麻烦的需要各种插件,但是从Dify 1.6开始,已经支持双向MCP了,即上面的这两种,本文就是基于官方内置的MCP的支持介绍。

发布为MCP Server

如果我们在Dify上部署了一个工作流之后,想要在其他的地方集成他,比如在Cursor中的话,有个好的办法就是把他发布为一个MCP Server,然后在Cursor中使用它。 那就从实际需求出发:我们在cursor中看代码的时候,有的时候,想让cursor帮我们生成一些UML图,比如时序图、类图之类的,这样看起来就方便很多。 这样我们可以在Dify中搭建一个工作流,实现把代码转成UML图,这里我们用一个在大模型兴起之后非常火的mermaid。 mermaid,他是一种基于JavaScript的开源工具,它允许用户使用类似Markdown的简单文本语法来生成各种可视化图表,如流程图、时序图、甘特图、类图等,无需拖拽就能通过代码快速创建和渲染图表,非常适合在文档和网页中快速记录和分享复杂逻辑。 默认情况下,Cursor只会生成mermaid的文档,但是不会直接把图渲染出来,那么,我们就搞一个MCP实现这个功能。

MCP Server发布

搭建一个如下工作流: - 参数提取器:用于从用户输入中提取出符合mermaid语法的mermaid片段。 - MERMAID转换器:用于将mermaid的文本转成图片 以上工作流运行效果如下: 接着,我们把他发布成一个MCP。MCP默认是不开启的,在Dify 中应用程序的配置界面中,可以配置开启: 当你开启它时,Dify 会为你的应用程序生成一个唯一的 MCP 服务器地址。该地址作为外部工具的连接点。 完整DSL:

MCP Server调用

按照以上操作之后,就完成了这个步骤了,就可以通过这个服务断点URL来交互了。接着,我们在Cursor中使用这个MCP工具。 把上面生成的url配置到这里: 保存后就能看到已经可以用了: 接着我们同样在cursor问问题,让他生成时序图。 可以看到这次的运行,多了一个生成图片的步骤。然后就能根据文件名,找到对应的图片了。 以上,我们就用Dify实现了一个MCP Server,然后在Cursor调用它。

调用MCP Server

Dify 在1.6之后,已经官方支持MCP了,不需要用任何插件(如之前的mcp插件)。现在只需要在工具-MCP中增加配置即可。 我们这里演示使用一个高德地图的MCP工具,帮我们在流程中实现路径规划。

三方MCP申请

百炼上提供了一些MCP的接入,比如高德地图相关的。 第一次使用需要开通,开通的时候需要填入一个高德开放平台的key。 这个key想要获取,需要先登录到高德开放平台(https://lbs.amap.com/ )注册一个账号,个人使用和测试的话,选择个人开发者就行,用支付宝做一下实名认证即可。 注册成功账号之后,就可以在控制台创建一个应用,在创建好的应用中可以创建一个key: 这个key就可以把它复制到百炼上,就能开通成功了。 然后就可以在百炼中直接调用这个MCP服务,通过创建一个智能体,在其中配置上这个MCP: 然后对话,让他做形成规划: 同时给出了一个导航的链接地址: 以上就实现了一个通过百炼调MCP的例子。当然,其实也可以不用百炼中转,直接通过高德提供的服务也能调。 https://lbs.amap.com/api/mcp-server/gettingstarted 这个是高德自己给的文档,可以快速的通过cursor、代码等等方式调用他的MCP Server 其他的MCP市场,以及官方的MCP的接入方案基本都差不多,只需要拿到他们的url和api key就可以。key一般都是通过开放平台来获取。 总之,最重要的就是拿到一个断点URL和一个api key,有了这些之后,就可以在Dify中调用了。

Dify中调用MCP

在Dify的工具->MCP页面中,我们可以新增MCP配置: 在这个页面中输入mcp相关的信息,我配置的一个高德地图的MCP如下: 保存后,在右上角做一次授权,就可以看到所有的工具列表了。 然后就可以在工作流或者是Agent(可以是工作流中的Agent,也可以是单独的Agent)中来调用MCP服务: 1. 工作流直接调用工具: 这种方式不能算是 function call,而是将我们注册的工具,当成工作流的一个节点来处理,比如:我们在LLM节点后面可以配置一个工具节点,这边同样也可以选择MCP,在工具节点的后面,我们还可以增加一个LLM节点来进行输出总结即可。 1. 工作流中的Agent: 选择Agent节点,这边需要注意的是Agent策略,需要自行去Marketplace中安装。我这边选择的是React Agent,并配置MCP工具即可。 1. 单独的Agent: 先点击Agent tab页签,然后创建应用。 这里需要注意,建议在提示词中告知LLM使用工具,如"你擅长使用工具帮用户做路线规划"。这样LLM会优先考虑使用工具。 以下是我们问这个agent,如何从西溪湿地骑行到西湖。可以看他的执行过程,分别有三次调用了MCP的工具。实现了骑行路线的规划。

版本提示

模型、框架与接口会持续变化。涉及版本号、参数与生产配置时,请在实践前对照对应官方文档。

LLMentor系统化学习大模型应用工程

内容来自个人课程知识库备份,并经过结构化整理。技术版本持续演进,生产使用前请结合官方文档验证。