Dify接入MCP

半兽人 发表于: 2025-04-24   最后更新时间: 2025-12-02 13:59:44  
{{totalSubscript}} 订阅, 147 游览

SSE 是一种基于 HTTP 协议的、服务器向客户端单向推送事件的技术。你可以把它想象成一个“只听不说”的广播频道。当 Agent 需要调用一个 MCP 工具并等待可能持续一段时间的反馈时(比如复杂的计算或实时数据流),MCP Server 可以通过 SSE 通道,持续地将处理状态、中间结果或最终答案“推送”给 Agent,而不需要 Agent 反复去“询问”服务器“好了没有”。这种方式相比传统的轮询请求,效率更高,也更适合处理流式或异步的响应。

一、Dify安装插件

点击右上角插件,选择从Marketplace中安装,搜索mcp,找到MCP_SSE,点击安装。

Dify安装SSE

  • MCP SSE:一种可与一个或多个 MCP Server 通信的工具类型插件,用于在 Agent 类型应用中实现外部工具的“发现”与“调用”能力,采用 HTTP + Server-Sent Events (SSE) 传输机制。
  • MCP Agent Strategy:通过 Agent 策略将 MCP 协议直接整合进 Workflow 的 Agent 节点,使 Agent 能根据 MCP 协议逻辑自由调用外部工具,实现“AI 自主决策 + 动态调用工具”的能力。

授权

接下来连接上篇文章示例二:基于 SSE 的 HTTP Server,将其发布到Dify可以调通的环境中,并给插件授权

填入你自己的地址:

{
    "exchange": {
        "url": "http://xxx.xxx.xxx.xxx:3001/sse",
        "headers": {},
        "timeout": 60,
        "sse_read_timeout": 300
    }
}

二、Dify测试

1、新建一个空白应用

选择Agent类型。填写应用名称和描述。

2、Agent配置

添加MCP工具,选择“通过SSE发现和调用MCP工具”,把【获取MCP工具列表】和【调用MCP工具】都添加进去。

大模型选择了DeepSeek,提示词中最好明确提出调用MCP工具:

用mcp工具时,先获取mcp工具列表,再调用合适的mcp工具。

3、测试

输入:10000人民币换成美元是多少?

最终结果如下:

三、调用流程详解

在执行的过程中才可以看到整个的思考过程。

  1. 获取MCP工具列表(mcp_sse_list_tools):通过 HTTP with SSE 传输来获取 MCP 服务端的工具列表。

  2. 调用MCP工具(mcp_sse_call_tool):通过 HTTP with SSE 传输来调用 MCP服务端工具。

第一步就是执行获取工具列表,先去查看mcp中可用工具列表,找到合适的mcp服务后调用。

总结

设想一下:我们可以将高德地图、天气预报、票务查询、酒店预订等MCP服务灵活组合,轻松构建一个智能旅行助手;也可以将企业内部系统与外部数据源打通,打造敏捷高效的决策支持平台;甚至还能整合专业知识库和行业工具,构建面向医疗、法律、金融等领域的AI专家助手。

这正是一种全新的 “组合式开发(Composable Development)” 范式,像搭积木一样构建AI应用,显著降低开发门槛和成本,让每一个创意都有机会被快速实现。

更新于 2025-12-02

查看MCP更多相关的文章或提一个关于MCP的问题,也可以与我们一起分享文章