Dify开发与集成MCP服务完全指南
本文详细介绍了如何在Dify平台开发与集成MCP(Model Context Protocol)服务,构建智能AI应用。主要内容包括: Dify与MCP概述:Dify是开源LLM应用开发平台,支持多模型、低代码开发和RAG引擎;MCP是标准化LLM与外部工具交互的协议,解决数据孤岛问题。 开发流程: 环境准备(Dify 1.3.0+、Python 3.10+) 使用FastMCP框架开发MCP S
Dify开发与集成MCP服务完全指南
一、前言
在大语言模型(LLM)技术快速演进的今天,模型与外部工具的交互能力已成为构建实用AI应用的核心需求。Model Context Protocol(MCP) 作为连接LLM与外部数据源的标准化协议,正在逐步成为智能体开发的事实标准。而Dify作为开源的LLM应用开发平台,通过低代码/无代码的可视化编排能力,大幅降低了AI应用的构建门槛。本文将深入探讨如何在Dify中开发与集成MCP服务,从协议原理到实战部署,为开发者提供一套完整的技术方案。
二、Dify 介绍
2.1 Dify是什么
Dify是一款融合Backend-as-a-Service(BaaS) 与LLMOps理念的开源LLM应用开发平台,其核心定位是让开发者与非技术人员能够快速构建生产级的生成式AI应用。Dify一词源自"Define + Modify",寓意通过灵活定义与持续优化,实现AI应用的快速迭代。
官网:https://dify.ai
核心特性:
- 多模型支持:兼容GPT、Claude、Llama3等数百种专有/开源模型,支持自定义API接入
- 低代码开发:拖拽式工作流编排,无需编码即可构建复杂AI逻辑
- 企业级RAG引擎:支持PDF/PPT等20+文档格式的智能解析与向量存储,准确率达92%
- Agent框架:内置50+工具(如谷歌搜索、DALL·E),支持自定义工具扩展
- 全生命周期管理:从开发、测试、部署到监控的一站式控制台
截至2025年,Dify已服务超过18万开发者,支撑5.9万+终端用户的AI应用需求,广泛应用于智能客服、企业知识库、自动化工作流等场景。
2.2 MCP 介绍
2.2.1 什么是MCP
Model Context Protocol(MCP) 是由Anthropic提出的开放协议,旨在标准化LLM与外部工具、数据源的交互方式。其核心目标是解决三大痛点:
- 数据孤岛:打破LLM无法直接访问实时数据或本地资源的限制
- 开发低效:统一工具调用接口,避免为不同模型重复开发Function Calling
- 生态碎片化:建立类似"USB接口"的通用标准,实现工具即插即用
MCP协议定义了三大核心能力:
- Resources:静态资源(如配置文件、知识库片段)
- Prompts:提示词模板(供LLM理解工具用途)
- Tools:可执行工具(如文件操作、API调用)
2.2.2 MCP核心特性
特性 | 技术细节 | 优势 |
---|---|---|
标准化接口 | 基于JSON-RPC 2.0规范,支持HTTP+SSE与Streamable HTTP传输 | 跨平台兼容性,支持Claude/Cursor等客户端 |
工具自动发现 | 客户端可通过list_tools 方法动态获取服务端能力 |
无需硬编码工具定义,降低集成成本 |
安全会话管理 | 服务端生成会话ID,支持无状态模式与SSE加密连接 | 适合云原生部署,保障数据传输安全 |
流式响应 | 基于Server-Sent Events(SSE)实现实时数据推送 | 提升用户体验,支持大型结果分片返回 |
多语言支持 | 提供Python/TypeScript SDK,社区维护Java/Go实现 | 适配主流技术栈,降低开发门槛 |
2.3 Dify中开发与使用MCP介绍
2.3.1 MCP Server开发与使用
在Dify中开发MCP Server需完成以下步骤:
-
环境准备
- Dify版本≥1.3.0(推荐1.4.0+)
- 安装Docker与Docker Compose(用于部署Dify)
- Python 3.10+(用于本地MCP Server开发)
-
核心开发流程
# 基于FastMCP框架的MCP Server示例(来源:腾讯云开发者社区) from mcp.server.fastmcp import FastMCP import os mcp = FastMCP() @mcp.tool() def list_desktop_files() -> list: """获取当前用户桌面上的所有文件列表""" desktop_path = os.path.expanduser("~/Desktop") return os.listdir(desktop_path) if __name__ == "__main__": mcp.run(transport='streamable_http', host='0.0.0.0', port=9000)
-
Dify集成配置
在Dify控制台的插件管理中安装mcp-server
插件,配置应用ID与端点URL:{ "public-ip-mcp-server": { "transport": "streamable_http", "url": "http://your-dify-instance/difyapp_as_mcp_server", "timeout": 60 } }
2.4 Dify开发MCP Server优势
- 低代码快速集成:无需编写完整的MCP协议处理逻辑,通过插件即可将现有工作流转为MCP服务
- 多客户端兼容:支持Claude Desktop、Cursor、Cherry Studio等主流MCP客户端
- 安全可控:基于Dify的权限管理体系,可限制工具调用范围(如仅允许读取特定目录)
- 无缝衔接RAG:可直接调用Dify知识库中的企业数据,增强工具响应的专业性
- 生产级部署:支持Docker/K8s部署,内置负载均衡与会话管理,满足高并发需求
三、Dify开发与集成MCP操作过程
3.1 Dify MCP 插件说明
mcp-server
插件是Dify社区开发的核心扩展,其功能包括:
- 将Dify工作流暴露为MCP工具,支持JSON-RPC接口调用
- 自动处理协议握手、工具发现、执行结果返回全流程
- 兼容MCP最新Streamable HTTP规范(基于PR #206)
- 支持无状态服务器模式,适合云原生环境部署
3.2 安装mcp-server插件
步骤1:部署Dify环境
# 克隆Dify仓库
git clone https://github.com/langgenius/dify.git
cd dify/docker
# 配置环境变量(关键设置)
cp .env.example .env
vim .env # 设置FORCE_VERIFYING_SIGNATURE=false以允许第三方插件
# 启动服务
docker-compose up -d
步骤2:安装插件
- 访问Dify控制台(
http://your-server-ip
),进入插件市场 - 搜索
mcp-server
,选择版本≥0.0.6,点击安装 - 进入插件设置页,输入应用ID(需提前创建Dify应用)
3.3 创建新应用
3.3.1 工作流开始节点增加输入变量
- 进入DifyStudio,创建工作流应用
- 拖拽开始节点,添加输入参数:
- 名称:
user_query
- 类型:字符串
- 描述:用户查询内容(供LLM理解用途)
- 名称:
3.3.2 增加和配置大模型节点
- 添加LLM节点,选择模型(如GPT-4o-mini)
- 配置提示词模板:
你是MCP工具调用助手,需根据用户问题决定是否调用工具: - 若查询文件列表,调用list_desktop_files工具 - 其他问题直接回答 用户问题:{{user_query}}
- 启用工具调用功能,选择已配置的MCP服务
3.3.3 效果测试
在预览窗口输入测试指令:
- 测试1:
"列出我的桌面文件"
→ 应触发list_desktop_files
工具调用 - 测试2:
"今天天气如何"
→ 直接返回回答
3.4 mcp-server发布与使用
-
创建端点
在Dify应用设置中,进入API接入→MCP服务,生成端点URL:https://your-dify-instance/difyapp_as_mcp_server
-
客户端配置(以Cursor为例)
- 打开Cursor→设置→AI→MCP
- 添加服务器:
{ "dify_mcp": { "url": "https://your-dify-instance/difyapp_as_mcp_server", "transport": "streamable_http" } }
- 重启Cursor,通过指令
"使用Dify工具列出桌面文件"
测试调用
3.5 配置MCP 发现工具
在Dify插件设置中,配置MCP服务发现参数:
{
"mysql8-mcp-server": {
"transport": "streamable_http",
"url": "http://mysql8-mcp-server-svc.mcp:9000/mcp/",
"headers": {},
"timeout": 60
},
"searxng-mcp-server": {
"transport": "streamable_http",
"url": "http://searxng-mcp-server-svc.mcp:9000/mcp/",
"timeout": 60
}
}
配置项说明:
transport
支持streamable_http
(推荐)或sse
,timeout
建议设置为30-60秒
3.6 创建智能体应用
3.6.1 创建智能体
进入DifyStudio→创建应用→选择智能体(Agent),命名为"多功能工具助手"
3.6.2 配置提示词
你是企业级智能助手,可调用以下MCP工具:
- mysql8-mcp-server:查询数据库(学生/教师/成绩数据)
- searxng-mcp-server:联网搜索
回答规则:
1. 必须使用工具返回结果,不可虚构信息
2. 数据库查询结果需脱敏(隐藏手机号/身份证号)
3.6.3 引用mcp服务发现工具
在智能体工具配置中,勾选MCP服务发现,选择3.5节配置的MCP服务
3.6.4 效果测试
- 测试1:
"查询高二(3)班数学平均分"
→ 应调用mysql8-mcp-server
- 测试2:
"2025年AI领域最新进展"
→ 应调用searxng-mcp-server
四、客户端集成使用Dify MCP服务
4.1 魔塔平台集成MCP
魔塔平台作为企业级AI中枢,集成Dify MCP服务步骤如下:
- 进入魔塔应用市场,搜索
MCP客户端
插件并安装 - 配置MCP服务器:
- 名称:
Dify-MCP
- URL:
https://your-dify-instance/difyapp_as_mcp_server
- 认证方式:API Key(从Dify个人设置→API密钥获取)
- 名称:
- 在工作流中添加MCP工具节点,选择需调用的Dify工具(如
list_desktop_files
)
4.2 VSCode集成MCP服务
以Cursor(VSCode AI插件)为例:
- 安装Cursor插件:
Cursor - AI Code Editor
- 打开设置(
Ctrl+,
)→ 搜索MCP
→添加服务器 - 输入配置:
{ "name": "Dify Workflow", "url": "https://your-dify-instance/difyapp_as_mcp_server", "transport": "streamable_http", "headers": { "Authorization": "Bearer sk-xxxxxx" // Dify API密钥 } }
- 在编辑器中输入指令:
"用Dify工具分析当前项目依赖冲突"
,测试调用
五、总结
Dify与MCP的结合,为LLM应用开发提供了"低代码构建-标准化集成-多端复用"的完整解决方案。通过本文介绍的方法,开发者可快速将企业内部系统、本地工具转化为LLM可调用的能力,显著降低AI应用的落地门槛。
未来,随着MCP协议的持续演进与Dify插件生态的完善,我们期待看到更多创新场景:如物联网设备控制、工业软件集成、跨平台智能体协作等。建议开发者关注Dify GitHub仓库(langgenius/dify)与MCP协议规范(modelcontextprotocol/spec),及时获取更新。
更多推荐
所有评论(0)