1. 前言
此前曾介绍过 MCP SSE 插件,它能够支持 MCP-server 在 Dify 平台上的调用,从而帮助 Dify 与第三方平台提供的 MCP-server 进行无缝对接。针对 Dify 的工作流或 Chatflow 是否也能发布为 MCP-server 供其他支持 MCP client 的工具使用的问题,本文将介绍一款 Dify 插件——mcp-server,它能够实现这一功能,即将 Dify 的工作流或 Chatflow 发布为 MCP-server,供其他第三方工具调用。
该插件名为 MCP-server,可在 Dify 插件市场找到。它是一个由 Dify 社区贡献的 Extension 类型插件。安装后,你可以把任何 Dify 应用转变成符合 MCP 标准的 Server Endpoint,供外部 MCP 客户端直接访问。它的主要功能包括:
- 暴露为 MCP 工具: 将 Dify 应用抽象为单一 MCP 工具,供外部 MCP 客户端(如 Cursor、Claude Desktop、Cline、Windsurf 等)调用。
- 利用 Dify Endpoint 功能: 用户创建应用 Endpoint 后,将获得唯一的 URL,外部 MCP 客户端可直接通过该 URL 连接。
- 提供 MCP 服务: 插件在 Dify 插件环境中自动启动 HTTP 服务,基于 HTTP 和 SSE 协议,高效处理外部 MCP 客户端请求,包括协议握手、能力发现以及工具调用。
2. 如何使用
安装插件
在插件市场上安装好这个插件。安装好后可以在插件列表中查找到。
配置环境变量
接下来我们需要配置 MCP-server。既然这个工具是对外提供服务的,那么我们就希望在互联网或者局域网实现访问。因此需要修改 Dify .env 文件的配置。
我们可以参考官方文档中的 .env.example 文件进行修改。搜索到 .env.example 文件,找到相关配置项。
我们需要把 EXPOSE_PLUGIN_DEBUGGING_HOST、ENDPOINT_URL_TEMPLATE 这 2 个地方的 localhost 换成你的局域网 IP 或者公网 IP。
原配置示例:
PLUGIN_DEBUGGING_HOST=0.0.0.0
PLUGIN_DEBUGGING_PORT=5003
EXPOSE_PLUGIN_DEBUGGING_HOST=localhost
EXPOSE_PLUGIN_DEBUGGING_PORT=5003
# If this key is changed, DIFY_INNER_API_KEY in plugin_daemon service must also be updated or agent node will fail.
PLUGIN_DIFY_INNER_API_KEY=<your_key>
PLUGIN_DIFY_INNER_API_URL=http://api:5001
ENDPOINT_URL_TEMPLATE=http://localhost/e/{hook_id}
修改后配置示例(将 localhost 替换为你的 IP):
PLUGIN_DEBUGGING_HOST=0.0.0.0
PLUGIN_DEBUGGING_PORT=5003
EXPOSE_PLUGIN_DEBUGGING_HOST=<your_public_or_lan_ip>
EXPOSE_PLUGIN_DEBUGGING_PORT=5003
PLUGIN_DIFY_INNER_API_KEY=<your_key>
PLUGIN_DIFY_INNER_API_URL=http://api:5001
ENDPOINT_URL_TEMPLATE=http://<your_public_or_lan_ip>/e/{hook_id}
修改完成后,重启 Dify 容器以使配置生效。此时,你的 Dify 工作流即可作为 MCP Server 被外部客户端访问。


