dify調用Streamable HTTP MCP應用

一、概述

上一篇文章,介紹了使用python開發Streamable HTTP MCP應用,鏈接:https://www.cnblogs.com/xiao987334176/p/18872195

接下來介紹dify如何調用MCP

二、插件

安裝插件

需要安裝2個插件,分別是:Agent 策略(支持 MCP 工具),MCP SSE

Agent 策略(支持 MCP 工具)

Agent 策略集合(支持 MCP SSE 發現和調用工具)

github地址:https://github.com/junjiem/dify-plugin-agent-mcp_sse

MCP SSE / StreamableHTTP

通過 HTTP with SSE 或 Streamable HTTP 傳輸方式使用 MCP 協議來發現和調用工具。

github地址:https://github.com/junjiem/dify-plugin-tools-mcp_sse

注意:請確保插件是最新版本,因為新版本增加了Streamable HTTP

目前最新版本如下:

?請確保dify版本不要太低,最好是1.3以上

插件配置

點擊插件MCP SSE,設置授權

?輸入mcp服務配置

完整內容如下:

{"mysql8-mcp-server": {"transport": "streamable_http","url": "http://172.16.3.121:9000/mcp/","headers": {},"timeout": 60}
}

參數說明:

mysql8-mcp-server:mcp名字,名字可以隨便寫。

transport:mcp運行模式,streamable_http表示Streamable HTTP

url:mcp訪問地址

注意:如果是使用fastmcp開發的,末尾必須帶有斜杠,否則添加會報錯

PluginInvokeError: {"args":{},"error_type":"Exception","message":"mysql8-mcp-server - Unsupported Content-Type: None"}

headers:請求頭設置,如果沒有特殊要求,這里設置為空。

timeout:超時時間,這里設置為60秒

注意:上面只是舉例了一個mcp應用,如果有多個,在里面添加即可,比如:

三、dify工作流設置

創建工作流

類型:Chatflow

名稱:test-mcp-mysql8

?刪除LLM節點,添加一個agnet,效果如下:

agent設置

agent策略

?重點看agent配置

AGENT策略必須選擇ReAct (Support MCP Tools)

為什么一定要選ReAct,因為我發現FunctionCalling有問題

模型

模型隨便選一個即可,這里選的是qwen3-32b

?工具列表

注意:工具列表,這里一定要留空。

為什么?因為這里提供的方法,只支持SSE模式,并不支持Streamable HTTP,所以千萬不要選。

agent插件,已經支持Streamable HTTP 工具列表自動發現,所以不需要選。

MCP服務配置

?mcp服務配置,完整內容如下:

{"mysql8-mcp-server": {"transport": "streamable_http","url": "http://172.16.3.121:9000/mcp/","timeout": 60}
}

注意:這里的url末尾要帶斜杠,因為是fastmcp開發的,所有要帶。

如果是java或者nodejs開發的mcp,我就不確定了,需要自行嘗試。

指令

指令就是我們熟悉的提示詞

??提示詞和以前一樣

使用中文回復。當用戶提問中涉及學生、教師、成績、班級、課程等實體時,需要使用 MySQL MCP 進行數據查詢和操作,表結構說明如下:# 學生管理系統數據庫表結構說明## 1. 教師表 (teachers)| 字段名 | 類型 | 描述 | 約束 | 示例 |
|--------|------|------|------|------|
| id | varchar | 教師ID | 主鍵 |?"T001"?|
| name | varchar | 教師姓名 | 必填 |?"張建國"?|
| gender | enum | 性別 |?"男"或"女"?|?"男"?|
| subject | varchar | 教授科目 | 必填 |?"數學"?|
| title | varchar | 職稱 | 必填 |?"教授"?|
| phone | varchar | 聯系電話 | 必填 |?"13812345678"?|
| office | varchar | 辦公室位置 | 必填 |?"博學樓301"?|
| wechat | varchar | 微信(可選) | 可選 |?"lily_teacher"?|
| isHeadTeacher | enum | 是否為班主任,"true"或"false" | 可選 |?true?|## 2. 班級表 (classes)| 字段名 | 類型 | 描述 | 約束 | 示例 |
|--------|------|------|------|------|
| id | varchar | 班級ID | 主鍵 |?"202301"?|
| className | varchar | 班級名稱 | 必填 |?"2023級計算機1班"?|
| grade | int | 年級 | 必填 | 2023 |
| headTeacherId | varchar | 班主任ID | 外鍵(teachers.id) |?"T003"?|
| classroom | varchar | 教室位置 | 必填 |?"1號樓302"?|
| studentCount | int | 學生人數 | 必填 | 35 |
| remark | varchar | 備注信息 | 可選 |?"市級優秀班集體"?|## 3. 課程表 (courses)| 字段名 | 類型 | 描述 | 約束 | 示例 |
|--------|------|------|------|------|
| id | varchar | 課程ID | 主鍵 |?"C001"?|
| courseName | varchar | 課程名稱 | 必填 |?"高等數學"?|
| credit | int | 學分 | 必填 | 4 |
| teacherId | varchar | 授課教師ID | 外鍵(teachers.id) |?"T001"?|
| semester | varchar | 學期 | 格式"YYYY-N"?|?"2023-1"?|
|?type?| enum | 課程類型 |?"必修"或"選修"?|?"必修"?|
| prerequisite | varchar | 先修課程ID | 可選,外鍵(courses.id) |?"C003"?|## 4. 學生表 (students)| 字段名 | 類型 | 描述 | 約束 | 示例 |
|--------|------|------|------|------|
| id | varchar | 學號 | 主鍵 |?"S20230101"?|
| name | varchar | 學生姓名 | 必填 |?"王強"?|
| gender | enum | 性別 |?"男"或"女"?|?"男"?|
| birthDate | date | 出生日期 | 必填 | date("2005-01-15") |
| enrollmentDate | date | 入學日期 | 必填 | date("2023-8-1") |
| classId | varchar | 班級ID | 外鍵(classes.id) |?"202301"?|
| phone | varchar | 聯系電話 | 必填 |?"13812345678"?|
| email | varchar | 電子郵箱 | 必填 |?"20230101@school.edu.cn"?|
| emergencyContact | varchar | 緊急聯系人電話 | 必填 |?"13876543210"?|
| address | varchar | 家庭住址 | 必填 |?"北京市海淀區中關村大街1棟101室"?|
| height | int | 身高(cm) | 必填 | 175 |
| weight | int | 體重(kg) | 必填 | 65 |
| healthStatus | enum | 健康狀況 | 必填,"良好"或"一般?"或"較差" |?"良好"?|## 5. 成績表 (scores)| 字段名 | 類型 | 描述 | 約束 | 示例 |
|--------|------|------|------|------|
| id | varchar | 成績記錄ID | 主鍵 |?"S20230101C001"?|
| studentId | varchar | 學生ID | 外鍵(students.id) |?"S20230101"?|
| courseId | varchar | 課程ID | 外鍵(courses.id) |?"C001"?|
| score | int | 綜合成績 | 0-100 | 85 |
| examDate | date | 考試日期 | 必填 | date("2024-5-20") |
| usualScore | int | 平時成績 | 0-100 | 90 |
| finalScore | int | 期末成績 | 0-100 | 80 |### 補考成績記錄說明
補考記錄在_id后添加"_M"后綴,如"S20230101C001_M"## 表關系說明1. **一對多關系**:- 一個班級(classes)對應多個學生(students)- 一個教師(teachers)可以教授多門課程(courses)- 一個學生(students)有多條成績記錄(scores)2. **外鍵約束**:- students.classId → classes.id- courses.teacherId → teachers.id- scores.studentId → students.id- scores.courseId → courses.id- classes.headTeacherId → teachers.id
View Code

mysql表結構,參考文章:https://www.cnblogs.com/xiao987334176/p/18826422

查詢

這里選擇變量query,也就是開始步驟中的輸入變量

最大迭代次數

最大迭代次數是一個重要的參數,用于控制工具調用的深度和復雜性。它主要用于防止無限循環或過度調用工具,從而避免資源浪費或系統性能問題。

?默認是3,也必須要設置一下,否則無法保存

最后連接直接回復

選擇變量Agent.text

點擊發布預覽

四、dify測試

學生里面,男生多還是女生多?

?哪個老師帶的學生最多?

?總成績最好的是哪個班級?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/81994.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/81994.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/81994.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

筆記:將一個文件服務器上的文件(一個返回文件數據的url)作為另一個http接口的請求參數

筆記:將一個文件服務器上的文件(一個返回文件數據的url)作為另一個http接口的請求參數 最近有這么個需求,需要往某一個業務的外部接口上傳文件信息,但是現在沒有現成的文件,只在數據庫存了對應的url&#…

如何在 FastAPI 中合理使用 Pydantic 的 Alias

下面的內容是我跟 Gemini 2.5 Pro 探討關于Pydantic 的 Alias 問題之后,讓它總結的一篇技術博客。 我已經有很長一段時間沒有好好寫技術類的博客了,這就是原因。 可以在 https://panzhixiang.cn/ 查看更多我的博客,有技術的,也有很…

CAU人工智能class4 批次歸一化

歸一化 在對輸入數據進行預處理時會用到歸一化,將輸入數據的范圍收縮到0到1之間,這有利于避免綱量對模型訓練產生的影響。 但當模型過深時會產生下述問題: 當一個學習系統的輸入分布發生變化時,這種現象稱之為“內部協變量偏移”…

動態庫和靜態庫詳解

庫其實就是個文件 下面是文件后綴 靜態庫:.a(linux) .lib(windows) 動態庫:.so(linux) .dll(windows) 靜態庫的制作 ar -rc libmystdio.a my_stdio.o my_string.o ar是歸檔工具,rc表示replace和create,ar跟tar有點…

PDF 文檔結構化工具對比:Marker 與 MinerU

模型訓練數據-MinerU一款Pdf轉Markdown軟件 https://codeyuan.blog.csdn.net/article/details/144315141 在當前大模型(LLM)和自然語言處理(NLP)應用快速發展的背景下,如何高效地將 PDF 等非結構化文檔轉換為結構化數…

shp2pgsql 導入 Shp 到 PostGIS 空間數據庫

前言 ? shp2pgsql是PostGIS自帶的命令行工具,用于將Shapefile文件聲稱SQL腳本導入到PostGIS空間數據庫。 1. 安裝 PostGIS 通過Application Stack Builder或者下載單獨的PostGIS包進行安裝。而shp2pgsql則是與PostGIS工具集成在一起,無需單獨下載。該命…

【ISP算法精粹】什么是global tone mapping和local tone mapping?

1. 簡介 全局色調映射(Global Tone Mapping)和局部色調映射(Local Tone Mapping)是高動態范圍(HDR)圖像處理中的兩種關鍵技術,用于將高動態范圍圖像的亮度值映射到標準動態范圍(LDR…

虛擬環境中VSCode運行jupyter文件

用VS Code打開jupyter文件,點擊右上角 Select Kernel 在正上方會出現這個選擇框,選擇 Python Environment 會出來所有的虛擬環境,選擇要用的環境行

如何計算VLLM本地部署Qwen3-4B的GPU最小配置應該是多少?多人并發訪問本地大模型的GPU配置應該怎么分配?

本文一定要閱讀我上篇文章!!! 超詳細VLLM框架部署qwen3-4B加混合推理探索!!!-CSDN博客 本文是基于上篇文章遺留下的問題進行說明的。 一、本文解決的問題 問題1:我明明只部署了qwen3-4B的模型…

antv/g6 圖譜封裝配置(二)

繼上次實現圖譜后,后續發現如果要繼續加入不同樣式的圖譜實現起來太過麻煩,因此考慮將配置項全部提取封裝到js文件中,圖譜組件只專注于實現各種不同的組件,其中主要封裝的點就是各個節點的橫坐標(x),縱坐標…

從芯片互連到機器人革命:英偉達雙線出擊,NVLink開放生態+GR00T模型定義AI計算新時代

5月19日,在臺灣舉辦的Computex 2025上,英偉達推出新技術“NVLink Fusion”,允許非英偉達CPU和GPU,同英偉達產品以及高速GPU互連技術NVLink結合使用,加速AI芯片連接。新技術的推出旨在保持英偉達在人工智能開發和計算領…

Qt window frame + windowTitle + windowIcon屬性(3)

文章目錄 window frame屬性window frame的概念1. window frame的影響2. 圖片演示3. 代碼演示 API接口widget.cpp(測試代碼) windowTitle屬性API接口問題 注意點widget.cpp(屬性用法) windowIcon屬性API接口啥是窗口圖標玩法1. 先…

Git 分支管理:merge、rebase、cherry-pick 的用法與規范

Git 分支管理:merge、rebase、cherry-pick 的用法與規范 在團隊開發和個人項目中,合理管理 Git 分支至關重要。merge、rebase 和 cherry-pick 是最常用的三種分支操作命令。本文將介紹它們的基本用法、適用場景及最佳實踐規范,幫助大家更高效…

VR全景制作方法都有哪些?需要注意什么?

VR全景制作是將線下實景場景轉化為具有沉浸式體驗的全景圖像的相關技術流程。通過圖像處理和軟件拼接等手段及技術,可以制作出VR全景圖。后面,我們科普詳細的VR全景制作方法指南,順便介紹眾趣科技在相關領域提供的支持方案。 選定拍攝地點與準…

計算機系統結構1-3章節 期末背誦內容

Amdahl定律: 加快某部件執行速度所能獲得的系統性能加速比,受限于該部件的執行時間占系統中總執行時間的百分比。 加速比依賴于: 可改進比例:在改進前的系統中,可改進部分的執行時間在總的執行時間中所占的比例。 部件加速比:可改…

JS實現直接下載PDF文件

pdf文件通過a標簽直接下載會打開頁面,所以,請求該文件的blob文件流數據,再通過window.URL.createObjectURL轉成鏈接,就可以直接下載了。 只需要替換url和文件名稱就行,文件名的后綴記得要寫上pdf,不然會變成…

深度解析Pytest中Fixture機制與實戰案例

一、為什么我們需要Fixture? 在某次金融系統重構項目中,我們的測試團隊曾遇到這樣的困境:隨著測試用例增長到500,使用unittest框架編寫的測試代碼出現了嚴重的維護問題——setup方法臃腫不堪,測試數據混亂&#xff0c…

文檔結構化專家:數字化轉型的核心力量

文檔結構化專家:定義、職責與行業應用的全方位解析 一、文檔結構化的定義與核心價值 文檔結構化是將非結構化或半結構化文檔(如文本、圖像、表格)轉換為計算機可處理的規范化數據形式的過程。其核心在于通過語義解析、信息單元劃分和標準化格式(如XML/JSON),實現信息的…

Linux系統管理與編程16番外篇:PXE自動化安裝部署OpenEuler24.03LTS

蘭生幽谷,不為莫服而不芳; 君子行義,不為莫知而止休。 Preboot Execution Environment 本機服務器操作系統:CentOS7.9.2207 目標服務器安裝系統:openEuler-24.03-LTS-SP1-everything-x86_64-dvd.iso 虛擬機&#xff1…

Enhanced RTMP H.265(HEVC)技術規格解析:流媒體協議的新突破

Enhanced RTMP H.265(HEVC)技術規格解析:流媒體協議的新突破 “每一幀畫面都是時間的映射,壓縮之后的靈魂,依然能栩栩如生。” 隨著流媒體技術的快速發展,視頻編碼標準不斷推陳出新。H.264/AVC雖然已經成為…