前言
之前我们介绍过 MCP SSE 插件,它支持 Dify 平台调用外部的 MCP Server。但很多开发者提出了疑问:既然 Dify 能消费 MCP 服务,那能否将自己的工作流或 Chatflow 发布为 MCP Server,供外部工具(如 Cursor、Claude Desktop 等)直接调用呢?
答案是肯定的。Dify 社区贡献了一款名为 MCP-server 的 Extension 类型插件,它能将任何 Dify 应用抽象为符合 MCP 标准的 Server Endpoint。
![图片:MCP-server 插件在 Dify 插件市场的展示]
该插件的核心能力包括:
- 暴露为 MCP 工具:将 Dify 应用封装为单一 MCP 工具,供外部客户端调用。
- 利用 Dify Endpoint 功能:创建应用 Endpoint 后获得唯一 URL,外部客户端可直接连接。
- 提供 MCP 服务:插件在 Dify 环境中自动启动 HTTP 服务,基于 HTTP 和 SSE 协议处理握手、能力发现及工具调用。
如何使用
1. 安装插件
在 Dify 插件市场中搜索并安装 MCP-server。安装成功后可在插件列表中查看到。
![图片:插件安装后的列表界面]
2. 环境配置
为了让外部工具能够访问你的 Dify 实例,必须修改 .env 文件中的网络暴露配置。如果你使用的是官方 Docker 部署,请找到 docker/.env.example 进行参考。
我们需要关注两个关键变量:EXPOSE_PLUGIN_DEBUGGING_HOST 和 ENDPOINT_URL_TEMPLATE。默认情况下它们指向 localhost,这意味着只有本机可访问。若要对外提供服务,需将其替换为你的局域网 IP 或公网 IP。
配置示例
以下是修改前后的对比。注意,为了安全起见,生产环境请务必更换默认的 API 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=14.103.204.132
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://14.103.204.132/e/{hook_id}
提示:修改完成后,记得重启 Dify 容器使配置生效。如果是在公网环境,请确保防火墙已放行相应端口,并考虑使用 HTTPS 以保障通信安全。


