Solon AI MCP Server 入門:Helloworld (支持 java8 到 java24。國產解決方案)

目前網上能看到的 MCP Server 基本上都是基于 Python 或者 nodejs ,雖然也有 Java 版本的 MCP SDK,但是鮮有基于 Java 開發的。 作為Java 開發中的國產頂級框架 Solon 已經基于 MCP SDK 在進行 Solon AI MCP 框架開發了,本文將使用 Solon AI MCP 做一個簡單的 MCP Server 入門。

引入依賴

Solon AI MCP 是 Solon AI 最新增加的特性。支持 Mcp Server 和 Mcp Client,且支持 Java 8 到 Java 24。最新的版本號為 3.2.0(隨 Solon 的版號)。

<dependency><groupId>org.noear</groupId><artifactId>solon-ai-mcp</artifactId><version>3.2.0</version>
</dependency>

開始寫工具

solon-ai-mcp 支持多端點的架構,可以手動構建端點,或者注解構建端點(@McpServerEndpoint)。再使用 @ToolMapping 注解編寫工具,就像開發 MVC 一樣簡單和熟悉。

  • @ToolMapping 注解標記這個方法是一個工具映射,通過 description 屬性告訴大模型這個工具是做什么的,其實就是提示詞,大模型會根據自己的理解調用這個工具,所以這個描述很重要。
  • @ToolParam:從名字可以看出來,就是工具調用時需要傳什么參數
@McpServerEndpoint(sseEndpoint = "/sse")
public class HelloService {@ToolMapping(description = "你好世界")public String hello(@ToolParam(description = "名字") String name) throws SQLException {return "hello " + name;}
}

這樣就可以了。啟動時就會自動注冊。并且打印基本的信息:

用客戶端做個單測(調用這個工具)

@Slf4j
@SolonTest(App.class)
public class HelloTest extends HttpTester {@Testpublic void hello() throws IOException {McpClientToolProvider clientToolProvider = McpClientToolProvider.builder().apiUrl("http://localhost:8080/sse").build();String rst = clientToolProvider.callToolAsText("hello", Maps.of("name", "solon"));log.warn(rst);}
}

運行單測后:

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

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

相關文章

STL之迭代器(iterator)

迭代器的基本概念 迭代器(iterator)模式又稱為游標(Cursor)模式&#xff0c;用于提供一種方法順序訪問一個聚合對象中各個元素, 而又不需暴露該對象的內部表示。或者這樣說可能更容易理解&#xff1a;Iterator模式是運用于聚合對象的一種模式&#xff0c;通過運用該模式&#…

Android系統通知機制深度解析:Framework至SystemUI全鏈路剖析

1. 前言 在Android 13的ROM定制化開發中&#xff0c;系統通知機制作為用戶交互的核心組件&#xff0c;其實現涉及Framework層到SystemUI的復雜協作。本文將深入剖析從Notification發送到呈現的全鏈路流程&#xff0c;重點解析關鍵類的作用機制及系統服務間的交互邏輯&#xff…

UE5角色狀態機中跳躍落地移動銜接問題

UE5系列文章目錄 文章目錄 UE5系列文章目錄前言一、狀態機設置二、主要藍圖 前言 先說說遇到的問題&#xff0c;在我按空格鍵跳躍落地以后&#xff0c;角色落地再按WSAD鍵移動就出現了畫面中角色抽搐的情況 一、狀態機設置 在Unreal Engine 5中創建角色時&#xff0c;處理跳…

使用SVM對心臟數據是否患病進行分類預測

作者簡介 杜嘉寶&#xff0c;男&#xff0c;西安工程大學電子信息學院&#xff0c;2024級研究生 研究方向&#xff1a;變壓器故障預警與檢測 電子郵件&#xff1a;djb857497378gmail.com 王子謙&#xff0c;男&#xff0c;西安工程大學電子信息學院&#xff0c;2024級研究生&a…

Node做BFF中間層架構優化前端開發體驗并提升系統整體性能。

文章目錄 1. BFF 層的定位2. 技術選型3. 架構設計3.1 分層設計3.2 示例架構 4. 核心功能實現4.1 數據聚合4.2 權限校驗4.3 緩存優化 5、實戰示例1. 場景說明2. ECharts 數據格式要求3. BFF 層實現步驟3.1 接收前端參數3.2 調用后端服務獲取數據 4. 前端使用 總結 在使用 Node.j…

文件系統 軟硬連接

&#x1f33b;個人主頁&#xff1a;路飛雪吖~ &#x1f320;專欄&#xff1a;Linux 目錄 一、理解文件系統 &#x1f320;磁盤結構 二、軟硬連接 &#x1f31f;軟硬鏈接 &#x1f320;軟鏈接&#xff1a; &#x1f320;硬鏈接&#xff1a; &#x1f31f;理解軟硬鏈接的應…

單片機 | 基于51單片機的自動循跡小車設計

以下是一個基于51單片機的自動循跡小車設計詳解,包含原理、公式和完整代碼: 一、系統原理 核心模塊: 傳感器:紅外對管(TCRT5000)x4主控芯片:STC89C52RC(51單片機)電機驅動:L298N驅動模塊電源:7.4V鋰電池(電機) + 5V穩壓(單片機)工作原理: 紅外對管發射紅外線,…

2025.04.17【Stacked area】| 生信數據可視化:堆疊區域圖深度解析

文章目錄 生信數據可視化&#xff1a;堆疊區域圖深度解析堆疊面積圖簡介為什么使用堆疊面積圖如何使用R語言創建堆疊面積圖安裝和加載ggplot2包創建堆疊面積圖的基本步驟示例代碼 解讀堆疊面積圖堆疊面積圖的局限性實際應用案例示例&#xff1a;基因表達量隨時間變化 結論 生信…

基于單片機的智能養生油炸爐系統設計與實現

標題:基于單片機的智能養生油炸爐系統設計與實現 內容:1.摘要 本文針對傳統油炸爐功能單一、無法滿足現代養生需求的問題&#xff0c;設計并實現了基于單片機的智能養生油炸爐系統。通過采用STC89C52單片機作為控制核心&#xff0c;結合溫度傳感器、液位傳感器、繼電器等硬件&…

QML與C++:基于ListView調用外部模型進行增刪改查(附自定義組件)

目錄 引言相關閱讀項目結構文件組織 核心技術實現1. 數據模型設計聯系人項目類 (datamodel.h)數據模型類 (datamodel.h)數據模型實現 (datamodel.cpp) 2. 主程序入口點 (main.cpp)3. 主界面設計 (Main.qml)4. 聯系人對話框 (ContactDialog.qml)5. 自定義組件CustomTextField.qm…

【MySQL】事務ACID理解記憶

事務的 ACID 特性詳解 數據庫中的 事務&#xff08;Transaction&#xff09; 是一組操作的集合&#xff0c;這些操作要么全部執行&#xff0c;要么全部不執行。為了保證事務可靠執行&#xff0c;必須滿足 ACID 四大特性&#xff1a; 特性英文縮寫簡要說明原子性Atomicity事務…

MYSQL “Too Many Connections“ 錯誤解決

1.查詢當前連接數 show status like "Threads_connected"; 2.查詢數據庫最大連接數 show variables like "max_connections" 3.查詢所有活動連接 show processlist; 4.根據查詢結果觀察是否有長時間未被釋放的連接 參數解釋 : 字段說明id連接的唯一…

Python爬蟲實戰:基于 Scrapy 框架的微博數據爬取研究

一、引言 1.1 研究背景 在當今數字化時代,社交媒體已成為信息傳播和公眾交流的重要平臺。微博作為國內極具影響力的社交媒體之一,每日產生海量的用戶生成內容,涵蓋新聞資訊、社交互動、娛樂八卦、熱點話題討論等多個領域。這些數據不僅反映了公眾的興趣偏好、情感態度和社…

貓咪如廁檢測與分類識別系統系列【九】視頻檢測區域在線繪制+支持攝像頭+網絡攝像頭+整體構建【上】

前情提要 家里養了三只貓咪&#xff0c;其中一只布偶貓經常出入廁所。但因為平時忙于學業&#xff0c;沒法時刻關注牠的行為。我知道貓咪的如廁頻率和時長與健康狀況密切相關&#xff0c;頻繁如廁可能是泌尿問題&#xff0c;停留過久也可能是便秘或不適。為了更科學地了解牠的如…

【AI插件開發】Notepad++ AI插件開發實踐:支持多平臺多模型

引言 上篇文章我們的Notepad插件介紹到Dock窗口集成&#xff0c;本篇將繼續完善插件功能&#xff0c;主要包括兩個部分&#xff1a; 支持多平臺、多模型支持多種授權驗證、接口類型 一、多平臺 原先的配置項很簡單&#xff1a; // PluginConf.h class PlatformConf { publ…

【C#】Socket通信的使用

在C#中&#xff0c;Socket通信是一種用于實現網絡通信的底層技術。通過Socket&#xff0c;程序可以在網絡上與其他設備進行數據交換。以下是如何使用C#中的System.Net.Sockets命名空間來實現Socket通信的詳細步驟。 1. Socket通信的基本概念 Socket: 一個Socket是網絡通信的端…

2024年第九屆團隊程序設計天梯賽c++題解L1-L3-1(附PTA網址)

L1-1 編程解決一切 5分 L1-097 編程解決一切 - 團體程序設計天梯賽-練習集 (pintia.cn)https://pintia.cn/problem-sets/994805046380707840/exam/problems/type/7?problemSetProblemId1781658570803388416 #include<bits/stdc.h> #define int long long using namesp…

ICMAN防水觸摸芯片 - 復雜環境下精準交互,提升觸控體驗

▍核心優勢 ◆ 超強抗干擾能力 ◆ 工業級設計&#xff0c;一致性和穩定性好 ▍提供場景化解決方案 【智能廚電矩陣】抽油煙機檔位調節 | 電磁爐火力觸控 | 洗碗機模式切換 【衛浴設備方案】淋浴房霧化玻璃控制 | 智能馬桶觸控面板 | 浴缸水位感應 【工業控制應用】儀器儀…

Golang|抽獎相關

文章目錄 抽獎核心算法生成抽獎大轉盤抽獎接口實現 抽獎核心算法 我們可以根據 單商品庫存量/總商品庫存量 得到每個商品被抽中的概率&#xff0c;可以想象這樣一條 0-1 的數軸&#xff0c;數軸上的每一段相當于一種商品&#xff0c;概率之和為1。 抽獎時&#xff0c;我們會生…

OpenCV 圖形API(43)顏色空間轉換-----將 BGR 圖像轉換為 LUV 色彩空間函數BGR2LUV()

操作系統&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 編程語言&#xff1a;C11 算法描述 將圖像從BGR色彩空間轉換為LUV色彩空間。 該函數將輸入圖像從BGR色彩空間轉換為LUV。B、G和R通道值的傳統范圍是0到255。 輸出圖像必須是8位無符…