背景与动机
此前我们讨论过 MCP SSE 插件,它支持 Dify 平台调用外部的 MCP Server。但社区常有开发者询问反向场景:能否将 Dify 的工作流或 Chatflow 发布为 MCP Server,供外部工具调用?
答案是肯定的。通过安装 mcp-server 插件,我们可以把任何 Dify 应用转变成符合 MCP 标准的 Server Endpoint。该插件由 Dify 社区贡献,主要功能包括:
- 暴露为 MCP 工具:将 Dify 应用抽象为单一 MCP 工具,供 Cursor、Claude Desktop、Cline 等外部客户端调用。
- 利用 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。
修改 .env 配置
找到 .env 文件中对应的行,注意保持格式规范。以下是参考示例(请根据实际环境调整):
# 调试端口配置
PLUGIN_DEBUGGING_HOST=0.0.0.0
PLUGIN_DEBUGGING_PORT=5003
# 暴露给外部的调试主机地址(建议改为你的公网 IP 或内网 IP)
EXPOSE_PLUGIN_DEBUGGING_HOST=<你的公网 IP>
EXPOSE_PLUGIN_DEBUGGING_PORT=5003
# 内部 API Key 配置(若修改此值,plugin_daemon 中的对应密钥也需同步更新)
PLUGIN_DIFY_INNER_API_KEY=QaHbTe77CtuXmsfyhR7+vRjI/+XbV1AaFy691iy+kGDv2Jvy0/eAh8Y1
PLUGIN_DIFY_INNER_API_URL=http://api:5001
# 端点 URL 模板(将 localhost 替换为你的域名或 IP)
ENDPOINT_URL_TEMPLATE=http://<你的公网 IP>/e/{hook_id}
注意:生产环境中请务必使用强密码替换示例中的
PLUGIN_DIFY_INNER_API_KEY,并确保防火墙策略正确开放了相关端口。


