背景与价值
之前我们介绍过通过 MCP SSE 插件让 Dify 调用外部的 MCP Server。反过来,如果希望把 Dify 的工作流或 Chatflow 发布成 MCP Server,供 Cursor、Claude Desktop 等支持 MCP Client 的工具调用,该怎么做呢?Dify 社区贡献了一个名为 mcp-server 的 Extension 类型插件,正好能解决这个问题。它能把 Dify 应用抽象为单一 MCP 工具,暴露为符合标准的 Server Endpoint。
部署与配置
首先在插件市场找到并安装 mcp-server 插件。安装成功后,在插件列表中即可看到。
环境配置关键点
既然要对外提供服务,必须确保服务能在局域网或公网被访问。这意味着需要修改 Dify 的 .env 配置文件。官方示例可以参考 GitHub 仓库中的 docker/.env.example。
重点检查以下两个变量:
- EXPOSE_PLUGIN_DEBUGGING_HOST
- ENDPOINT_URL_TEMPLATE
默认情况下它们指向 localhost,这会导致外部无法连接。你需要将其替换为你的实际局域网 IP 或公网 IP。同时注意,如果修改了 EXPOSE_PLUGIN_DEBUGGING_HOST,对应的 PLUGIN_DIFY_INNER_API_KEY 也需要保持一致,否则 Agent 节点可能会失败。
下面是一个配置示例(请根据实际情况替换 IP):
PLUGIN_DEBUGGING_HOST=0.0.0.0
PLUGIN_DEBUGGING_PORT=5003
EXPOSE_PLUGIN_DEBUGGING_HOST=YOUR_IP
EXPOSE_PLUGIN_DEBUGGING_PORT=5003
PLUGIN_DIFY_INNER_API_KEY=YOUR_SECRET_KEY
PLUGIN_DIFY_INNER_API_URL=http://api:5001
ENDPOINT_URL_TEMPLATE=http://YOUR_IP/e/{hook_id}
修改完成后重启容器生效。这样外部 MCP 客户端就能通过生成的唯一 URL 连接并调用你的工作流了。


