1. 前言
此前我们探讨过 MCP SSE 插件,它支持 Dify 调用第三方平台的 MCP Server。但反过来,Dify 的工作流或 Chatflow 能否发布为 MCP Server,供外部工具调用呢?答案是肯定的。
通过安装 mcp-server 插件,我们可以将任何 Dify 应用转换为符合 MCP 标准的 Server Endpoint。该插件由 Dify 社区贡献,主要功能包括:
- 暴露为 MCP 工具:将 Dify 应用抽象为单一 MCP 工具,供 Cursor、Claude Desktop、Cline 等外部客户端调用。
- 利用 Dify Endpoint 功能:创建应用 Endpoint 后获得唯一 URL,外部客户端可直接连接。
- 提供 MCP 服务:插件在 Dify 环境中自动启动 HTTP 服务,基于 HTTP 和 SSE 协议处理握手、能力发现及工具调用。
2. 安装与配置
安装插件
在 Dify 插件市场中搜索并安装 MCP-server。安装成功后,可在插件列表中查看到该扩展。
网络环境配置
为了让外部工具能够访问 Dify 发布的服务,需要修改 .env 配置文件。默认情况下,Dify 可能仅监听本地回环地址,我们需要将其调整为可被局域网或公网访问的 IP。
参考官方示例配置(如 GitHub 上的 docker/.env.example),重点调整以下两个变量:
EXPOSE_PLUGIN_DEBUGGING_HOSTENDPOINT_URL_TEMPLATE
默认值通常包含 localhost,需替换为你的实际公网 IP 或局域网 IP。
配置示例
以下是修改前后的对比逻辑。请注意,具体密钥(如 PLUGIN_DIFY_INNER_API_KEY)请保持原有安全设置不变,仅修改网络暴露部分。
原配置片段:
EXPOSE_PLUGIN_DEBUGGING_HOST=localhost
ENDPOINT_URL_TEMPLATE=http://localhost/e/{hook_id}
修改后建议:
EXPOSE_PLUGIN_DEBUGGING_HOST=0.0.0.0
ENDPOINT_URL_TEMPLATE=http://你的公网 IP 或内网 IP/e/{hook_id}
注意:
PLUGIN_DEBUGGING_HOST通常设为0.0.0.0以允许所有接口接收请求,而EXPOSE_PLUGIN_DEBUGGING_HOST则是对外暴露的地址。修改后若涉及 Docker 部署,请确保端口映射正确,且防火墙已放行相应端口。
完成配置后重启 Dify 服务,即可尝试从外部 MCP 客户端发起连接测试。


