1. 前言
之前我们介绍过 MCP SSE 插件,支持 Dify 平台调用第三方平台的 MCP Server。有用户提问:Dify 的工作流或 Chatflow 是否也能发布为 MCP Server,供其他支持 MCP Client 的工具使用?本文将介绍一款 Dify 插件——mcp-server,它可以将 Dify 的工作流或 Chatflow 发布为 MCP Server,供第三方工具调用。
该插件名为 MCP Server,可在 Dify 插件市场找到。它是一个由 Dify 社区贡献的 Extension 类型插件。安装后,你可以把任何 Dify 应用转变成符合 MCP 标准的 Server Endpoint,供外部 MCP 客户端直接访问。其主要功能包括:
- 暴露为 MCP 工具:将 Dify 应用抽象为单一 MCP 工具,供外部 MCP 客户端(如 Cursor、Claude Desktop、Cline、Windsurf 等)调用。
- 利用 Dify Endpoint 功能:用户创建应用 Endpoint 后,将获得唯一的 URL,外部 MCP 客户端可直接通过该 URL 连接。
- 提供 MCP 服务:插件在 Dify 插件环境中自动启动 HTTP 服务,基于 HTTP 和 SSE 协议,高效处理外部 MCP 客户端请求,包括协议握手、能力发现以及工具调用。
2. 如何使用
在插件市场中安装好该插件。安装完成后,可在插件列表中查找到。
环境变量配置
接下来需要配置 MCP Server。由于该工具是对外提供服务的,需要在互联网或局域网实现访问,因此需要修改 Dify 的 .env 文件配置。
参考官方示例文件 docker/.env.example,搜索以下配置项:
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 也必须相应更新,否则 agent 节点会失败
PLUGIN_DIFY_INNER_API_KEY=<your_key>
PLUGIN_DIFY_INNER_API_URL=http://api:5001
ENDPOINT_URL_TEMPLATE=http://localhost/e/{hook_id}
修改后配置示例(请将 <your_public_ip> 替换为实际 IP):
PLUGIN_DEBUGGING_HOST=0.0.0.0
PLUGIN_DEBUGGING_PORT=5003
EXPOSE_PLUGIN_DEBUGGING_HOST=<your_public_ip>
EXPOSE_PLUGIN_DEBUGGING_PORT=5003
PLUGIN_DIFY_INNER_API_KEY=<your_key>
PLUGIN_DIFY_INNER_API_URL=http://api:5001
ENDPOINT_URL_TEMPLATE=http://<your_public_ip>/e/{hook_id}
修改完成后,重启 Dify 服务使配置生效。此时,你的 Dify 应用已具备作为 MCP Server 被外部调用的能力。
3. 测试验证
配置生效后,可以使用支持 MCP 协议的客户端(如 Cursor 或本地编写的 MCP Client)尝试连接配置的 Endpoint URL。确保防火墙允许对应端口的入站流量,并检查 Dify 日志确认连接状态正常。


