前言
之前我们聊过通过 MCP SSE 插件在 Dify 中调用第三方 MCP Server。有开发者问:反过来行不行?能不能把 Dify 的工作流或 Chatflow 发布成标准的 MCP Server,供外部工具调用?答案是肯定的。今天介绍一个社区贡献的 Extension 插件——mcp-server,它能将 Dify 应用直接转换为符合 MCP 标准的服务端点。
安装后,你可以实现几个关键能力:
- 暴露为 MCP 工具:将 Dify 应用抽象为单一工具,供 Cursor、Claude Desktop 等客户端调用。
- 利用 Endpoint 功能:创建应用 Endpoint 后获得唯一 URL,外部客户端可直接连接。
- 提供 MCP 服务:插件自动启动 HTTP 服务,基于 HTTP 和 SSE 协议处理握手、发现及调用。

配置与部署
在插件市场安装好 mcp-server 后,重点在于网络配置。既然要对外提供服务,必须确保局域网或公网可访问。这需要修改 Dify 的 .env 文件。
参考官方仓库的 docker/.env.example,找到以下配置项:
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=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,这意味着只有本机能访问。如果你希望外部工具(如本地运行的 MCP Client)能连进来,需要将其替换为你的实际 IP 地址。
例如,假设你的公网或局域网 IP 是 192.168.x.x 或 xxx.xxx.xxx.xxx,修改如下:
EXPOSE_PLUGIN_DEBUGGING_HOST=192.168.x.x
ENDPOINT_URL_TEMPLATE=http://192.168.x.x/e/{hook_id}
注意:如果是在生产环境,建议配合反向代理(如 Nginx)使用 HTTPS,避免明文传输敏感数据。修改完成后重启 Docker 容器即可生效。



