跳到主要内容

获取更多AI技术与应用的第一手资讯,包括大语言模型、AI框架、算法等热门内容。 我们会定期推送高质量的AI知识、工具使用指南和行业动态。

微信公众号二维码

Dify MCP 实战二

发布工作流为 AI 工具服务,全流程配置 + Cherry 调用实战


在上一篇 Dify × MCP 实战(一):用插件一分钟搞定 MCP Server(含时间踩坑实践) 中,我演示了如何在 Dify 中快速接入 MCP 工具服务。

本篇我们将反过来,把 Dify 工作流 ** 发布为 MCP 服务 ** ,并在 Cherry Studio 中作为工具调用。这个功能对多智能体系统、跨平台集成非常关键,我也是折腾了几次才通。

安装插件


在插件页面,点击 1 探索Marketplace,然后在 2 的位置搜索 mcp server ,点击安装。

端口开放

docker-compose.yaml 中,需要将 plugin_daemon 的端口给开放了

plugin_daemon:  
image:langgenius/dify-plugin-daemon:0.1.2-local
restart:always
ports:
- "${EXPOSE_PLUGIN_DEBUGGING_PORT:-5003}:${PLUGIN_DEBUGGING_PORT:-5003}"
- "${PLUGIN_DAEMON_PORT:-5002}:${PLUGIN_DAEMON_PORT:-5002}/tcp"

在plugin_daemon 的 ports 中把5002端口添加上去。

原因:dify的插件都是安装到plugin_daemon模块中运行的, MCP server 将工作流转成http服务,需要借助 plugin_daemon 模块本身的端口,所以我们要将5002开放出去

⚠️ 注意:很多同学忽略了 plugin_daemon 的端口暴露,导致发布的服务不可用。

添加工作流发布为mcp服务

  • 1 点击右上角的插件
  • 2 找到 MCP server 点击,会弹出右侧的面板
  • • 在 3 的位置点击 + ,弹出下面的数据

  • • 在 APP 中选中工作流
  • • 选择应用的类型
  • • 添加工作流的参数
  • • 最后点击保存

这里可以设置Bearer token,用于安全认证,内网环境,看业务需求了。

比如我的工作流有两个参数,需要注意的是,官方没有字段的description说明,加上以后也生效的

{
"name":"dify_meta",
"description":"通过元数据检索知识库",
"inputSchema":{
"properties":{
"category":{
"title":"category",
"type":"string",
"description":"元数据分类"
},
"query":{
"title":"query",
"type":"string"
}
},
"required":[
"category",
"query"
],
"title":"metaArguments",
"type":"object"
}
}

保存完以后如下图所示

这里有两类服务

  • • 以sse结尾和messages结尾的 sse服务
  • • 以mcp 结尾的可流式传输的http

在使用链接的时候,需要将 plugin_daemon 的端口加上

在cherry studio中使用

  • • 将类型选为可流式传输的HTTP

  • • 将url填写进去,注意,我添加了5002

  • • 起个名称叫 dify-mcp

    点击工具,能看到可用的工具,那你就配置正常了

    在助手中:

  • • 选择mcp服务器,选择 dify-mcp 服务


可以看到,已经调用到对应的工具了

在dify的对应工作流里,有个日志,也可以看到调用记录,以及日志跟踪了。不过没有检索到数据,我就有点奇怪。

于是我拿着同样的条件去工作流中检索,检索到数据了。

对比了下两个的调用,唯一的区别就是,用户不同。我以为是知识库的权限问题,放开了也查不到,这个作为一个跟进问题处理吧。

最后

通过 MCP Server 插件,我们可以把 Dify 工作流变成标准的 HTTP 工具服务,配合 Cherry Studio、LangGraph、LangChain 等框架使用非常方便。