精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Spring AI 框架中如何集成 MCP?

人工智能
Spring AI MCP 為模型上下文協議提供 Java 和Spring 框架集成、它使 SpringAI 應用程序能夠通過標準化的接口與不同的數據源和工是進行交互,支持同步和異步通信模式。

SpringAI MCP介紹

Spring AI MCP 為模型上下文協議提供 Java 和Spring 框架集成、它使 SpringAI 應用程序能夠通過標準化的接口與不同的數據源和工是進行交互,支持同步和異步通信模式。整體架構如下:

圖片圖片

Spring Al 通過以下 Spring Boot 啟動器提供 MCP 集成:

客戶端啟動器

  • spring-ai-starter-mcp-client 核心啟動器提供 STDIO 和基于 HTTP 的 SSE 支持。
  • spring-ai-starter-mcp-client-webflux 基于WebFlux的SSE流式傳輸實現

服務端啟動器

  • spring-ai-starter-mcp-server 核心服務器具有 STDIO 傳輸支持
  • spring-ai-starter-mcp-server-webmvc 基于Spring MVC的SSE流式傳輸實現
  • spring-ai-starter-mcp-server-webflux 基于WebFlux的SSE流式傳輸實現

基于stdio標準流

MCP 服務端

基于 stdio 的實現是最常見的 MCP客戶端方案,它通過標準輸入輸出流與 MCP 服務器進行通信,這種方式簡單直觀,能夠直接通過進程間通信實現數據交互,避免了額外的網絡通信開銷,特別適用于本地部署的MCP服務器,可以在司一臺機器上啟動 MCP 服務器進程,與客戶端無縫對接。

引入依賴

<dependency>
  <groupId>org.springframework.ai</groupId>
  <artifactId>spring-ai-mcp-server-spring-boot-starter</artifactId>
  <version>1.0.0-M6</version>
</dependency>

配置MCP服務端

spring:
  application:
    name:mcp-server
main:
    web-application-type:none# 必須禁用web應用類型
    banner-mode:off# 禁用banner
ai:
    mcp:
      server:
        stdio:true# 啟用stdio模式
        name:mcp-server# 服務器名稱
        version:0.0.1# 服務器版本

實現MCP工具

@Tool 是 SpingAI MCP框架中用于快速暴露業務能力為AI 工具的核心注解,該注解實現Java方法與MCP協議工具的自動銀蛇,并且可以通過注解的屬性description,有助于人工智能模型根據用戶輸入的信息決定是否調用這些工具,并返回相應的結果.

@Service
public class OpenMeteoService {

    @Tool(description = "根據經緯度獲取天氣預報")
    public String getAirQuality(
        @ToolParameter(description = "緯度,例如:39.9042") String latitude,
        @ToolParameter(description = "經度,例如:116.4074") String longitude) {

        // 模擬數據,實際應用中應調用真實API
        return "當前位置(緯度:" + latitude + ",經度:" + longitude + ")的天氣信息:\n 多云轉陰";
    }
}

這個工具方法主要是用來根據經緯度獲取天氣預報的,這里為了方便演示,寫了模擬數據

注冊MCP工具

最后向 MCP 服務注冊剛剛寫的工具:

@Bean
    public ToolCallbackProvider serverTools(OpenMeteoService openMeteoService) {
        return MethodToolCallbackProvider.builder().toolObjects(openMeteoService).build();
    }

這段代碼定義了一個 Spring 的 Bean,用于將查詢天氣服務 OpenMeteoService 中所有用 @Tool 注解標記的方法注冊為工具,供 AI 模型調用。

ToolCallbackProvider 是Spring Al 中的一個接口,用于定義工具發現機制,主要負責將那些使用 @Tool 注解標記的方法轉換為工具回調對象,并提供給 ChatClient 或ChatModel 使用,以便 AI 模型能夠在對話過程中調用這些工具。

MCP 客戶端

引入依賴

<dependency>
  <groupId>org.springframework.ai</groupId>
  <artifactId>spring-ai-mcp-client-spring-boot-starter</artifactId>
  <version>1.0.0-M6</version>
</dependency>

配置MCP服務器

因為服務端是通過 stdio 實現的,需要在 application.yml 中配置MCP服務器的一些參數:

spring:
  ai:
    mcp:
      client:
        stdio:
          # 指定MCP服務器配置文件
          servers-configuration: classpath:/mcp-servers-config.json
  mandatory-file-encoding: UTF-8

其中 mcp-servers-config.json 的配置如下:

{
  "mcpServers": {
    "weatherServer": {
      "command": "java",
      "args": [
        "-Dspring.ai.mcp.server.stdio=true",
        "-Dspring.main.web-application-type=none",
        "-Dlogging.pattern.cnotallow=",
        "-jar",
        "/Users/gulihua/Documents/mcp-server/target/mcp-server-0.0.1-SNAPSHOT.jar"
      ],
      "env": {}
    }
  }
}

這個配置文件設置了MCP客戶端的基本配置,包括 Java 命令參數,服務端 jar 包的絕對路徑等,上述的 JSON 配置文件也可以直接寫在 apllication.yaml 里,效果是一樣的。

mcp:
      client:
        stdio:
         connections:
           server1:
             command:java
             args:
               --Dspring.ai.mcp.server.stdio=true
               --Dspring.main.web-application-type=none
               --Dlogging.pattern.cnotallow=
               --jar
               -/Users/gulihua/Documents/mcp-server/target/mcp-server-0.0.1-SNAPSHOT.jar

客戶端我們使用問里巴巴的通義千問模型,所以引入 spring-ai-alibaba-starter 依賴,如果使用的是其他的模型,也可以使用對應的依賴項,比加 openAI 引入  sprine-ai-openai-spring-boot-starter 這個依賴就行了

配置大模型的密鑰等信息:

spring:
  ai:
    dashscope:
      api-key: ${通義千問的key}
      chat:
        options:
          model: qwen-max

初始化聊天客戶端

@Bean
public ChatClient initChatClient(ChatClient.Builder chatClientBuilder,
                                 ToolCallbackProvider mcpTools) {
    return chatClientBuilder
    .defaultTools(mcpTools)
    .build();
}

該代碼定義了一個 spring pean,用于初始化一個AI聊天客戶端,里面有兩個參數,chatcient.Buinider 是 SpnngAI 提供的AI聊天客戶端構建器,用于構建 ChatCient實例,是由 Spring AI 自動注入的,另一個是 ToolCallbackProvider,用于從MCP客服端發現并獲取AI工具。

然后就可以通過這個 chatclient 去調用了:

chatClient.prompt()
.user(request.getContent())
.call()
.content();

基于SSE

MCP服務端

除了基于 stdio 的實現外,Spring Al還提供了基于 Server-Sent vents(SSE)的 MCP客戶端方案。相較于 stdio方式,SSE 更適用于遠程部署的 MCP 服務器,客戶端可以通過標準 HTTP 協議與服務器建立連接,實現單向的實時數據推送。基于 SSE的 MCP 服務器支持被多個客戶端的遠程調用。

引入依賴

<dependency>
  <groupId>org.springframework.ai</groupId>
  <artifactId>spring-ai-mcp-server-webflux-spring-boot-starter</artifactId>
  <version>1.0.0-M6</version>
</dependency>

配置MCP服務端

server:
  port:8090

spring:
application:
    name:mcp-server
ai:
    mcp:
      server:
        name:mcp-server# MCP服務器名稱
        version:0.0.1   # 服務器版本號

除了引入的依賴包不一樣,以及配置文件不同,其他的不需要修改。

MCP 客戶端

引入依賴

<dependency>
  <groupId>org.springframework.ai</groupId>
  <artifactId>spring-ai-mcp-client-webflux-spring-boot-starter</artifactId>
  <version>1.0.0-M6</version>
</dependency>

配置MCP服務器

因為服務端是通過SSE實現的,需要在 application.yml 中配置MCP服務器的URL端口:

spring:
  ai:
    mcp:
      client:
        enabled:true
        name:mcp-client
        version:1.0.0
        request-timeout:30s
        type:ASYNC# 類型同步或者異步
        sse:
          connections:
            server1:
              url:http://localhost:8090

和MCP服務端的修改一樣,除了依賴和配置的修改,其他的也不需要調整

注意

除了上面基礎的用法和配置,還應該考慮以下幾個方面:

  • 工具設計

每個工具方法應具備明確的功能定義及參數說明。

使用 @Tool 注解提供清晰、完整的工具描述,便于自動生成文檔或展示給前端。

使用 @ToolParameter 注解詳細說明每個參數的用途,提升使用者的理解與正確性。

  • 錯誤處理

應全面捕獲并妥善處理可能出現的異常,防止服務崩潰。

返回結構化、具備可讀性的錯誤信息,便于客戶端識別錯誤原因并進行相應處理。

  • 性能優化

對于可能耗時的任務,建議使用異步處理機制,避免阻塞主線程,

設置合理的超時時間,防止客戶端長時間等待,提高系統響應性和穩定性。

  • 安全性考慮

對涉及敏感資源或關鍵操作的工具方法,應添加嚴格的權限校驗邏輯

禁止在工具方法中執行高風險操作(如執行任意系統命令),以防止安全洞。

  • 部署策略

Stdio 模式:適用于嵌入式場景,可作為客戶端的子進程運行,便于集成與資源控制。

SSE模式:更適合部署為獨立服務,支持多個客戶端同時訪問,適用于需要持續通信的遠程調用場景。

責任編輯:武曉燕 來源: SevenCoding
相關推薦

2025-03-28 09:33:11

2025-07-14 07:43:01

模型上下文協議MCP人工智能

2025-04-29 09:07:21

2025-10-27 08:31:08

2025-04-29 08:15:41

2025-05-14 03:20:00

AgenticAIMCP

2025-04-17 00:00:00

MCP上下文協議Java

2009-06-19 16:25:34

Flex與Spring

2025-10-28 01:33:00

AI 集成MCP 協議OAuth2

2025-08-08 09:15:00

2025-08-21 07:07:49

2025-07-24 00:45:00

AIMCP服務端

2009-06-01 16:18:30

SpringJPA集成

2025-04-25 00:00:00

2025-09-24 10:21:11

2025-11-05 07:47:49

2009-06-19 15:52:58

Struts和Spri

2025-04-03 07:06:35

2025-04-29 00:04:00

2025-09-01 08:46:12

點贊
收藏

51CTO技術棧公眾號

91sa在线看| 日韩理论片久久| 国产精品久久久久久久久电影网| www.激情五月| 国产精品久久久久久模特| 亚洲欧美中文日韩在线v日本| 777视频在线| 欧美videossex另类| 2024国产精品| 亚洲在线免费看| 日韩人妻精品中文字幕| 在线国产一区| 亚洲最新视频在线| 国产伦精品一区二区三区88av| 黄色成人免费网| 亚洲乱码国产乱码精品精的特点 | 日韩中文字幕视频| 91成人在线观看喷潮蘑菇| 成人在线视频播放| 性欧美大战久久久久久久久| 中文精品一区二区三区| 三级在线电影| 成人黄色av电影| 成人性生交xxxxx网站| 无码人妻av免费一区二区三区| 影音先锋日韩在线| 色阁综合伊人av| 国产美女喷水视频| 精品精品国产三级a∨在线| 欧美日韩视频一区二区| 不卡影院一区二区| 成人三级高清视频在线看| 亚洲日本va在线观看| 亚洲乱码国产乱码精品天美传媒| 毛片免费在线观看| 9l国产精品久久久久麻豆| 99在线看视频| 精品人妻一区二区三区四区不卡| 麻豆国产欧美日韩综合精品二区| 日本一区二区不卡| 日韩成人一区二区三区| 一区免费视频| 久久免费视频在线| 国产一级生活片| 国产精品大片免费观看| 欧美成人午夜激情在线| 男的操女的网站| 久久精品青草| 蜜臀久久99精品久久久无需会员 | 欧美成人69av| 久久中文字幕一区| 国产极品国产极品| 欧美日本一区| 欧美激情亚洲国产| 国产在线综合网| 亚洲无毛电影| 久久久久久久97| 中日韩精品视频在线观看| 亚洲国产裸拍裸体视频在线观看乱了中文| 久久久久成人网| 精品无码人妻一区二区三区| 亚洲高清激情| 欧美在线视频导航| 亚洲欧美一二三区| 青青草97国产精品免费观看| 国产日韩欧美在线播放| 亚洲综合网av| 国产成人精品免费在线| 国产综合精品一区二区三区| 日韩毛片在线一区二区毛片| 国产日韩亚洲欧美综合| 亚洲精品8mav| 97caopron在线视频| 亚洲一区二区三区不卡国产欧美| 成人性生活视频免费看| 中文字幕人成乱码在线观看 | 禁断一区二区三区在线| 在线观看中文字幕亚洲| 51精品免费网站| 亚洲二区精品| 国产精品免费视频久久久| 国产精品自偷自拍| av在线播放不卡| 日韩免费一区二区三区| 国产精品一区二区三区视频网站| 亚洲一二三区不卡| 无遮挡又爽又刺激的视频 | 欧美视频第二页| 亚洲男人天堂2021| 日日天天久久| 日韩在线播放av| 日本熟妇乱子伦xxxx| 久久一本综合频道| 亚洲一区久久久| 国内在线精品| 一区二区三区产品免费精品久久75| 国产乱子伦农村叉叉叉| 亚洲青青一区| 日韩电影免费在线观看中文字幕| 五月天精品在线| 国产精品v一区二区三区| 国产精品爱久久久久久久| 国产成人精品一区二区无码呦 | 欧美不卡在线一区二区三区| 欧美三级电影一区二区三区| 午夜欧美视频在线观看| 欧美特黄aaa| 天堂99x99es久久精品免费| 超碰91人人草人人干| 男人天堂av在线播放| 国产精品一区二区在线观看不卡| 日本高清不卡一区二区三| 四虎影院观看视频在线观看| 欧美专区在线观看一区| 手机在线成人av| 一区二区电影在线观看| 国产精品专区一| 九色网友自拍视频手机在线| 亚洲第一综合色| www.亚洲自拍| 日韩欧美1区| 国产成人极品视频| 天天爱天天干天天操| 亚洲卡通动漫在线| 亚洲欧美日韩精品一区| 精品国产乱码久久久| 久久青草福利网站| 国产av无码专区亚洲av| 国产精品国产三级国产aⅴ入口 | 一本色道久久综合狠狠躁篇怎么玩 | 一区二区三区在线视频观看58 | 自拍偷拍亚洲精品| 中文字幕在线欧美| 91亚洲精品乱码久久久久久蜜桃| 女人帮男人橹视频播放| 五月亚洲婷婷| 久久777国产线看观看精品| 国产欧美熟妇另类久久久 | av毛片在线免费观看| caoporn国产一区二区| 精品人妻人人做人人爽| 欧美国产亚洲精品| 久久国产精品影视| 国产jzjzjz丝袜老师水多| 中文字幕在线不卡国产视频| 久久国产精品国产精品| 99re久久最新地址获取| 国产精品一区二区三区久久久 | 中文字幕在线观看一区二区| 午夜在线观看av| 色777狠狠狠综合伊人| 国产精品欧美一区二区| 黄页视频在线播放| 欧美一区二区黄| 久久久一区二区三区四区| 福利一区福利二区| 欧美在线一区视频| 香蕉视频一区二区三区| 国产成人精品在线播放| av在线收看| 在线不卡中文字幕播放| 日韩成人毛片视频| 成人激情黄色小说| 妺妺窝人体色www在线小说| 天天躁日日躁狠狠躁欧美巨大小说| 69精品小视频| av影片在线看| 91精选在线观看| 国产精品二区一区二区aⅴ| 91小视频在线免费看| 精品少妇无遮挡毛片| 欧美独立站高清久久| 99视频免费观看| 久久青草伊人| 中文字幕日韩av综合精品| 国产乱码一区二区| 婷婷久久综合九色综合伊人色| 国产精品无码一区二区三区免费| 日韩国产高清在线| a级网站在线观看| 欧美天堂影院| 国产精品久久久久久搜索| 制服丝袜在线播放| 日韩精品免费在线播放| 亚洲综合五月天婷婷丁香| 亚洲国产精品视频| 欧美 日韩 成人| 国产成人在线视频播放| 成人羞羞国产免费网站| 国产精品久久久久无码av| 国产一区二区不卡视频| 日韩经典一区| 久久久久久久久久久免费| 国产福利在线观看| 日韩欧美亚洲国产精品字幕久久久 | 色呦呦国产精品| 69av.com| 欧美国产精品中文字幕| 成熟妇人a片免费看网站| 青青国产91久久久久久| 亚洲一区二区三区av无码| 日韩免费久久| 欧美日本韩国一区二区三区| 精品一区二区三区四区五区| 日产精品久久久一区二区福利| dy888亚洲精品一区二区三区| 亚洲免费成人av电影| 国内老熟妇对白hdxxxx| 欧美色涩在线第一页| 99热在线观看免费精品| 一区二区三区免费网站| 亚洲黄色网址大全| 久久午夜羞羞影院免费观看| 国产精品偷伦视频免费观看了| 日本美女一区二区三区视频| 波多野结衣家庭教师在线| 欧美在线免费一级片| 午夜精品福利一区二区| 亚洲精品播放| 国产精品国产三级国产专区53 | 欧美日韩电影一区二区三区| 中文字幕区一区二区三| 成人深夜直播免费观看| 欧美日韩尤物久久| 全球成人中文在线| 麻豆免费版在线观看| 欧美激情18p| 91一区二区三区在线| xxx欧美精品| 在线国产91| 国产一区二区欧美日韩| 精品av中文字幕在线毛片| 日韩不卡在线观看| 日本精品久久久久| 亚洲丁香婷深爱综合| 不卡av中文字幕| 欧美不卡一二三| 亚洲精品911| 日韩欧美中文字幕制服| 国产女人18毛片水真多| 欧美一级久久久久久久大片| 国产精品无码AV| 欧美一区欧美二区| 一本色道久久综合熟妇| 欧美久久久久久蜜桃| 亚洲中文字幕在线一区| 69成人精品免费视频| 国产又粗又长又黄| 欧美一区二区三区在线电影| 国产日韩一级片| 精品国产麻豆免费人成网站| 国精产品乱码一区一区三区四区| 亚洲第一区第二区| 亚洲欧美综合一区二区| 亚洲理论在线a中文字幕| 国产一级免费在线观看| 中文字幕九色91在线| 五月婷婷在线视频| 久久综合色影院| 丰乳肥臀在线| 欧美亚洲免费电影| 久久久人成影片一区二区三区在哪下载| 日韩av电影在线网| 欧美天堂一区| 亚洲综合一区二区不卡| 美国一区二区| 欧美一级二级三级九九九| 99久久激情| 日本香蕉视频在线观看| 国产亚洲午夜| 亚洲欧美自拍另类日韩| 国产成人在线视频播放| 三级黄色片网站| 国产精品少妇自拍| 欧美精品99久久久| 日韩欧美中文免费| 在线观看中文字幕网站| 欧美草草影院在线视频| 男人久久精品| 欧美超级乱淫片喷水| 黄色在线观看www| 国产精品久久久久不卡| 99国产精品久久一区二区三区| 农村寡妇一区二区三区| 亚洲va在线| 成年人视频观看| 久久精品国产久精国产爱| zjzjzjzjzj亚洲女人| 国产色产综合色产在线视频| 欧美日韩人妻精品一区二区三区| 欧美午夜片欧美片在线观看| 亚洲最新av网站| 日韩精品一区二区视频| 快射av在线播放一区| 91成人精品网站| www.久久爱.com| 欧美日韩三区四区| 欧美成熟视频| 亚洲老女人av| av电影在线观看完整版一区二区| 色偷偷男人天堂| 日韩欧美中文免费| 亚洲精品一区二区三区不卡| 在线视频一区二区| 午夜影院一区| av在线不卡一区| 99久久.com| 在线免费av播放| 91视频.com| 国产主播在线观看| 欧美精品日韩精品| 国产女人在线视频| 4444欧美成人kkkk| aaa国产精品视频| 中国老女人av| 蜜臀久久99精品久久久画质超高清| 亚洲图片综合网| 亚洲国产精品欧美一二99| 国产毛片一区二区三区va在线| 亚洲伦理中文字幕| 99riav视频在线观看| 91gao视频| 亚洲国产精品久久久天堂| jizz18女人| 国产精品三级久久久久三级| 国产又粗又猛又爽又| 日韩精品中文字幕在线观看| 欧美gv在线观看| 成人一区二区在线| 午夜精品亚洲| 久久人人爽人人片| 18成人在线观看| 亚洲天堂999| 少妇高潮久久77777| 精品欧美日韩精品| 日韩在线观看电影完整版高清免费| 亚洲欧美成人综合| 风间由美一二三区av片| 亚洲6080在线| 色呦呦免费观看| 97精品国产91久久久久久| www国产精品| 免费不卡av在线| www.日韩精品| 日韩熟女精品一区二区三区| 日韩不卡中文字幕| 人人视频精品| 日韩性感在线| 老司机精品视频导航| 国产美女网站视频| 91精品国产全国免费观看| 成人video亚洲精品| 99久久99| 在线亚洲自拍| 亚洲精品国产一区黑色丝袜| 在线观看三级视频欧美| 日本中文字幕在线观看| 91在线观看免费| 欧美日韩一区自拍| a级一a一级在线观看| 91精品办公室少妇高潮对白| a中文在线播放| 91日韩在线播放| 国语精品一区| 中日韩精品一区二区三区| 欧美亚洲日本一区| 好操啊在线观看免费视频| 高清国产在线一区| 国产美女一区| 午夜黄色福利视频| 日韩区在线观看| 这里有精品可以观看| 一本色道久久99精品综合| 国产久卡久卡久卡久卡视频精品| 日本一二三区不卡| 自拍视频国产精品| 538任你躁精品视频网免费| 精品一卡二卡三卡| 日韩毛片精品高清免费| 日本人妻熟妇久久久久久| 日本一区二区不卡| 欧美 日韩 国产 一区| 醉酒壮男gay强迫野外xx| 欧美日韩一区精品| 草莓视频丝瓜在线观看丝瓜18| 久久国产精品亚洲va麻豆| 九九国产精品视频| 在线观看免费国产视频| 中文国产成人精品久久一| 粉嫩久久久久久久极品| 污视频网站观看| 亚洲超丰满肉感bbw| 日本不卡三区| 久久久精彩视频| 国产一区999| 国产精品乱码一区二区视频| 久久久久国产精品免费网站| 精品久久国产| 性久久久久久久久久久| 欧美乱妇23p|