目录
一、前言
MCP ,即模型上下文协议(Model Context Protocol, MCP),由 Anthropic 公司(Claude 大模型母公司)在 2024 年 11 月推出的开放协议,旨在标准化大型语言模型与外部数据源和工具之间的交互方式。MCP 被形象地比喻为 AI 领域的"USB-C 接口",因为它提供了连接各类服务的统一框架。从而增强模型的实时交互和任务执行能力。Dify提供了一套完整的工具链,支持从提示词工程(Prompt Engineering)到应用发布的全流程,而且基于Dify平台,应用开发者可以定制化自己的企业MCP服务,通过暴露Endpoint之后,应用中就可以方便的进行集成使用,从而大大减少开发MCP的过程,本篇将详细结束如何基于Dify开发MCP服务并集成使用。
二、Dify 介绍
2.1 Dify是什么
Dify 是一个开源的大模型应用开发平台,旨在帮助开发者快速构建、部署和管理基于大型语言模型(LLM)的 AI 应用。它提供了一套完整的工具链,支持从提示词工程(Prompt Engineering)到应用发布的全流程,适用于企业级 AI 解决方案和个人开发者项目。
官网入口:Dify: Production-Ready AI Agent Builder
中文站入口:Dify:企业级 AI Agent 开发平台
2.2 MCP 介绍
2.2.1 什么是MCP
MCP ,即模型上下文协议(Model Context Protocol, MCP),由 Anthropic 公司(Claude 大模型母公司)在 2024 年 11 月推出的开放协议,旨在标准化大型语言模型与外部数据源和工具之间的交互方式。MCP 被形象地比喻为 AI 领域的"USB-C 接口",因为它提供了连接各类服务的统一框架。从而增强模型的实时交互和任务执行能力。
2.2.2 MCP核心特性
MCP 具备如下核心特点:
-
标准化集成
-
MCP统一了不同AI模型(如Claude、GPT等)与外部工具(如数据库、API、浏览器等)的交互方式,避免了传统定制化API开发的重复劳动
-
-
双向通信
-
不同于传统AI只能被动接收数据,MCP支持AI主动检索信息并执行操作(如更新数据库、触发工作流),实现真正的“代理式AI”
-
-
动态上下文管理
-
MCP允许AI在会话中持续携带上下文信息(如用户偏好、历史记录),使多步骤任务(如“查询天气→推荐行程→预订酒店”)能自动串联执行
-
-
安全与灵活性
-
MCP支持本地或云端部署,通过OAuth 2.1认证和数据沙箱机制保障敏感信息的安全访问
-
2.3 Dify中开发与使用MCP介绍
在 Dify 中,对于MCP可以分MCP Server的开发和MCP服务的集成两部分,这两种分别对应到实际应用中两种不同的使用场景。
2.3.1 MCP Server开发与使用
mcp-server 插件由 Dify 社区贡献,是一款扩展类型的插件,在dify的插件市场中通过mcp关键字可以搜到。
安装该插件后,可将任何 Dify 应用转换为兼容 MCP 的服务器端点,供外部 MCP 客户端直接访问。在实际业务中,其完整的开发使用流程如下:
- 将 Dify 作为 MCP 工具暴露:
- 将你的 Dify 应用程序转变为单个 MCP 工具,Cursor、Claude Desktop、Cline、Windsurf 甚至其他 Dify 实例等客户端都可调用
- 利用 Dify Endpoint :
- 创建应用程序端点后,将获得 MCP 客户端可以用来连接的唯一 URL。
- 运行 MCP 服务:
- 该插件会自动在 Dify 的插件环境中启动 HTTP 服务,通过 HTTP 和 SSE 协议处理来自 MCP 客户端的请求。这涵盖了从协议握手到功能发现以及工具执行的所有内容。
- 应用集成:
- 比如在其他的客户端工具,像魔搭、Cursor、VSCode等就可以直接访问该端点进行使用,或者在程序中集成使用。
2.4 dify 开发MCP Server优势
在 Dify 平台上开发 MCP(Model Context Protocol)Server 具有显著优势,特别是在构建灵活、可扩展的 AI 智能体应用方面。以下是其主要优势:
1)标准化接口,提升开发效率
-
统一交互协议:MCP 提供标准化的客户端-服务器通信协议,使得 Dify 可以无缝集成各类外部工具(如数据库、API、文件系统等),无需为每个工具单独适配接口。
-
拖拽式编排:Dify 的可视化工作流编辑器结合 MCP Server,开发者只需简单拖拽即可完成功能集成,大幅降低开发门槛。
2)灵活扩展,支持多场景应用
-
动态工具发现:MCP Server 支持动态发现新工具,Dify 应用可自动识别并使用新增功能,无需重新部署。
-
跨平台兼容:MCP Server 可对接多种 AI 客户端(如 Claude Desktop、Cursor IDE),一套 MCP 服务可同时支持 Dify 和其他 AI 平台。
3)高效数据流转,增强 AI 能力
-
RAG(检索增强生成)优化:通过 MCP Server,Dify 可轻松接入企业知识库、数据库等,提升 AI 生成内容的准确性和实时性。
-
自动化任务执行:结合 Zapier 等 MCP 服务,Dify 可实现跨应用自动化(如自动发送邮件、更新 CRM 数据),提高业务效率。
4)安全与解耦设计
-
数据本地化:MCP Server 可在企业 VPC 内独立部署,确保敏感数据不外流。
-
解耦架构:MCP 服务与 Dify 应用解耦,更新工具只需修改 MCP Server,无需调整 Dify 主程序。
5)生态整合 & 社区支持
-
丰富插件市场:Dify 提供 MCP 相关插件(如
MCP SSE
、Zapier MCP
),简化集成流程。 -
活跃开发者社区:GitHub 上有大量开源 MCP Server 实现(如 Python SDK、Node.js 版本),加速自定义开发。
Dify 开发 MCP Server 的核心优势在于 标准化、灵活性、高效集成和低成本运维,特别适合企业级 AI 智能体应用的快速构建。无论是自动化任务、知识库增强,还是多工具协同,Dify + MCP 的组合都能提供强大支持,推动 AI 应用的规模化落地。
三、Dify开发与集成MCP操作过程
接下来我们通过实际操作演示如何在Dify中开发MCP Server并进行集成使用。
3.1 Dify MCP 插件说明
mcp-server插件,可以将我们在Dify上面构建的应用直接发布成为一个符合MCP标准的服务端点
这款由Dify社区贡献的Extension插件,安装后能够让你的任何Dify应用变身为MCP Server,允许外部兼容MCP协议的客户端直接访问,这为Dify 应用的集成和共享提供了极大的便利。插件的核心功能如下:
-
将MCP应用暴露为MCP工具
-
它能将你的整个Dify应用(无论简单或复杂)抽象成一个单一的MCP工具,外边外部MCP客户端(如cursor、cline、甚至dify自身)发现和调用。
-
-
利用Dify Endpoint功能生成访问入口
-
当你为应用创建Endpoint之后,会得到一个专属的URL,外部MCP客户端可以通过这个URL直接连接到你的应用。
-
-
提供标准的MCP服务
-
插件会在Dify环境中自动运行一个HTTP服务,该服务基于HTTP和SSE协议,能够高效处理外部MCP客户端的请求,包括协议握手、能力发现(告诉客户端做什么)以及实际的工具调用。
-
3.2 安装mcp-server插件
如下,通过主页右上角的插件按钮,进入dify插件市场,搜索MCP相关插件,找到该插件并点击安装即可(安装过程会根据网络情况不同而有一定耗时)
等待安装完成之后,在个人的插件列表页面就能看到了
3.3 创建新应用
mcp-server配置的时候需要关联一个具体的应用,先创建一个新的应用,这里使用工作流,如下:
3.3.1 工作流开始节点增加输入变量
开始节点增加一个输入参数,作为用户的输入
3.3.2 增加和配置大模型节点
增加一个大模型节点,接收来自开始节点用户的输入,传递到系统提示词中构成完整的传递给大模型的提示词,这里让大模型模仿输入的author的风格写一首诗,参考下面的配置
大模型节点之后增加一个结束节点,结束节点的输入变量为大模型的输出参数
3.3.3 效果测试
点击右上角的发布更新
然后点击左侧的运行
通过下面的运行结果可以看到工作流配置的是没问题的
3.4 mcp-server发布与使用
选择上述安装完成的mcp-server插件,点击右侧+号
在下面设置API端点的表单中填写端点名称,并选择上一步创的那个工作流配置进去
最下面的那个参数需要重点关注一下,这个参数的格式一般是json格式,参考下面的参数配置进去:
{
"name":"poem",
"description":"模仿输入的作者风格写诗歌",
"inputSchema":{
"title":"poem",
"type":"object",
"properties":{
"author":{
"title":"author",
"description":"作者",
"type":"string"
}
},
"required":["author"]
}
}
参数说明:
-
Properties : 列出应用接收的所有参数及其类型,本示例只有一个参数,author;
-
Description: 用于向MCP Client说明此应用的主要功能,帮助系统在需要的时候自动发现并调用;
-
Required : 声明调用应用时必须提供的参数。对于聊天类应用(Agent / ChatFlow),参数通常是必须的;
将上面的参数配置到json输入框中保存,保存配置后,会自动生成Endpoint URL,我们在后续使用的就是GET 后面的那一串URL地址。
3.5 配置MCP 发现工具
在前面的步骤中安装了插件MCP Server,并关联了工作流能力,且暴露了端点,相当于是一个公共服务能力,如何在客户端中发现这个MCP Server并且正确调用呢,这就需要MCP Client的应用中集成mcp的服务发现能力,在dify的工具市场中,需要安装一个MCP SSE的服务发现工具,主要是配置授权相关信息,如下点击安装:
安装完成后,在下面的工具一栏中可以看到自己安装的工具列表
将下面的授权配置拷贝进去
如下,拷贝进去之后点击保存
保存成功,出现右侧的已授权效果说明配置成功
3.6 创建智能体应用
该应用可以理解为客户端应用,将利用MCP的服务发现工具调用上面发布的MCP Server,参考下面的步骤。
3.6.1 创建智能体
新建一个智能体类型的应用
3.6.2 配置提示词
在输入编排中添加如下提示词
调用mcp工具回答用户问题,先获取工具列表,再选中可用的工具,最后返回工具结果中的诗歌原文以及解析内容
3.6.3 引用 mcp服务发现工具
在编排界面下面的工具选项中,选择上一步配置的发现和调用MCP的工具,将其中的两项能力添加进去
3.6.4 效果测试
当输入作者的名字时,可以看到大模型会先走本地的工具调用,如果没有其他问题的话,将会看到如下类似的效果
四、客户端集成使用Dify MCP服务
基于Dify开发的MCP Server并暴露出来端点之后,除了Dify自身的应用可以使用之外,也可以在其他的客户端集成使用,接下来在其他客户端集成使用。
4.1 魔塔平台集成MCP
在dify上面开发的自定义mcp服务,当sse地址暴露出来之后,就可以在其他的客户端进行集成和使用了,这里我们在魔塔平台做一下测试,魔塔入口:ModelScope 魔搭社区
进入魔搭mcp测试页面:MCP Playground
在弹出的输入框中填写名称,配置前面dify中生成的sse地址
点击保存配置
配置完成后,在左侧的实验场中就会为你的这个MCP服务生成一些测试用例
在实验场提供的模拟测试用例中,比如随机选择第一个模仿李白的风格写一首诗,通过输出结果可以看到,MCP Server的工具已经被触发调用了
通过上面的操作过程,可以看到mcp-server插件提供了一种非常便捷的方式,能够将我们自己在dify中构建的应用转化为MCP Server,提供给内外部各种客户端调用。这无疑是大大增强了 Dify应用的通用性和集成能力。
尽管目前配置 APP Input Schema的JSON格式还需要一些手动操作,略显繁琐,但是相比从0开始搭建服务接口,已经简化了很多。
4.2 VSCode集成MCP服务
在VSCode中安装Cline插件,然后在Cline的MCP配置中参照下面的方式进行配置
提一个问题,模拟李白的风格写一首诗
可以看到效果与魔塔上面的类似,先调用了在Cline中配置的MCP,最后生成了一首诗歌,其他的客户端工具也是类似,有兴趣的同学可以继续尝试。
五、写在文末
本文通过案例操作,详细介绍了基于Dify配置MCP Server,并发布使用的详细过程,通过这种方式,可以让应用开发者更好更专注的面向业务开发,而只需要做简单的集成即可完成对MCP的服务能力的使用,本篇到此结束,感谢观看。
转载自CSDN-专业IT技术社区
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/zhangcongyi420/article/details/148664299