Dify 連接本地 SpringAI MCP Server

Dify 連接本地 SpringAI MCP server

連接 MCP server 的方式大致有兩種,一種是基于 stdio,一種是基于 sse,如果對于穩定和性能好的方案的話,sse 要比 stdio 好的多,所以本文采用的是基于 sse 和 Spring AI 部署本地 MCP server,并通過 Dify 連接本地 MCP Server。

如何使用 SpringAI 搭建一個本地 MCP server

依賴:

<dependencies><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-starter-mcp-server-webflux</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><version>3.5.3</version></dependency>
</dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-bom</artifactId><version>1.0.0</version><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement>

配置文件

spring:application:name:mcp-server-demoai:mcp:server:name: webflux-mcp-server # 這里是外部訪問 mcp server 的服務器名稱version: 1.0.0type: ASYNCsse-message-endpoint: /mcp/messagesserver:port: 8080

Service 模塊

可以根據具體的業務操作邏輯進行編寫

@Service
public class CheckStudentService {@Tool(description = "根據傳入同學的姓名查看這位同學在班級內的職務")public String checkStudentPosition(String studentName) {Map<String, String> mockData = Map.of("小明","班長","小紅","學習委員","小帥","衛生委員");return mockData.getOrDefault(studentName, "普通同學,沒有職務!");}@Tool(description = "根據同學姓名查看這位同學的成績得分")public String checkStudentScore(String studentName) {Map<String, Integer> mockData = Map.of("小明",88,"小紅",99,"小帥",63);if (null == mockData.get(studentName)){return "暫無這位同學的成績!";}return String.valueOf(mockData.get(studentName));}}

將實現好的 Service 模塊暴露出去

這一步就是把實現好的 Service 注冊到方法回調列表中,再通過 sse 獲取工具集合的時候可以訪問到暴露出去的工具。

SpringAI 的實現方式是將對應的 Service 封裝為 ToolBackProvider 后,并把這個對象放入 IoC 中,SprigAI 會自動對其進行打包處理。

@Configuration
public class McpServiceConfig {@Beanpublic ToolCallbackProvider checkStudentTools(CheckStudentService studentService) {return MethodToolCallbackProvider.builder().toolObjects(studentService).build();}}

MCP 服務器Demo 配置完畢,直接啟動

觀察日志,可以看到,SpringAI 把我們自定義的兩個工具注冊到方法回調集里面了。
請添加圖片描述

Dify 連接本地 MCP Server

首先本地下載這兩個插件,這是用于搭建智能體的工具
請添加圖片描述
請添加圖片描述
搭建智能體工作流,配置 Agent 策略工具,注意這里一定要使用智能體策略工具中的 ReAct 工具,使用 FunctionCalling 會報錯。請添加圖片描述
配置 MCP sse 工具,這里的 json 配置如下,還記得在上面 MCP server 中的配置文件嗎,這里的 server 名字就是上面 yaml 文件中配置的。這里還要注意一個問題,如果是使用 Docker 部署的 Dify,可能由于 Docker 的配置問題,無法訪問宿主機的 localhost,需要把 127.0.0.1 換成host.docker.internal

{"webflux-mcp-server": {"url": "http://host.docker.internal:8080/sse"}
}

請添加圖片描述
在服務器配置中把這個 json 的配置,再寫一遍。請添加圖片描述
Dify 聊天測試~請添加圖片描述
如果對你有幫助,麻煩點個贊~~
在這里插入圖片描述

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

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

相關文章

基于 Python 的數據分析技術綜述

先說一點個人的看法“”MDX、OLAP&#xff08;Mondrian&#xff09;技術更適合構建面向業務用戶的標準化分析產品&#xff0c;尤其當產品需要滿足以下特點時&#xff1a;分析維度固定&#xff08;如時間、區域、產品類別&#xff09;&#xff1b;需支持高并發查詢&#xff08;如…

Live555-RTSP服務器

RTSP Server創建 RTSP服務器初始化&#xff1a; RTSPServer::createNew->new RTSPServer::RTSPServer->GenericMediaServer::GenericMediaServer->turnOnBackgroundReadHandling(IPV4sock/IPV6sock,incomingConnectionHandlerIPv4)如上流程&#xff0c;創建RTSP服務器…

Redis Stack擴展功能

Redis JSONRedisJSON是Redis的一個擴展模塊&#xff0c;它提供了對JSON數據的原生支持。常用操作&#xff1a;-- 設置一個JSON數據JSON.SET user $ {"name":"loulan","age":18}## key是user&#xff0c;value就是一個JSON數據。其中$表示JSON數據…

Takebishi旗下智能硬件網關產品devicegateway詳細介紹

一、產品概述 DeviceGateway是由日本Takebishi公司研發的一款專業工業物聯網&#xff08;IIoT&#xff09;硬件網關產品&#xff0c;專為實現現場工業設備與云端平臺、IT系統之間的高效、安全數據傳輸而設計。作為一款可靠的硬件網關&#xff0c;DeviceGateway具有即插即用、穩…

單向鏈表反轉 如何實現

單向鏈表反轉的實現方法 ? https://www.zhihu.com/question/441865393/answer/3208578798 ? 單向鏈表反轉是數據結構中的經典問題&#xff0c;在面試和實際開發中經常遇到。以下是 多種實現方式&#xff08;包括遞歸和迭代&#xff09;&#xff0c;以 Go 語言為例。1. 單向鏈…

php+vue+Laravel音樂媒體播放及周邊產品運營平臺-nodejs-計算機畢業設計

目錄具體實現截圖課程項目技術路線開發技術介紹設計思路流程PHP核心代碼部分展示詳細視頻演示/源碼獲取##項目介紹網絡技術的廣泛應用顯著地推動了生活服務的信息化進程。結合音樂流媒體與周邊產品的運營需求&#xff0c;構建一套音樂媒體播放及周邊產品運營平臺&#xff0c;成…

Python爬蟲實戰:研究xlwt 和 xlrd 庫相關技術

1. 引言 1.1 研究背景與意義 隨著電子商務的快速發展,電商平臺積累了海量的商品數據。如何從這些數據中提取有價值的信息,為商家提供決策支持,成為電商領域的重要研究方向。傳統人工采集和分析數據的方式效率低下,且容易出現錯誤。自動化數據采集與分析系統能夠通過爬蟲技…

【QGC】深入解析 QGC 配置管理

引言 在軟件開發中&#xff0c;配置管理是一項至關重要的任務&#xff0c;它能幫助我們靈活地管理應用程序的各種參數和設置。QGroundControl&#xff08;QGC&#xff09;作為一款強大的開源無人機地面站軟件&#xff0c;其配置管理系統設計精巧&#xff0c;值得我們深入學習。…

ChatGPT,從規則到強化學習

要了解 ChatGPT&#xff08;Chat Generative Pre-training Transformer&#xff09;&#xff0c;我們不得不先看看 NLP 自然語言處理&#xff08;Natural Language Processing&#xff09;。因為 ChatGPT 屬于 NLP 領域&#xff0c;而 NLP 則又是人工智能的一個分支。 那么什么…

【目標檢測之Ultralytics預測框顏色修改】

在 Ultralytics YOLOv8 中修改預測框顏色為紅色&#xff0c;以下是三種實用方案&#xff1a;方案 1&#xff1a;直接修改 plot() 方法的 colors 參數 在調用 results.plot() 時直接指定顏色參數&#xff1a; from ultralytics import YOLO# 加載模型 model YOLO("yolov8n…

讓 VSCode 調試器像 PyCharm 一樣顯示 Tensor Shape、變量形狀、變量長度、維度信息

文章目錄&#x1f3af; 目標&#xff1a;在 VS Code 調試器中自動顯示這些變量信息&#x1f50d; 原理簡介?? 其他方案的局限性? 方案一&#xff1a;重寫 __repr__? 方案二&#xff1a;向 debugpy 注冊自定義變量顯示器&#xff08;StrPresentationProvider&#xff09;? …

pip國內鏡像源一覽

以下是2025年主流pip國內鏡像源完整清單及配置指南&#xff0c;綜合多個權威來源整理的最新數據&#xff1a;一、核心鏡像源推薦&#xff08;2025年穩定可用&#xff09;?阿里云鏡像?https://mirrors.aliyun.com/pypi/simple/優勢&#xff1a;依托阿里云CDN&#xff0c;全國平…

當大模型遇見毫米波:用Wi-Fi信號做“透視”的室內語義SLAM實踐——從CSI到神經輻射場的端到端開源方案

作者 | Blossom.118 2025-07-12 關鍵詞&#xff1a;CSI-SLAM、神經輻射場、毫米波、Transformer、數字孿生、開源 ---- 1. 為什么要“無攝像頭”語義SLAM&#xff1f; ? 隱私紅線&#xff1a;歐盟GDPR 2024修訂版把“攝像頭點云”列入高風險生物特征&#xff0c;落地成本高。…

脈沖神經網絡膜電位泄漏系數學習:開啟時空動態特征提取的新篇章

脈沖神經網絡膜電位泄漏系數學習&#xff1a;開啟時空動態特征提取的新篇章 摘要 脈沖神經網絡&#xff08;Spiking Neural Networks, SNNs&#xff09;作為第三代神經網絡模型&#xff0c;憑借其事件驅動、高生物逼真度和潛在的超低功耗特性&#xff0c;已成為類腦計算與高效人…

SSRF(ctfshow)

web351-358這部分的題目都是明文的&#xff0c;按照題目要求繞過就行了<?php error_reporting(0); highlight_file(__FILE__); $url$_POST[url]; $xparse_url($url); if($x[scheme]http||$x[scheme]https){ if(!preg_match(/localhost|127\.0\.|\。/i, $url)){ $chcurl_ini…

亞矩陣云手機:重構物流供應鏈,讓跨境包裹“飛”得更快更準

在跨境電商“時效即生命”的競爭中&#xff0c;物流信息滯后、清關效率低下、成本居高不下已成為商家最頭疼的“三座大山”。傳統模式下&#xff0c;人工更新物流狀態耗時易錯&#xff0c;跨境包裹常因清關延誤遭客戶投訴&#xff0c;而高昂的物流成本更直接吞噬利潤。亞矩陣云…

HTML(5) 代碼規范

HTML(5) 代碼規范 引言 HTML(HyperText Markup Language)是一種用于創建網頁的標準標記語言。HTML5 作為最新的 HTML 標準,自 2014 年正式發布以來,已經成為了構建現代網頁應用的基礎。本文將詳細介紹 HTML5 代碼規范,包括結構、語法、屬性以及最佳實踐等內容,旨在幫助…

【PTA數據結構 | C語言版】順序棧的3個操作

本專欄持續輸出數據結構題目集&#xff0c;歡迎訂閱。 文章目錄題目代碼題目 請編寫程序&#xff0c;將 n1 個整數順序壓入容量為 n 的棧&#xff0c;隨后執行 n1 次取頂并出棧的操作。 輸入格式&#xff1a; 輸入首先在第一行給出正整數 n&#xff08;≤10^4 &#xff09;&a…

使用Pycharm集成開發工具遠程調試部署在虛擬機上的flask項目:超級詳細的完整指南

本文將詳細介紹如何通過PyCharm Professional版遠程調試部署在虛擬機(這里以Ubuntu為例)中的Flask項目。這種開發方式特別適合需要在接近生產環境調試的場景。 虛擬機網絡配置 這里用到的是VMware的NAT&#xff0c;即網絡地址轉換模式&#xff0c;要保證你Linux虛擬機的IP&…

UE制作的 AI 交互數字人嵌入到 Vue 開發的信息系統中的方法和步驟

要將 UE(Unreal Engine,虛幻引擎)制作的 AI 交互數字人嵌入到 Vue 開發的信息系統首頁中運行,可以參考以下方法步驟以及涉及的軟件工具: 準備工作 軟件工具 Unreal Engine:用于創建和編輯 AI 交互數字人,需要在 UE 中完成數字人的建模、綁定骨骼、添加 AI 交互邏輯等工…