介绍
Dify能够 通过MCP SSE插件调用其他平台的MCP-server,Dify的工作流或Chatflow是否也能发布为MCP-server,供其他支持MCP client的工具使用呢?今天,为大家介绍一款Dify插件——mcp-server,它能够实现这一功能,即将Dify的工作流或Chatflow发布为MCP-server,供其他第三方工具调用。插件名字叫做MCP-server,我们在dify插件市场可以找到这个工具
Mcp-server 是一个由 Dify 社区贡献的 Extension 类型插件。安装后,你可以把任何 Dify 应用转变成符合 MCP 标准的 Server Endpoint,供外部 MCP 客户端直接访问。它的主要功能包括:
**暴露为 MCP 工具:**将 Dify 应用抽象为单一 MCP 工具,供外部 MCP 客户端(如 Cursor、Claude Desktop、Cline,Windsurf、Dify 等)调用。
**利用 Dify Endpoint 功能:**用户创建应用 Endpoint 后,将获得唯一的 URL,外部 MCP 客户端可直接通过该 URL 连接。
**提供 MCP 服务:**插件在 Dify 插件环境中自动启动 HTTP 服务,基于 HTTP 和 SSE 协议,高效处理外部 MCP 客户端请求,包括协议握手、能力发现以及工具调用。
使用
+ .env配置endpoint地址首先你需要在dify的安装路径下进入docker再进入 .env
文件 1001 行找到如下配置
:::info
PLUGIN_DEBUGGING_HOST=0.0.0.0
PLUGIN_DEBUGGING_PORT=5003
EXPOSE_PLUGIN_DEBUGGING_HOST=你的地址
EXPOSE_PLUGIN_DEBUGGING_PORT=5003
# If this key is changed, DIFY_INNER_API_KEY in plugin_daemon service must also be updated or agent node will fail.
PLUGIN_DIFY_INNER_API_KEY=QaHbTe77CtuXmsfyhR7+vRjI/+XbV1AaFy691iy+kGDv2Jvy0/eAh8Y1
PLUGIN_DIFY_INNER_API_URL=http://api:5001
ENDPOINT_URL_TEMPLATE=http://你的地址/e/{hook_id}
:::
我们需要把 EXPOSE_PLUGIN_DEBUGGING_HOST 、ENDPOINT_URL_TEMPLATE 这2个地方的localhost 换成你的局域网IP或者公网IP。如172.16.xx.xx:8000
修改之后,记得重启dify
命令:
:::info
docker compose -p dify down
docker compose -p dify up
:::
- mcp-server配置
在插件中找到mcp-server,配置如下
输入参数内容如下:
properties:列出应用接收的所有参数及其类型。本示例的参数只有一个,author。
description:用于向 MCP Client 说明此应用的主要功能,帮助系统在需要时自动发现并调用。
required:声明调用应用时必须提供的参数。对于聊天类应用(Agent / Chatflow),参数是通常是必需的。
这块大家可以拷贝,根据自己的实际情况进行替换。
主要是name、description、title、properties中的参数名称、required后面的值。
{
"name": "poem",
"description": "模仿输入的作者风格写诗歌",
"inputSchema": {
"title": "poem",
"type": "object",
"properties": {
"author": {
"title": "author",
"description": "作者",
"type": "string"
}
},
"required": ["author"]
}
}
保存配置后将会自动生成Endpoint URL。我们后续用到的是GET后面的URL地址。
sse和mcp两个get请求都可以,看你要使用哪种方式,这里以sse为例子
上述地址get 请求地址在浏览器上输入验证一下,确保客户端网络能够访问这个MCP-server