概述
之前我们介绍过通过 MCP SSE 插件调用外部平台的 MCP-server,实现 Dify 与第三方服务的对接。反过来,如果希望将 Dify 的工作流或 Chatflow 发布为 MCP-server,供其他支持 MCP client 的工具(如 Cursor、Claude Desktop 等)直接调用,该怎么做?
Dify 社区提供了一个名为 mcp-server 的 Extension 类型插件,专门用于实现这一功能。安装后,你可以把任何 Dify 应用转变成符合 MCP 标准的 Server Endpoint。
核心能力
- 暴露为 MCP 工具:将 Dify 应用抽象为单一 MCP 工具,供外部客户端调用。
- 利用 Dify Endpoint 功能:创建应用 Endpoint 后获得唯一 URL,外部客户端可直接连接。
- 提供 MCP 服务:插件在 Dify 环境中自动启动 HTTP 服务,基于 HTTP 和 SSE 协议处理握手、能力发现及工具调用。
安装与配置
1. 安装插件
在 Dify 插件市场中搜索并安装 MCP-server。安装成功后可在插件列表中查看到该工具。

2. 环境变量配置
由于该插件需要对外提供服务,必须确保 Dify 能够被互联网或局域网访问。因此,我们需要修改本地 .env 文件中的关键配置项。
建议参考官方示例文件:docker/.env.example。
重点需要关注以下两个变量,它们默认指向 localhost,需根据实际部署环境调整为公网 IP 或局域网 IP:
EXPOSE_PLUGIN_DEBUGGING_HOSTENDPOINT_URL_TEMPLATE
配置示例
以下是修改前后的对比逻辑。请注意,生产环境中请勿直接使用示例中的 Key,应生成自己的密钥。
原始配置(默认)
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=<your_secret_key>
PLUGIN_DIFY_INNER_API_URL=http://api:5001
ENDPOINT_URL_TEMPLATE=http://localhost/e/{hook_id}
修改后(适配公网访问)
PLUGIN_DEBUGGING_HOST=0.0.0.0
PLUGIN_DEBUGGING_PORT=5003
EXPOSE_PLUGIN_DEBUGGING_HOST=<your_public_ip> # 替换为你的公网 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_public_ip>/e/{hook_id} # 同步更新模板地址


