背景与价值
MCP(Model Context Protocol)正在成为大模型应用集成的新标准。之前我们探讨过如何通过 MCP SSE 插件让 Dify 调用外部的 MCP Server,但反过来——将 Dify 的工作流或 Chatflow 发布为 MCP Server,供外部支持 MCP Client 的工具(如 Cursor、Claude Desktop、Cline 等)直接调用——同样具有极高的实用价值。
通过安装社区贡献的 mcp-server 插件,我们可以把任何 Dify 应用抽象为符合 MCP 标准的 Server Endpoint。这不仅实现了 Dify 能力的对外暴露,还允许外部客户端通过 HTTP 和 SSE 协议高效处理请求,包括协议握手、能力发现及工具调用。

插件安装
在 Dify 插件市场中搜索并安装 mcp-server 插件。安装成功后,可在插件列表中确认其状态。

环境配置
为了让外部工具能访问到服务,我们需要修改 Dify 的环境变量。默认情况下,插件可能仅监听本地回环地址,这会导致局域网或公网无法连接。
找到项目根目录下的 .env 文件(参考官方示例 docker/.env.example),重点调整以下两个配置项:
EXPOSE_PLUGIN_DEBUGGING_HOST:设置插件监听的 IP 地址。ENDPOINT_URL_TEMPLATE:设置外部访问的 URL 模板。
修改前示例:
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}
修改后建议:
将 localhost 替换为你的实际可访问 IP(公网 IP 或局域网 IP)。注意不要泄露真实的 API Key,生产环境中请确保密钥安全。
EXPOSE_PLUGIN_DEBUGGING_HOST={你的公网 IP}
ENDPOINT_URL_TEMPLATE=http://{你的公网 IP}/e/{hook_id}
完成修改后,重启 Docker 容器使配置生效。此时,Dify 应用即可生成唯一的 Endpoint URL,供外部 MCP 客户端连接使用。


