前言
之前我们介绍过 MCP SSE 插件,支持 Dify 平台调用外部 MCP Server。有开发者提出疑问:既然 Dify 能调用外部服务,那 Dify 的工作流或 Chatflow 能否反向发布为 MCP Server,供其他客户端使用?
今天我们来聊聊 Dify 社区贡献的 mcp-server 插件。安装后,你可以把任何 Dify 应用转变成符合 MCP 标准的 Server Endpoint,让外部工具直接访问。
它的主要能力包括:
- 暴露为 MCP 工具:将 Dify 应用抽象为单一 MCP 工具,供 Cursor、Claude Desktop、Cline 等客户端调用。
- 利用 Dify Endpoint 功能:创建应用 Endpoint 后获得唯一 URL,外部客户端可直接连接。
- 提供 MCP 服务:插件在 Dify 环境中自动启动 HTTP 服务,基于 HTTP 和 SSE 协议处理握手、发现及调用。
环境变量配置
要让这个插件对外提供服务,必须确保网络可达。我们需要修改 Dify 的 .env 文件,将本地回环地址替换为你的局域网或公网 IP。
参考官方示例文件 docker/.env.example,找到以下配置项:
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=QaHbTe77CtuXmsfyhR7+vRjI/+XbV1AaFy691iy+kGDv2Jvy0/eAh8Y1
PLUGIN_DIFY_INNER_API_URL=http://api:5001
ENDPOINT_URL_TEMPLATE=http://localhost/e/{hook_id}
重点修改 EXPOSE_PLUGIN_DEBUGGING_HOST 和 ENDPOINT_URL_TEMPLATE 中的 localhost。假设你的公网 IP 是 YOUR_PUBLIC_IP,修改如下:
EXPOSE_PLUGIN_DEBUGGING_HOST=YOUR_PUBLIC_IP
...
ENDPOINT_URL_TEMPLATE=http://YOUR_PUBLIC_IP/e/{hook_id}
修改完成后记得重启 Dify 容器。
Chatflow 配置示例
配置好环境后,进入 Dify 工作台 - 插件 - MCP Server 界面。点击右上角 + 号添加配置。
需要填写的关键信息:
- 端点名称:自定义标识。
- App:选择要发布的 Dify 应用。
- App Type:应用类型(Chat 或 Workflow)。
- App Input Schema:定义输入参数的 JSON 格式。
这里以之前的 PPT 生成 Chatflow 为例。在 App Input Schema 中,核心在于 properties 和 required 字段,它们对应工作流的输入参数。
{
"name": "pptchatflow",
"description"


