基于Dify平台开发MCP应用简要说明

一、MCP原理说明

【Function call 的实现逻辑】:

1、在模型 API 调用时,传递参数 tools,其中包含了可用的函数清单;

2、模型分析输入要求以及已知 tools 后,返回调用工具以及对应的参数;

3、根据工具调用参数调用第三方工具,并获取结果;

4、将执行结果再次提交给模型,获取最终结果;

基于Dify平台开发MCP应用简要说明

这里存在的问题在于,步骤 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、经过多轮迭代(可能),最终返回生成结果

基于Dify平台开发MCP应用简要说明

相比较 Function call 方式,通过 MCP 协议规范定义,这里只需要将工具封装到 MCP Server 中,剩余调用逻辑按照通用方式统一实现即可。不同的模型,不同的工具,只要按照 MCP 协议规范定义,就可以进行快速的调用。同时 Java、Python 等均提供了 SDK,进一步对细节进行抽象,降低开发成本。

二、基于 dify 的 MCP 实践

1、编写 MCP Server

基于 fastmcp 库编写 MCP 服务,提供了 add()和 sub()两个工具,示例代码如下:

from fastmcp import FastMCPmcp= FastMCP('demoserver') @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 工具,

基于Dify平台开发MCP应用简要说明

(2)点击“已授权”按钮

基于Dify平台开发MCP应用简要说明

(3)配置 MCP 服务配置

基于Dify平台开发MCP应用简要说明

{"computetools": {"url": "http://MCP Server’s IP:8088/sse","headers": {}, "timeout": 50,"sseread_timeout": 50}}

说明:这里允许配置多 个 MCP 服务地址
4、通过 Dify 平台构建 MCP 应用

(1)创建 chatflow 应用

基于Dify平台开发MCP应用简要说明

(2)创建工作流如下:

基于Dify平台开发MCP应用简要说明

(3)核心 Agent 节点配置内容如下:

基于Dify平台开发MCP应用简要说明

其中:

Agent 策略选择“支持 MCP 的 Agent”-ReAct

基于Dify平台开发MCP应用简要说明

模型选 择 qwen3-32b,并关闭思考模式(非必须,只是为了响应快一些)

基于Dify平台开发MCP应用简要说明

工具列表选择 MCP_SSE 的两个工具

基于Dify平台开发MCP应用简要说明

MCP 服务器内容配置如下

{"compute_tools":{"transport":"sse","url": "http://*.*.*.*:8088/sse"}}

指令内容输入如下:

当用户问题需要进行加法、减法计算时,调用 compute_tools 工具

查询内容直接配置为 sys.query 变量 即可

5、点击右上角预览按钮,进行功能验证

基于Dify平台开发MCP应用简要说明

6、在预览阶段,点击 AGENT 可查看A gent 调用详细日志(很棒的功能)

基于Dify平台开发MCP应用简要说明

(1)点击查看策略详情:

基于Dify平台开发MCP应用简要说明

(2)共计进行了两轮迭代,点击进一步查看

基于Dify平台开发MCP应用简要说明

(3)可查看具体的 工作日志

基于Dify平台开发MCP应用简要说明

(4)最底层包含了 Qwen3 的思考过程,以及 Add 工具的调用过程。

基于Dify平台开发MCP应用简要说明

以上,完成了简单的 MCP 服务部署,以及通过 Dify 平台进行 MCP 服务的调用,并进行工具验证以及调用日志查看。除通过 MCP Server 的方式提供第三方能力调用外,Dify 平台本身也提供了工具插件,以及插件开发范式。可根据自身的业务需求进行灵活调用。

© 版权声明
THE END
喜欢就支持一下吧
点赞234 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片