前言
之前我们介绍过 MCP SSE 插件,它支持 Dify 调用第三方平台的 MCP-server。不少朋友问:既然 Dify 能调用别人的服务,那我们的工作流能不能也发布成 MCP-server,让外部工具来调用呢?
答案是肯定的。今天我们就聊聊 Dify 社区的一个 Extension 类型插件——mcp-server。安装后,你可以把任何 Dify 应用转变成符合 MCP 标准的 Server Endpoint,供 Cursor、Claude Desktop 等外部客户端直接访问。

这个插件主要做三件事:
- 暴露为 MCP 工具:将 Dify 应用抽象为单一 MCP 工具,供外部 MCP 客户端调用。
- 利用 Dify Endpoint 功能:创建应用 Endpoint 后获得唯一 URL,外部客户端可直接连接。
- 提供 MCP 服务:插件在 Dify 环境中自动启动 HTTP 服务,基于 HTTP 和 SSE 协议处理握手、能力发现及工具调用。
部署与配置
先在插件市场安装好 mcp-server,安装成功后在列表中就能找到它。

修改环境变量
既然是对外提供服务,就得确保局域网或公网能访问。我们需要修改 Dify 的 .env 文件。
参考官方示例文件(GitHub 上的 docker/.env.example),重点调整以下两项:
EXPOSE_PLUGIN_DEBUGGING_HOSTENDPOINT_URL_TEMPLATE
默认情况下它们指向 localhost,我们需要将其替换为你的实际 IP(内网或公网均可)。
打开 .env 文件,搜索相关配置项。原配置可能长这样:
PLUGIN_DEBUGGING_HOST=0.0.0.0
PLUGIN_DEBUGGING_PORT=5003
EXPOSE_PLUGIN_DEBUGGING_HOST=localhost
EXPOSE_PLUGIN_DEBUGGING_PORT=5003
# 如果修改了此 key,必须同步更新 plugin_daemon 中的 PLUGIN_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}
修改时,把 localhost 换成你的 IP 地址。比如我的公网地址是 14.103.204.132,修改后的配置如下:
EXPOSE_PLUGIN_DEBUGGING_HOST=14.103.204.132
ENDPOINT_URL_TEMPLATE=http://14.103.204.132/e/{hook_id}
注意,PLUGIN_DEBUGGING_HOST 建议保持 0.0.0.0 以允许所有网卡访问,但暴露给外部的 EXPOSE_... 参数一定要填对 IP,否则外部客户端连不上。


