在dify构建mcp,结合fastapi接口,以实际业务场景理解MCP
网上关于MCP的介绍已经非常多了,我这边就长话短说,有兴趣的可以扩展阅读我们先来看一幅图MCP 提供了一种统一和标准化的方式,将 AI 代理和模型与外部数据和工具集成。它不仅仅是另一个 API;它是一个强大的连接框架,能够实现智能、动态和上下文丰富的 AI 应用。🔌MCP的作用,就像手机充电接口从“混乱”到“统一”的演变过程。统一成“AI 界的 USB Type-C🚀 最终效果:从“杂乱无章”
一、导读
先给大伙,看看我没有利用mcp模式,在dfiy编排的一个复杂业务
是不是很夸张,需要创建很多流程,调用很多组件,这仅仅只是调用了部分业务接口
- 一个船期查询
- 一个运价查询
- 一个货踪跟踪单号查询
现在我利用mcp模式,简化后的图
go go go 出发喽!
二、什么是MCP?
网上关于MCP的介绍已经非常多了,我这边就长话短说,有兴趣的可以扩展阅读
- dfiy插件市场关于mcp sse :https://marketplace.dify.ai/plugins/junjiem/mcp_sse
- dify博客文章关于mcp的案例:https://dify.ai/blog/dify-mcp-plugin-hands-on-guide-integrating-zapier-for-effortless-agent-tool-calls
- 国外论坛关于mcp的介绍:https://norahsakal.com/blog/mcp-vs-api-model-context-protocol-explained/
我们先来看一幅图
MCP 提供了一种统一和标准化的方式,将 AI 代理和模型与外部数据和工具集成。它不仅仅是另一个 API;
它是一个强大的连接框架,能够实现智能、动态和上下文丰富的 AI 应用。
🔌MCP的作用,就像手机充电接口从“混乱”到“统一”的演变过程
。统一成“AI 界的 USB Type-C
”
🚀 最终效果:从“杂乱无章”到“即插即用”
- 用户(开发者):像用 Type-C 一样,“插上就用”,无需关心底层是哪个 AI 模型或数据源。
- 厂商(AI 提供商):只要支持 MCP,就能快速融入生态,获得更多用户。
- 生态:从“互相割裂”变成“开放协作”,加速 AI 应用创新。
MCP 采用的是经典的客户端 - 服务器架构,我首先需要介绍几个概念。
- MCP 主机(MCP Hosts):发起请求的 LLM 应用程序(例如 Claude Desktop、IDE 或 AI 工具)。
- MCP 客户端(MCP Clients):在主机程序内部,与 MCP server 保持 1:1 的连接。
- MCP 服务器(MCP Servers):为 MCP client 提供上下文、工具和 prompt 信息。
- 本地资源(Local Resources):本地计算机中可供 MCP server 安全访问的资源(例如文件、数据库)。
- 远程资源(Remote Resources):MCP server 可以连接到的远程资源(例如通过 API)。
基于 MCP 官方提供的 Python SDK 中的一个简单 SSE 协议的 MCP Server
建议去走一遍这个源码!
三、API与Agent和MCP
维度 | API | Agent | MCP |
---|---|---|---|
角色 | 工具 | 工具使用者 | 工具间的通信标准 |
灵活性 | 固定功能 | 可自主决策 | 动态路由和协作 |
协作性 | 需手动组合 | 可调用多工具 | 标准化多模型交互 |
类比 | 厨房菜单 | 服务员 | 餐厅工作语言 |
下面我将用一些形象的例子告诉大伙
1. API(接口)→ 厨房的标准化菜单
- 是什么:预定义的规则,规定如何请求数据或服务(如 REST API)。
- 作用:像餐厅的菜单,告诉顾客(调用者)能点什么菜(功能),但不关心谁点餐、怎么吃。
- 局限:
- 固定功能(菜单写死,不能临时改菜谱)。
- 无自主决策能力(厨房不会主动推荐菜品)。
- 例子:
- 调用天气API获取数据,但无法自动决定是否要带伞。
2. Agent(智能代理)→ 服务员 + 厨师长
- 是什么:能自主决策、调用工具、完成目标的AI程序(如AutoGPT)。
- 作用:像服务员,根据你的需求(目标)协调后厨(API)、推荐菜品(决策),甚至调整做法(动态规划)。
- 特点:
- 自主性:能拆解任务(如先查天气,再推荐穿搭)。
- 多工具协作:可调用多个API(像让厨房和仓库联动)。
- 局限:
- 不同Agent之间缺乏统一沟通标准(服务员之间可能说方言)。
- 例子:
- 旅行Agent自动查机票、酒店、天气,规划行程。
3. MCP(模型连接协议)→ 餐厅的通用工作语言
- 是什么:标准化AI模型、工具和数据源之间的通信协议(类似gRPC但更AI友好)。
- 作用:像餐厅规定所有员工用同一种语言交流(无论厨师来自法国还是中国),确保:
- 模型即插即用:新模型接入像新厨师入职,无需重写菜单。
- 动态路由:根据需求自动分配任务(忙时让AI-1处理,闲时用AI-2)。
- 上下文共享:服务员(Agent)知道顾客的过敏史(历史交互)。
- 优势:
- 解耦:Agent不依赖具体API,只需对接MCP(服务员不用背每个厨师的方言)。
- 生态统一:避免“API方言战争”(如OpenAI和Anthropic的协议差异)。
- 例子:
- 通过MCP,一个Agent可同时调用GPT-4(文本)、Stable Diffusion(绘图)、企业内部数据库。
好了过于理论的东西,网上也有很多文章,自行搜索吧,这里就不展开讲了
四、案例
现在我将构建一个业务场景,用户输入"上海到洛杉矶船期查询"
- AI会提取文本内容,获得关键词pol为上海,pod为洛杉矶
- 携带pol和pod查询,
基础资料查询接口
- 然后携带查询出来的pol_id 跟pod_id 请求
船期查询接口
上面流程,包含了语义解析,2个接口连续调用
代码仓库地址:https://github.com/wenwenc9/mcp-ship
1、非MCP模式编排dify
1.1 fastapi接口服务代码(fastapi_api.py)
下面这段代码主要是为了,创建2个post接口
- 编写了一个请求日志打印的组件
- 编写了2个接口《基础资料查询接口》和《船期查询接口》
- 编写了请求和响应schemas
后端接口服务,运行起来的效果如下
1.2 创建dify应用
现在到dify创建一个chatflow应用,直接在导入我代码仓库的 非MCP-船期查询.yml
DSL文件就好了,记得里面的服务端IP改成你自己的!
然后按照我下面的图运行观察一下,自己一定要捋一捋发生了什么~~
解析用户语义-> 提取关键参数-> 调用基础资料接口->判断状态码-> 调用船期查询接口
2、MCP模式编排dify
2.1 安装MCP插件
先来到插件市场安装一个插件
创建一个chatflow应用,导入我代码仓库的MCP船期测试.yml
DSL文件 (注意里面的IP地址换成你的)
安装两个工具
那么问题来了,现在将我们的fastapi服务端代码改造成mcp的方式,github有一个项目可以快速帮我们做到
https://github.com/tadata-org/fastapi_mcp
几行代码轻松变成mcp模式,见fastapi_mcp_api.py
现在,启动fastapi服务端,在dify看看效果吧
2.2 启动dify调用mcp服务
在基础资料中只有3个港口
我输入了 上海到洛杉矶,注意,洛杉矶并不存在,看看效果
在这个过程中,使用了Agent ReAct
模式,进行观察,可以看到尽管找不到内容,但是依然能够进行智能回复
Agent ReAct
在我往期文章也有讲到
https://blog.csdn.net/weixin_44238683/article/details/138276724
并且点击ReAct可以看到进行了3轮操作,你可以同时观察fastapi打印日志,可以看到整个过程的处理情况
现在我们将问题替换成 上海到纽约
进行了4轮,从调用sse的MCP服务工具清单,到调用基础资料接口,以及船期接口,都是通过ReAct完成
3、结论
MCP的出现,大大提高了对于工作流垂直业务的创造能力。
举个例子,如果我在fastapi创建了10个业务接口,我在dify进行编排,某天业务接口的请求参数进行了变更
我们要重新更改dify流程,以及重新部署。
现在,我们只需要更改fastapi接口,重新部署fastapi即可,而SSE服务能够自己获得动态的工具清单。
对比维度 | MCP | FastAPI 接口 |
---|---|---|
统一性和标准化 | - 例子:LLM 可以通过统一的 MCP 接口调用不同开发者开发的数学计算和天气查询功能,无需单独编写代码。 - 优势:提供统一协议,支持标准化的 JSON 消息格式和通用通信协议(如 JSON-RPC、HTTP、WebSocket 等),使 LLM 能无缝对接各种外部工具。 | - 例子:LLM 需要为每个 FastAPI 接口(如数学计算和天气查询)单独编写调用代码,因为每个接口的实现细节不同。 - 劣势:每个 API 需要单独开发和维护,不同 API 之间的集成需要编写特定的代码。 |
开发和维护成本 | - 例子:当文件格式从 TXT 改为 JSON 时,只需更新 MCP Server 的实现,LLM 代码无需修改。 - 优势:工具更新通常不影响 LLM 代码,维护成本低;标准化协议使开发效率更高。 | - 例子:当文件格式从 TXT 改为 JSON 时,需要同时更新接口实现和 LLM 调用代码。 - 劣势:每次接口更新都需要同步更新调用代码,开发和维护成本高。 |
双向通信和动态交互 | - 例子:LLM 通过 MCP Server 读取文件内容后,动态决定下一步操作(如调用另一个 MCP Server 进行数据分析)。 - 优势:支持双向通信和多轮交互,可实现复杂的任务流程。 | - 例子:LLM 调用 FastAPI 接口获取文件内容后,需手动编写逻辑决定下一步操作,无法实现动态交互。 - 劣势:通常是单向的“一问一答”模式,不支持复杂的任务流程。 |
安全性 | - 例子:用户使用 MCP Server 访问本地文件时,需明确授权,MCP 协议确保只有授权操作才能执行。 - 优势:提供标准化的访问控制和用户明确授权,数据源持有者可保留数据控制权。 | - 例子:用户使用 FastAPI 接口访问本地文件时,需依赖开发者实现的安全机制,没有统一标准。 - 劣势:安全性依赖于开发者实现,规则不统一。 |
灵活性和扩展性 | - 例子:LLM 可通过动态发现机制无缝调用新开发的 MCP Server(如数据库查询功能),无需修改代码。 - 优势:支持动态添加和移除工具,适用场景广,扩展性强。 | - 例子:LLM 需重新编写代码来调用新开发的 FastAPI 接口(如数据库查询功能)。 - 劣势:添加新接口需要重构代码,扩展性差。 |
AI 优化 | - 例子:MCP Server 返回格式化的数据(如天气查询结果的 JSON 对象),直接被 LLM 处理。 - 优势:提供 AI 友好的工具和提示,返回的数据格式更适合 AI 处理。 | - 例子:FastAPI 接口返回 HTML 页面或原始数据,LLM 需额外处理才能使用。 - 劣势:返回原始数据,需要额外处理才能被 AI 使用。 |
,扩展性差。 | ||
AI 优化 | - 例子:MCP Server 返回格式化的数据(如天气查询结果的 JSON 对象),直接被 LLM 处理。 - 优势:提供 AI 友好的工具和提示,返回的数据格式更适合 AI 处理。 | - 例子:FastAPI 接口返回 HTML 页面或原始数据,LLM 需额外处理才能使用。 - 劣势:返回原始数据,需要额外处理才能被 AI 使用。 |
实际应用场景 | - 例子:LLM 可通过 MCP 完成复杂任务,如读取本地文件、分析内容、调用外部 API 并保存结果到数据库。 - 优势:适合复杂的 AI 工作流,如跨资源协同和多 API 联动。 | - 例子:LLM 调用 FastAPI 接口查询天气信息。 - 劣势:更适合单一功能的调用,不支持复杂的任务流程。 |
零基础如何高效学习大模型?
你是否懂 AI,是否具备利用大模型去开发应用能力,是否能够对大模型进行调优,将会是决定自己职业前景的重要参数。
为了帮助大家打破壁垒,快速了解大模型核心技术原理,学习相关大模型技术。从原理出发真正入局大模型。在这里我和鲁为民博士系统梳理大模型学习脉络,这份 LLM大模型资料
分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程
等, 😝有需要的小伙伴,可以 扫描下方二维码免费领取🆓**⬇️⬇️⬇️
【大模型全套视频教程】
教程从当下的市场现状和趋势出发,分析各个岗位人才需求,带你充分了解自身情况,get 到适合自己的 AI 大模型入门学习路线。
从基础的 prompt 工程入手,逐步深入到 Agents,其中更是详细介绍了 LLM 最重要的编程框架 LangChain。最后把微调与预训练进行了对比介绍与分析。
同时课程详细介绍了AI大模型技能图谱知识树,规划属于你自己的大模型学习路线,并且专门提前收集了大家对大模型常见的疑问,集中解答所有疑惑!
深耕 AI 领域技术专家带你快速入门大模型
跟着行业技术专家免费学习的机会非常难得,相信跟着学习下来能够对大模型有更加深刻的认知和理解,也能真正利用起大模型,从而“弯道超车”,实现职业跃迁!
【精选AI大模型权威PDF书籍/教程】
精心筛选的经典与前沿并重的电子书和教程合集,包含《深度学习》等一百多本书籍和讲义精要等材料。绝对是深入理解理论、夯实基础的不二之选。
【AI 大模型面试题 】
除了 AI 入门课程,我还给大家准备了非常全面的**「AI 大模型面试题」,**包括字节、腾讯等一线大厂的 AI 岗面经分享、LLMs、Transformer、RAG 面试真题等,帮你在面试大模型工作中更快一步。
【大厂 AI 岗位面经分享(92份)】
【AI 大模型面试真题(102 道)】
【LLMs 面试真题(97 道)】
【640套 AI 大模型行业研究报告】
【AI大模型完整版学习路线图(2025版)】
明确学习方向,2025年 AI 要学什么,这一张图就够了!
👇👇点击下方卡片链接免费领取全部内容👇👇
抓住AI浪潮,重塑职业未来!
科技行业正处于深刻变革之中。英特尔等巨头近期进行结构性调整,缩减部分传统岗位,同时AI相关技术岗位(尤其是大模型方向)需求激增,已成为不争的事实。具备相关技能的人才在就业市场上正变得炙手可热。
行业趋势洞察:
- 转型加速: 传统IT岗位面临转型压力,拥抱AI技术成为关键。
- 人才争夺战: 拥有3-5年经验、扎实AI技术功底和真实项目经验的工程师,在头部大厂及明星AI企业中的薪资竞争力显著提升(部分核心岗位可达较高水平)。
- 门槛提高: “具备AI项目实操经验”正迅速成为简历筛选的重要标准,预计未来1-2年将成为普遍门槛。
与其观望,不如行动!
面对变革,主动学习、提升技能才是应对之道。掌握AI大模型核心原理、主流应用技术与项目实战经验,是抓住时代机遇、实现职业跃迁的关键一步。
01 为什么分享这份学习资料?
当前,我国在AI大模型领域的高质量人才供给仍显不足,行业亟需更多有志于此的专业力量加入。
因此,我们决定将这份精心整理的AI大模型学习资料,无偿分享给每一位真心渴望进入这个领域、愿意投入学习的伙伴!
我们希望能为你的学习之路提供一份助力。如果在学习过程中遇到技术问题,也欢迎交流探讨,我们乐于分享所知。
*02 这份资料的价值在哪里?*
专业背书,系统构建:
-
本资料由我与鲁为民博士共同整理。鲁博士拥有清华大学学士和美国加州理工学院博士学位,在人工智能领域造诣深厚:
-
- 在IEEE Transactions等顶级学术期刊及国际会议发表论文超过50篇。
- 拥有多项中美发明专利。
- 荣获吴文俊人工智能科学技术奖(中国人工智能领域重要奖项)。
-
目前,我有幸与鲁博士共同进行人工智能相关研究。
内容实用,循序渐进:
-
资料体系化覆盖了从基础概念入门到核心技术进阶的知识点。
-
包含丰富的视频教程与实战项目案例,强调动手实践能力。
-
无论你是初探AI领域的新手,还是已有一定技术基础希望深入大模型的学习者,这份资料都能为你提供系统性的学习路径和宝贵的实践参考,助力你提升技术能力,向大模型相关岗位转型发展。
抓住机遇,开启你的AI学习之旅!
更多推荐
所有评论(0)