微信扫码
添加专属顾问
我要投稿
探索如何通过Dify平台高效开发MCP应用,简化工具调用流程,提升开发效率。 核心内容: 1. MCP原理与Function call的对比优势 2. MCP Server与Client的关键角色及交互流程 3. 基于Dify平台的MCP实践示例
【Function call的实现逻辑】:
1、在模型API调用时,传递参数tools,其中包含了可用的函数清单;
2、模型分析输入要求以及已知tools后,返回调用工具以及对应的参数;
3、根据工具调用参数调用第三方工具,并获取结果;
4、将执行结果再次提交给模型,获取最终结果;
这里存在的问题在于,步骤3中需要针对不同的工具说明,APP侧编写不同的调用代码,从而降低了通用性。
【MCP的实现逻辑】
关键角色包括:
MCP Server,封装外部第三方工具,执行具体的操作,并对外暴露统一接口;
MCP client,与MCP Server进行交互(负责实际的工具调用),同时负责调用LLM以及处理LLM结果;
LLM,根据工具清单,以及用户问题,判定是否调用工具;
其实现流程如下:
0、基于框架实现MCP Server,其中包含具体的第三方工具调用逻辑;
1、在应用初始化阶段,MCP client通过访问配置的Server地址,获取当前可用工具清单;
2、用户问题以及工具清单提交给LLM;
3、LLM进行逻辑分析,自行判定是否需要调用工具,并输出结果(含是否调用工具声明及具体参数)
4、MCP Client分析模型输出结果:
(1) 如果需要调用工具,则根据调用声明,与MCP Server通讯调用工具,拿到执行执行结果,并交由模型进行二次判断;
(2) 如果不需要调用工具,则生成结果;
5、经过多轮迭代(可能),最终返回生成结果
相比较Function call方式,通过MCP协议规范定义,这里只需要将工具封装到MCP Server中,剩余调用逻辑按照通用方式统一实现即可。不同的模型,不同的工具,只要按照MCP协议规范定义,就可以进行快速的调用。同时Java、Python等均提供了SDK,进一步对细节进行抽象,降低开发成本。
1、编写MCP Server
基于fastmcp库编写MCP 服务,提供了add() 和 sub() 两个工具,示例代码如下:
from fastmcp import FastMCPmcp= FastMCP('demo_server') @mcp.tool()def add(a, b) -> int: return a + b @mcp.tool()def sub(a, b) -> int:return a - b if __name__ == '__main__': mcp.run(transport="sse", host="0.0.0.0", port=8088)
2、在服务器上将mcp服务启动 python demo_server.py
INFO: Started server process [9888] INFO: Waiting for application startup. INFO: Application startup complete. INFO: Uvicorn running on http://0.0.0.0:8088 (Press CTRL+C to quit) |
说明:服务可在其他服务器上部署启动,并保证dify主机能够访问目标服务的网络访问即可
3、在Dify平台上对MCP_SSE工具进行授权
(1) 在Dify开发平台,选择工具,搜索“mcp”,点击MCP SSE 工具,
(2) 点击“已授权”按钮
(3) 配置MCP服务配置
{ "compute_tools": { "url": "http://MCP Server’s IP:8088/sse", "headers": {}, "timeout": 50, "sse_read_timeout": 50 }} |
4、通过Dify平台构建MCP应用
(1) 创建chatflow应用
(2) 创建工作流如下:
(3) 核心Agent节点配置内容如下:
其中:
Agent策略选择“支持MCP的Agent”-ReAct
模型选择qwen3-32b,并关闭思考模式(非必须,只是为了响应快一些)
工具列表选择MCP_SSE的两个工具
MCP服务器内容配置如下
{"compute_tools":{"transport":"sse","url": "http://*.*.*.*:8088/sse"}} |
指令内容输入如下:
当用户问题需要进行加法、减法计算时,调用compute_tools工具 |
查询内容直接配置为sys.query变量 即可
5、点击右上角预览按钮,进行功能验证
6、在预览阶段,点击AGENT可查看Agent调用详细日志(很棒的功能)
(1) 点击查看策略详情:
(2) 共计进行了两轮迭代,点击进一步查看
(3) 可查看具体的工作日志
(4) 最底层包含了Qwen3的思考过程,以及Add工具的调用过程。
以上,完成了简单的MCP服务部署,以及通过Dify平台进行MCP服务的调用,并进行工具验证以及调用日志查看。除通过MCP Server的方式提供第三方能力调用外,Dify平台本身也提供了工具插件,以及插件开发范式。可根据自身的业务需求进行灵活调用。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2025-08-29
如何评测 AI 智能体:试试字节开源的扣子罗盘
2025-08-29
HiMarket 正式开源,为企业落地开箱即用的 AI 开放平台
2025-08-28
美团 M17 团队开源 Meeseeks 评测集:揭秘大模型的 “听话”能力
2025-08-28
我摊牌了,PDF的终结者出现了!这个开源神器,让你的RAG项目吞吐能力暴增10倍!
2025-08-28
面壁开源多模态新旗舰MiniCPM-V 4.5,8B 性能超越 72B,高刷视频理解又准又快
2025-08-28
1.9K Star 微软开源TTS王炸!90分钟超长语音合成,4人对话自然切换!
2025-08-27
初探:从0开始的AI-Agent开发踩坑实录
2025-08-27
ollama v0.11.7发布:深度集成DeepSeek-V3.1与Turbo云端推理模式解析
2025-07-23
2025-06-17
2025-08-20
2025-06-17
2025-07-23
2025-08-05
2025-07-14
2025-08-20
2025-07-29
2025-07-12