前言
之前我们介绍过 MCP SSE 插件,它支持 Dify 调用第三方平台的 MCP Server。但反过来,如果希望将 Dify 的工作流或 Chatflow 发布为 MCP Server,供外部工具(如 Cursor、Claude Desktop 等)直接调用,该如何实现?
今天我们来聊聊 Dify 社区的一个 Extension 类型插件——mcp-server。安装后,它能将任何 Dify 应用转换成符合 MCP 标准的 Server Endpoint,让外部客户端通过 HTTP 和 SSE 协议高效访问。
主要能力包括:
- 暴露为 MCP 工具:将 Dify 应用抽象为单一工具,供外部 MCP 客户端调用。
- 利用 Dify Endpoint 功能:创建应用 Endpoint 后获得唯一 URL,外部可直接连接。
- 提供 MCP 服务:插件在环境中自动启动 HTTP 服务,处理握手、发现及调用。

安装与配置
首先在插件市场找到并安装 MCP-server。安装完成后,在插件列表中即可看到它。

环境变量配置
既然是对外提供服务,我们需要确保服务能在局域网或公网被访问。这涉及到修改 Dify 的 .env 文件。
打开你本地部署的 .env 文件,或者参考官方示例 docker/.env.example。重点调整以下两个参数,将默认的 localhost 替换为你的实际 IP 地址。
原配置通常如下:
EXPOSE_PLUGIN_DEBUGGING_HOST=localhost
ENDPOINT_URL_TEMPLATE=http://localhost/e/{hook_id}
假设你的公网 IP 是 14.103.204.132,修改后的配置应类似这样:
EXPOSE_PLUGIN_DEBUGGING_HOST=14.103.204.132
ENDPOINT_URL_TEMPLATE=http://14.103.204.132/e/{hook_id}
这里要注意,PLUGIN_DIFY_INNER_API_KEY 和 PLUGIN_DIFY_INNER_API_URL 通常不需要变动,除非你的内部 API 地址也发生了迁移。修改完 .env 后,记得重启 Docker 容器使配置生效。
配置完成后,外部 MCP 客户端就可以通过这个端点地址连接到你的 Dify 工作流了。整个过程不需要额外开发代码,核心在于网络可达性和正确的环境变量映射。


