前言
在之前的探索中,我们了解了 MCP SSE 插件如何支持 Dify 调用第三方平台的 MCP Server。但反过来,如果希望将 Dify 的工作流或 Chatflow 发布为标准的 MCP Server,供外部客户端(如 Cursor、Claude Desktop 等)直接调用,该如何实现?
今天介绍一款社区贡献的 Extension 类型插件——mcp-server。它能让 Dify 应用变身符合 MCP 标准的服务端点,对外暴露工具能力。
核心功能包括:
- 暴露为 MCP 工具:将 Dify 应用抽象为单一 MCP 工具,供外部客户端调用。
- 利用 Dify Endpoint 功能:创建应用 Endpoint 后获得唯一 URL,外部客户端可直接连接。
- 提供 MCP 服务:插件自动启动 HTTP 服务,基于 HTTP 和 SSE 协议处理握手、发现及调用。
安装与配置
在插件市场搜索并安装 mcp-server。安装成功后,可在插件列表中查看到该工具。

环境变量配置
由于该服务需要对外提供访问,我们需要修改 Dify 的 .env 文件,确保监听地址正确。如果是本地调试,默认配置通常指向 localhost,但这会导致外部无法访问。
参考官方示例文件 docker/.env.example,找到以下关键配置项:
PLUGIN_DEBUGGING_HOST=0.0.0.0
PLUGIN_DEBUGGING_PORT=5003
EXPOSE_PLUGIN_DEBUGGING_HOST=localhost
EXPOSE_PLUGIN_DEBUGGING_PORT=5003
# 如果修改此密钥,必须同步更新 plugin_daemon 服务中的 DIFY_INNER_API_KEY
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(局域网或公网)。例如,如果你的公网 IP 是 14.103.204.132,修改如下:
EXPOSE_PLUGIN_DEBUGGING_HOST=14.103.204.132
ENDPOINT_URL_TEMPLATE=http://14.103.204.132/e/{hook_id}
注意:修改完成后记得重启 Dify 容器使配置生效。这样外部 MCP 客户端就能通过该 URL 连接到你的 Dify 工作流了。


