前言
之前我们探讨过利用 MCP SSE 插件让 Dify 调用第三方服务,但反过来是否可行?即把 Dify 的工作流或 Chatflow 发布为 MCP Server,供外部工具(如 Cursor、Claude Desktop 等)直接调用?
答案是肯定的。通过安装社区贡献的 mcp-server 插件,我们可以将任何 Dify 应用转换为符合 MCP 标准的 Server Endpoint。

这个插件的核心价值在于:
- 暴露为 MCP 工具:将 Dify 应用抽象为单一工具,外部客户端可直接调用。
- Endpoint 功能:创建应用后生成唯一 URL,支持 HTTP 和 SSE 协议。
- 自动服务启动:在插件环境中自动运行 HTTP 服务,处理握手与能力发现。
安装与配置
1. 安装插件
在 Dify 插件市场中搜索并安装 mcp-server。安装成功后,可在插件列表中确认其状态。

2. 环境变量配置
为了让外部客户端能访问你的 Dify 实例,必须修改 .env 文件中的网络配置。默认情况下,这些配置指向 localhost,这意味着只有本机可访问。
打开项目根目录下的 .env 文件,找到以下关键参数:
PLUGIN_DEBUGGING_HOST=0.0.0.0
PLUGIN_DEBUGGING_PORT=5003
EXPOSE_PLUGIN_DEBUGGING_HOST=localhost
EXPOSE_PLUGIN_DEBUGGING_PORT=5003
# 如果修改此密钥,需同步更新 plugin_daemon 服务中的 PLUGIN_DIFY_INNER_API_KEY
PLUGIN_DIFY_INNER_API_KEY=QaHbTe77CtuXmsfyhR7+vRjI/+XbV1AaFy691iy+kGDv2Jvy0/eAh8Y1
PLUGIN_DIFY_INNER_API_URL=http://api:5001
ENDPOINT_URL_TEMPLATE=http://localhost/e/{hook_id}
重点修改项:
我们需要将 EXPOSE_PLUGIN_DEBUGGING_HOST 和 ENDPOINT_URL_TEMPLATE 中的 localhost 替换为你的局域网 IP 或公网 IP。例如,如果你的公网地址是 <your_public_ip>,则应调整为:
EXPOSE_PLUGIN_DEBUGGING_HOST=<your_public_ip>
ENDPOINT_URL_TEMPLATE=http://<your_public_ip>/e/{hook_id}
注意:实际部署时请确保防火墙已放行对应端口(默认 5003),并考虑使用 HTTPS 以保障通信安全。修改完成后,记得重启 Dify 容器使配置生效。
完成上述步骤后,你的 Dify 工作流即可作为标准 MCP 服务被外部工具识别和调用了。


