Dify MCP支持详解:3步让AI Agent连接外部工具的完整指南
【免费下载链接】difyBuild Agentic workflows, RAG pipelines, with rich AI model and tool support on one collaborative workspace. Deploy on cloud, VPC, or self-hosted, so teams move from prototype to production without rebuilding the stack.项目地址: https://gitcode.com/GitHub_Trending/di/dify
Dify 是一个开源的 AI 应用开发平台,其MCP(Model Context Protocol,模型上下文协议)支持是连接 AI Agent 与外部工具的核心能力。通过 Dify MCP 支持,你可以用 3 步让 Dify 中的 AI Agent、Chatflow 或 Workflow 应用直接调用外部工具与数据源,也能反向把你的 Dify 应用发布为标准 MCP Server,供 Claude 等外部客户端调用。
什么是 Dify MCP 支持?一文看懂
MCP 由 Anthropic 提出,是一种让大模型应用安全调用外部工具的统一协议。Dify 对 MCP 做了双向支持:
| 方向 | 能力 | 说明 |
|---|---|---|
| 📥 消费端 | 把外部 MCP Server 加为工具 | Dify 作为 MCP 客户端,自动拉取远端工具列表供 AI 调用 |
| 📤 服务端 | 把 Dify 应用发布为 MCP Server | 外部客户端通过标准 MCP 协议调用你的 Dify 应用 |
Dify 的 MCP 客户端同时支持SSE 和 Streamable HTTP两种传输方式,并能根据服务器 URL 自动识别、自动回退(详见 mcp_client.py)。这意味着无论是社区里常见的sse端点还是新版mcp端点,基本都能"粘贴 URL 即用"。
第1步:如何添加外部 MCP Server(工具)
这是 Dify MCP 教程中最常用的一步——把远端 MCP 服务接入你的工作空间:
- 进入目标应用的编排界面,打开工具(Tools)面板;
- 点击添加工具 → MCP,选择自定义 MCP 服务;
- 粘贴你的 MCP Server 地址(如
http://your-mcp-server:port/sse或/mcp端点); - 如需鉴权,可在请求头(Headers)中配置 API Key 等参数,Dify 还支持在请求头中引用入站请求头(
{{request.headers.xxx}}占位符),方便透传调用方身份; - 点击连接,Dify 会自动执行
list_tools,把远端工具列表和参数 Schema 全部拉取进来。
💡 提示:连接超时、SSE 读取超时都可以在添加时单独配置,方便对接响应较慢的远端服务。
MCP 工具在内部会被转换为与插件工具一致的结构,远端工具的inputSchema会自动映射为 Dify 的工具参数,AI 即可按标准工具调用流程使用它(转换逻辑见 provider.py)。
第2步:如何在 AI Agent 应用中使用 MCP 工具
接入完成后,让 AI 用起来只需简单拖拽:
- Agent / Agent(策略)模式:在 Agent 的工具列表中勾选刚才添加的 MCP 工具,AI 会在对话中根据用户意图自主决定调用哪个工具、传什么参数;
- Workflow / Chatflow 模式:把 MCP 工具作为工具节点拖入画布,在参数中引用上游变量(如用户输入、LLM 输出),实现确定性的编排逻辑;
- 凭据与身份:MCP 提供方支持身份模式(Identity Mode)配置,可将调用者身份透传给远端服务。
在 Agent 模式下,建议给工具补充清晰的中文/英文描述,有助于大模型更准确地选择工具——这些描述正是 MCP 服务端返回的description字段,由 Dify 自动带入(数据模型见 entities 相关定义)。
第3步:如何把 Dify 应用发布为 MCP Server
Dify 的另一项 MCP 能力:把你搭建好的 Dify 应用(含工作流)一键发布成标准 MCP Server,让 Claude Desktop、其他 Agent 平台等外部客户端直接调用。
核心流程:
- 在应用设置中打开MCP Server开关,填写名称与描述,系统会生成一个唯一的
server_code; - 配置用户输入表单——把应用的输入变量映射为外部客户端可调用的参数;
- 获得形如
/mcp/server/{server_code}/mcp的访问端点,交给外部客户端即可。
服务端由 Dify 的 MCP Server 模块实现,基于Streamable HTTP传输并遵循 JSON-RPC 2.0 规范,支持协议版本协商(MCP-Protocol-Version头)、会话管理与调用鉴权(实现见 mcp.py 与 streamable_http.py)。每个已发布的 MCP Server 都会以AppMCPServer记录持久化,并支持 normal/disabled 状态管理(模型定义见 model.py,管理接口见 mcp_server.py)。
Dify MCP 常见问题(FAQ)
Q1:SSE 和 Streamable HTTP 有什么区别?SSE 是 MCP 的早期传输方式;Streamable HTTP 是新版标准,基于普通 HTTP 请求/响应,更简单稳定。Dify 会自动尝试 SSE,失败后回退到 Streamable HTTP,一般无需手动选择。
Q2:MCP Server 需要鉴权怎么办?在添加 MCP 工具时通过自定义请求头(Headers)传入Authorization等凭证即可;Dify 也支持用占位符引用入站请求头做动态透传。
Q3:发布为 MCP Server 后,外部调用需要认证吗?Dify 会校验 MCP Server 的状态与归属应用,访问受应用级权限控制,适合在企业内网或带网关的环境中对外暴露能力。
总结:3 步掌握 Dify MCP 工作流
| 步骤 | 操作 | 效果 |
|---|---|---|
| 第1步 | 粘贴 MCP Server URL,添加为工具 | AI 自动获得外部工具调用能力 |
| 第2步 | 在 Agent / 工作流中启用该工具 | 对话中自主调用,或节点化编排 |
| 第3步 | 开启应用的 MCP Server 功能 | 外部客户端可反向调用你的 AI 应用 |
借助这套双向 MCP 能力,团队可以在同一个协作空间中,把 AI 应用既作为工具消费方扩展能力,又作为能力提供方对外输出,从原型到生产无需重建技术栈。更多细节可参考仓库中的 API 架构指南 与 README。
【免费下载链接】difyBuild Agentic workflows, RAG pipelines, with rich AI model and tool support on one collaborative workspace. Deploy on cloud, VPC, or self-hosted, so teams move from prototype to production without rebuilding the stack.项目地址: https://gitcode.com/GitHub_Trending/di/dify
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考