将你的Dify应用转为MCP服务器

该文章已生成可运行项目,

0 前言

上文介绍咋用 MCP 插件让 Dify 充当客户端 ,并利用外部 MCP 服务器工具如 Zapier 的 7,000 多个集成。得益Dify模块化设计和灵活插件系统,它不仅限于客户端。Dify 还可轻松用作 MCP 服务器,让你与其他兼容系统共享你构建的 AI 应用程序,以实现更广泛用途。

1 MCP 服务器插件:将 Dify 连接到 MCP 客户端

mcp-server 插件由 Dify 社区贡献,是一款扩展类型的插件。安装后,可将任何 Dify 应用转换为兼容 MCP 的服务器端点,供外部 MCP 客户端直接访问。功能如下:

  • 将 Dify 作为 MCP 工具暴露:将你的 Dify 应用程序转变为单个 MCP 工具,Cursor、Claude Desktop、Cline、Windsurf 甚至其他 Dify 实例等客户端都可调用
  • 利用 Dify Endpoint :创建应用程序端点后,将获得 MCP 客户端可以用来连接的唯一 URL。
  • 运行 MCP 服务:该插件会自动在 Dify 的插件环境中启动 HTTP 服务,通过 HTTP 和 SSE 协议处理来自 MCP 客户端的请求。这涵盖了从协议握手到功能发现以及工具执行的所有内容。

2 将 Dify 应用设置为 MCP 服务器

2.1 安装插件

前往 Dify 市场,下载并安装 mcp-server 插件。

2.2 选择你的 Dify 应用

“深度研究”应用为例。该应用程序接收用户的问题,用 Tavily 插件多轮搜索(搜索次数由深度参数设置),再用 LLM 将结果汇编成研究报告。

2.3 配置 MCP 服务器端点

在 mcp-server 插件的设置中填写:

  • Endpoint名称:命名你的端点。
  • 应用程序:选择你想要发布为 MCP 服务器的 Dify 应用程序。
  • 应用程序类型:选择它是Chat应用还是Workflow应用
  • 应用程序输入模式:以 JSON 定义应用程序的输入参数,以帮助外部系统了解如何与其交互

deep_research应用的示例JSON
{
  "name": "deep_research",
  "description": "Conduct in-depth research based on the user query.",
  "inputSchema": {
    "title": "deep_researchArguments",
    "type": "object",
    "properties": {
      "query": {
        "title": "User Query",
        "description": "The user's main question or topic for research.",
        "type": "string"
      },
      "depth": {
        "title": "Search Depth",
        "description": "Optional: Specifies the desired depth of the research.",
        "type": "number"
      }
    },
    "required": ["query"]
  }
}

Schema breakdown: 架构细分:

  • properties属性:列出应用程序接受的所有参数及其类型。
  • description描述:向 MCP 客户解释应用程序的主要功能,帮助他们发现和使用它。
  • requiredrequired:指定必须具备的参数。对于基于聊天的应用程序(Agent/Chatflow),查询通常是必需的。

2.4 获取你的端点 URL

保存配置后:

插件会生成一个唯一的 Endpoint URL(即您的 MCP 服务器地址)。此 URL 支持 HTTP 和 SSE 协议,方便 MCP 客户端连接和交互。

2.5 将 Dify MCP 服务器添加到cursor

现可将 Dify MCP 服务器添加到任何兼容 MCP 的客户端。

如 Cursor IDE 中,使用类似以下内容更新 MCP 服务器设置(替换为你的实际 Endpoint URL):

配置 json:

{
  "mcpServers": {
    "dify_deep_research": {
      "url": "http://localhost/e/gq3q0h9r0zde2269/sse"
    }
  }
}

设置完成后,即可

使用

Cursor 在Agent模式用深度研究工具,对 Dify 插件类型进行多步骤研究,从而获得更深入的洞察,从而提高编码效率和质量。

3 更多使用方法

除了开发工具,Dify MCP 服务器还适合将 AI 嵌入到内部工作流。如自动分类客户请求、汇总报告或从文档中提取关键信息等任务,都内置于 Dify 工作流,并通过插件作为 MCP 服务共享。

与 REST API 不同,MCP 专为 AI 场景量身定制,让 AI 代理能更轻松发现并动态调用工具。代理可以自行了解如何使用 Dify 服务,无需硬编码或手动设置,从而保持灵活高效。

为安全,建议仅在私有网络环境运行 MCP 服务器插件。

4 总结

借助社区 MCP 服务器插件,可轻松将 Dify 应用转换为符合 MCP 标准的服务,供外部系统使用,提高复用率和集成度。Dify还在努力为 Dify 提供原生的 MCP 支持。未来的更新将允许您连接到外部 MCP 服务器,并一键将 Dify 应用发布为 MCP 服务器,从而更轻松地将 AI 融入各种场景。

本文章已经生成可运行项目
### 在 Dify 中使用 MCP 的方法 在 Dify 中使用 MCP(Multi-Chain Protocol)框架或功能,主要涉及以下几个方面的内容: #### 1. 环境准备 为了能够顺利部署和使用 MCP Server,用户需要具备以下条件[^1]: - **英语阅读能力**:由于大部分技术文档为英文,建议熟悉相关术语。 - **Docker 部署与运维能力**:MCP Server 的部署依赖于 Docker 技术,因此需要掌握 Docker 的基本操作。 #### 2. 部署 MCP Server MCP Server 的部署可以通过 Docker 完成。以下是部署的基本步骤(以代码形式展示): ```bash # 拉取最新的 MCP Server 镜像 docker pull mcp/server:latest # 启动容器 docker run -d --name mcp-server -p 8000:8000 mcp/server:latest ``` 上述命令会将 MCP Server 运行在一个名为 `mcp-server` 的容器中,并将其端口映射到主机的 `8000` 端口上。 #### 3. 配置 MCP Server 在 Dify 中使用 MCP,需要对 MCP Server 进行配置。配置文件通常是一个 JSON 格式的文件,包含多个服务器的信息。例如: ```json { "server_name1": { "url": "http://127.0.0.1:8000/sse", "headers": {}, "timeout": 60, "sse_read_timeout": 300 }, "server_name2": { "url": "http://127.0.0.1:8001/sse" } } ``` 该配置文件定义了两个服务器实例,分别监听不同的 URL 地址[^3]。 #### 4. 在 Dify 中调用 MCP 在之前的实现中,MCP Server 的调用仅限于本地环境,无法分享给他人或集成到构建的 Agent 中[^2]。然而,在 Dify 中,可以通过以下方式实现更广泛的调用: - **API 调用**:通过 HTTP 请求直接访问 MCP Server 的接口。 - **集成到 Agent**:将 MCP Server 的功能嵌入到智能体(Agent)中,从而实现跨平台调用。 以下是一个简单的 Python 示例,展示如何通过 API 调用 MCP Server: ```python import requests def call_mcp_server(server_name, data): config = { "server_name1": {"url": "http://127.0.0.1:8000/sse", "headers": {}, "timeout": 60}, "server_name2": {"url": "http://127.0.0.1:8001/sse"} } server_config = config.get(server_name) if not server_config: raise ValueError("Invalid server name") response = requests.post(server_config["url"], json=data, headers=server_config["headers"], timeout=server_config["timeout"]) return response.json() # 示例调用 response_data = call_mcp_server("server_name1", {"key": "value"}) print(response_data) ``` ### 注意事项 - 确保 MCP Server 已正确启动并运行。 - 如果需要扩展功能,可以参考官方文档或社区资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值