前言
之前介绍过 MCP SSE 插件,支持 Dify 调用第三方平台的 MCP Server。但反过来呢?Dify 的工作流或 Chatflow 能否也发布为 MCP Server,供其他支持 MCP Client 的工具使用?答案是肯定的。
我们引入一个社区贡献的 Extension 类型插件——mcp-server。它能将任何 Dify 应用转变成符合 MCP 标准的 Server Endpoint,供外部 MCP 客户端(如 Cursor、Claude Desktop、Cline 等)直接访问。
核心功能包括:
- 暴露为 MCP 工具:将 Dify 应用抽象为单一 MCP 工具,供外部客户端调用。
- 利用 Dify Endpoint 功能:创建应用 Endpoint 后获得唯一 URL,外部客户端可直接连接。
- 提供 MCP 服务:插件在 Dify 环境中自动启动 HTTP 服务,基于 HTTP 和 SSE 协议处理握手、能力发现及工具调用。
安装与配置
在 Dify 插件市场中搜索并安装 mcp-server。安装完成后,在插件列表中即可看到它。

环境变量配置
既然这个工具是对外提供服务的,我们需要确保它在互联网或局域网中可被访问。这需要修改 Dify 的 .env 文件。
你可以参考官方示例文件来定位需要修改的配置项: https://github.com/langgenius/dify/blob/main/docker/.env.example
找到第 1001 行附近的配置,主要涉及以下两个变量:
EXPOSE_PLUGIN_DEBUGGING_HOSTENDPOINT_URL_TEMPLATE
默认情况下,它们通常指向 localhost。为了允许外部访问,需要将 localhost 替换为你的局域网 IP 或公网 IP。
原始配置示例:
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=<你的密钥>
PLUGIN_DIFY_INNER_API_URL=http://api:5001
ENDPOINT_URL_TEMPLATE=http://localhost/e/{hook_id}
修改后配置示例:
假设你的公网地址是 14.103.204.132,则需将上述配置中的 localhost 替换为该 IP:
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=<你的密钥>
PLUGIN_DIFY_INNER_API_URL=http://api:5001
ENDPOINT_URL_TEMPLATE=http://14.103.204.132/e/{hook_id}
注意:修改 .env 文件后,记得重启 Dify 容器以使配置生效。这样,你的 Dify 工作流就能作为一个标准的 MCP Server 被外部调用了。


