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

王炸!Spring AI+MCP 三步實現(xiàn)智能體開發(fā)

開發(fā) 前端 人工智能
Model Context Protocol(MCP)模型上下文協(xié)議是一種標(biāo)準(zhǔn)化協(xié)議,它讓大模型能夠更容易地和外部的數(shù)據(jù)、工具連接起來。你可以把MCP想象成一個通用的插頭或者接口,就像USB-C一樣,不管是什么設(shè)備,只要插上這個接口,就能和電腦、充電器等連接起來。

環(huán)境:SpringBoot3.4.2

1. 簡介

1.1 什么是MCP

Model Context Protocol(MCP)模型上下文協(xié)議是一種標(biāo)準(zhǔn)化協(xié)議,它讓大模型能夠更容易地和外部的數(shù)據(jù)、工具連接起來。你可以把MCP想象成一個通用的插頭或者接口,就像USB-C一樣,不管是什么設(shè)備,只要插上這個接口,就能和電腦、充電器等連接起來。

注意,它連接的不是物理設(shè)備,而是AI模型和外部的數(shù)據(jù)源、工具等。有了MCP,AI模型就能更方便地獲取外部的信息,完成更多的任務(wù)。比如,通過MCP,AI模型可以操作電腦讀寫文件,或者模擬瀏覽器操作等。

1.2 為什么需要MCP

首先,MCP提供了一個標(biāo)準(zhǔn)化的接口,使得AI模型能夠輕松地與各種外部工具和數(shù)據(jù)源進行交互,無需為每個工具或數(shù)據(jù)源單獨開發(fā)集成代碼。

其次,MCP還解決了數(shù)據(jù)孤島問題,通過統(tǒng)一協(xié)議連接分散的數(shù)據(jù)源,使AI模型能夠?qū)崟r訪問和利用最新的數(shù)據(jù)。

總的來說,MCP就像是一個橋梁,讓AI模型與外部世界更好地連接起來,從而發(fā)揮出更大的價值和潛力。

1.3 Java與MCP架構(gòu)

  • 客戶端/服務(wù)器層:McpClient負(fù)責(zé)處理客戶端操作,而McpServer則管理服務(wù)器端協(xié)議操作。兩者都利用McpSession來進行通信管理。
  • 會話層(McpSession):通過DefaultMcpSession實現(xiàn)來管理通信模式和狀態(tài)。
  • 傳輸層(McpTransport):處理JSON-RPC消息的序列化和反序列化,并支持多種傳輸實現(xiàn)。
     

MCP Client

MCP客戶端是模型上下文協(xié)議(MCP)架構(gòu)中的關(guān)鍵組件,負(fù)責(zé)建立和管理與MCP服務(wù)器的連接。它實現(xiàn)了協(xié)議的客戶端部分,如下圖所示:

Java MCP Client ArchitectureJava MCP Client Architecture

MCP Server

MCP服務(wù)器是模型上下文協(xié)議(MCP)架構(gòu)中的基礎(chǔ)組件,它為客戶端提供工具、資源和功能。它實現(xiàn)了協(xié)議的服務(wù)器端部分,如下圖所示:

Java MCP Server ArchitectureJava MCP Server Architecture

Spring AI 提供了相對應(yīng)的Spring Boot staters來非常方便的進行 MCP 的集成。接下來,我們將詳細(xì)的完成一個完整的MCP應(yīng)用案例。

2. 實戰(zhàn)案例

2.1 服務(wù)端開發(fā)

我們將在 MCP 服務(wù)端提供2個外部功能:查詢天氣預(yù)報、獲取IP地址詳細(xì)信息。

引入依賴

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

說明:

  • 引入alibaba-starter我們將使用阿里的大模型
  • 引入mcp-server-webflux,以支持基于 Spring WebFlux 的 SSE(服務(wù)器發(fā)送事件)服務(wù)器傳輸

配置文件

spring:
  ai:
    dashscope:
      api-key: sk-xxxooo
      base-url: https://dashscope.aliyuncs.com/compatible-mode/v1
      chat:
        options:
          stream: true
          model: qwen-turbo
---
spring:
  ai:
    mcp:
      server:
        enabled: true
        name: ai_mcp_server
        version: 1.0.0
        type: ASYNC
        sse-message-endpoint: /mcp/message

以上我們就完成了基本的配置。接下來,我們需要提供2個外部工具。

工具編寫

獲取天氣預(yù)報
public class CommonTool {
  
  @Tool(description = "獲取當(dāng)前天氣預(yù)報")
  WeatherResponse getCurrentWeather(WeatherRequest request) {
    System.err.printf("準(zhǔn)備查詢【%s】天氣預(yù)報%n", request.city()) ;
    RestClient client = RestClient.create(URI.create("https://api.vvhan.com")) ;
    Map<?, ?> result = client.get()
        .uri("/api/weather?city={0}", request.city())
        .retrieve()
        .body(Map.class) ;
    try {
      return new WeatherResponse(new ObjectMapper().writeValueAsString(result)) ;
    } catch (JsonProcessingException e) {
      throw new RuntimeException(e) ;
    }
  }
  
  @Tool(description = "獲取IP地址詳細(xì)信息")
  String getIpAddressInfo(String ip) {
    System.err.printf("準(zhǔn)備查詢【%s】詳細(xì)信息%n", ip) ;
    RestClient client = RestClient.create(URI.create("https://api.vvhan.com")) ;
    Map<?, ?> result = client.get()
        .uri("/api/ipInfo?ip={0}", ip)
        .retrieve()
        .body(Map.class) ;
    try {
      return new ObjectMapper().writeValueAsString(result) ;
    } catch (JsonProcessingException e) {
      throw new RuntimeException(e) ;
    }
  }
}
注冊工具
@Configuration
public class ToolsConfig {
  @Bean
  ToolCallbackProvider tools() {
    ToolCallback[] toolCallbacks = ToolCallbacks.from(new CommonTool()) ;
    return ToolCallbackProvider.from(toolCallbacks) ;
  }
}

如上所述,我們就成功構(gòu)建了一個僅包含兩個外部工具的MCP服務(wù)器。

啟動服務(wù)

圖片圖片

  • 默認(rèn)開啟了一個/see端點(其實,還有一個消息傳輸?shù)亩它c)
  • 提示注冊了2個工具(也不知道給個空格的)

接下來,我們進行客戶端的開發(fā)。

2.2 客戶端開發(fā)

引入依賴

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

注意,這里引入的是mcp-client包。

配置文件

spring:
  ai:
    mcp:
      client:
        enable: true
        name: ai-mcp-client
        initialized: true
        type: ASYNC
        sse:
          connections:
            server1:
              url: http://localhost:8888

我們配置了一個MCP服務(wù)端地址,你可以配置多個按照上面的方式。

完成以上的配置后,我們就可以配置ChatClient,然后進行接口的調(diào)用了。

@RestController
@RequestMapping("/tools")
public class ToolController {
  private final ChatClient chatClient ;
  public ToolController(ChatClient.Builder aiClientBuilder, ToolCallbackProvider mcpTools) {
    this.chatClient = aiClientBuilder
        .defaultTools(mcpTools)
        .build() ;
  }
  
  @GetMapping("/weather")
  public ResponseEntity<String> getCurrentWeather(String prompt) {
    System.err.println(prompt) ;
    String response = this.chatClient
        .prompt(prompt)
        .call().content() ;
    return ResponseEntity.ok(response) ;
  }
  
  @GetMapping("/ip")
  public ResponseEntity<String> getIpAddressInfo(String prompt) {
    System.err.println(prompt) ;
    String response = this.chatClient
        .prompt(prompt)
        .call().content() ;
    return ResponseEntity.ok(response) ;
  }
}

在構(gòu)造函數(shù)中,我們直接注入了ToolCallbackProvider,當(dāng)我們系統(tǒng)啟動時會自動的從配置的服務(wù)端進行查找有哪些可用的工具。

啟動服務(wù)

控制臺將輸出如下從MCP Server獲取的工具:

i.m.s.M Line:151 - Received JSON message: 
{
  "jsonrpc": "2.0",
  "id": "66d12dae-1",
  "result": {
    "tools": [
      {
        "name": "getCurrentWeather",
        "description": "獲取當(dāng)前天氣預(yù)報",
         "inputSchema": {
           "type": "object",
           "properties": {
             "request": {
               "type": "object",
               "properties": {
                 "city": {
                   "type": "string",
                   "description": "城市"
                 }
               },
               "required": ["city"]
             }
           },
           "required": ["request"],
           "additionalProperties": false
         }
       },
       {
         "name": "getIpAddressInfo",
         "description": "獲取IP地址詳細(xì)信息",
         "inputSchema": {
           "type": "object",
           "properties": {
             "ip": {
               "type": "string"
             }
           },
           "required": ["ip"],
           "additionalProperties": false
         }
       }
    ]
  }
}

測試結(jié)果

圖片圖片

圖片圖片

成功!!!

責(zé)任編輯:武曉燕 來源: Springboot實戰(zhàn)案例源碼
相關(guān)推薦

2025-05-08 09:20:15

2025-06-19 03:30:00

智能體DifyMCP

2023-05-06 08:23:36

ChatGPT自然語言技術(shù)

2025-05-09 08:19:13

2025-08-01 09:03:06

Spring重試機制網(wǎng)絡(luò)

2024-06-28 07:42:18

2013-12-06 13:00:26

TechEd2013Office 365Visual Stud

2010-02-26 16:16:15

2010-04-20 20:53:35

實現(xiàn)網(wǎng)絡(luò)負(fù)載均衡

2010-08-12 10:10:37

FlexMapABC

2025-04-28 08:29:04

AIMCP智能體

2009-11-10 12:55:26

VB.NET三維模型

2021-03-02 07:02:45

Linux操作系統(tǒng)

2025-07-22 02:00:00

Dify智能體AI

2009-11-16 13:04:04

PHP上傳文件代碼

2010-05-17 09:49:19

DataCore虛擬化

2025-08-08 09:15:00

2025-06-06 02:11:00

MCP服務(wù)器AI

2020-11-04 00:00:29

Kerberos協(xié)議身份

2011-07-13 09:54:22

VMware故障vSphere
點贊
收藏

51CTO技術(shù)棧公眾號

久久丝袜美腿综合| 日韩在线观看中文字幕| 不卡高清视频专区| 久久综合色88| 欧美日韩久久婷婷| 午夜伦理在线视频| 成人性生交大片免费| 久久人人爽人人爽人人片av高请| 亚洲av成人片无码| 欧美片第一页| 日韩久久一区二区| 国产在线日韩在线| 欧美日韩三级在线观看 | 99视频精品全部免费在线视频| 欧美日韩国产综合久久| 日韩欧美视频免费在线观看| 日本久久一级片| 日本欧洲一区二区| 国产亚洲人成网站在线观看| 手机av在线免费| 91欧美日韩一区| 性猛交ⅹxxx富婆video| 久草在线中文最新视频| 中文天堂在线一区| 成人自拍视频网站| 午夜视频网站在线观看| 亚洲国产精品久久久天堂| 亚洲精品国产美女| 国产三级三级三级看三级| 成人av福利| 久久久久久久久久久黄色| 91亚洲国产成人精品性色| 1级黄色大片儿| 首页亚洲中字| 日韩视频免费直播| 人妻无码视频一区二区三区| 丝袜在线视频| 久久久久高清精品| 国产精品久久久久久久久久99| 538精品在线视频| 欧美人妖在线| 亚洲成年网站在线观看| 国产综合香蕉五月婷在线| 国产污视频在线看| 欧美日本一区二区视频在线观看 | 欧美丰满熟妇bbb久久久| 国产激情久久| 欧美在线色视频| 一区二区在线播放视频| 91香蕉视频在线观看视频| 午夜小视频在线播放| 国产精品888| 亚洲精品免费在线视频| 91女人18毛片水多国产| 麻豆精品视频在线观看| 国产福利成人在线| 日韩黄色片网站| 久久一日本道色综合久久| 5252色成人免费视频| 欧美日韩精品区| aa亚洲婷婷| 午夜精品久久17c| 久久久全国免费视频| 欧美日韩国产亚洲一区| 欧美激情2020午夜免费观看| 日韩va亚洲va欧美va清高| 在线中文字幕第一区| 欧美精品性视频| 久久久久久久久久久网| 极品少妇一区二区三区| 久久久久久久久亚洲| 欧美福利视频一区二区| 久久久久国产精品午夜一区| 国产精品国产亚洲伊人久久| 最新在线中文字幕| 狠狠久久亚洲欧美| 国产v亚洲v天堂无码| 五月婷在线视频| 国产婷婷一区二区| 一本一本a久久| 丝袜中文在线| 欧美日韩午夜视频在线观看| 亚洲天堂av线| 国产精品一区二区三区www| 精品捆绑美女sm三区| 瑟瑟视频在线观看| 亚洲成人日韩| 91国产精品91| 亚洲图片中文字幕| 国产不卡视频在线观看| 欧美高清性xxxxhd| 男女啪啪在线观看| 欧美日韩国产黄| youjizzxxxx18| 综合久久成人| 色偷偷综合社区| 日本一级黄色录像| 久久爱另类一区二区小说| 国产精品三区四区| www.国产精品.com| 亚洲成人手机在线| 日本人69视频| 日日天天久久| 九九九热精品免费视频观看网站| 波多野结衣国产| 国产一区二区三区蝌蚪| 欧洲亚洲一区二区| 男女视频在线| 欧美日韩国产成人在线91| a天堂视频在线观看| 久久亚洲专区| 国产ts一区二区| 东京干手机福利视频| 中文字幕精品在线不卡| 久久综合九色综合88i| 国产午夜久久av| 亚洲人永久免费| 久久精品国产亚洲av无码娇色 | 日本888xxxx| 久久超级碰碰| 欧美成人激情视频免费观看| 成人黄色片在线观看| 97精品久久久久中文字幕| 在线无限看免费粉色视频| 婷婷激情一区| 亚洲精品成人久久久| 欧美成人aaa片一区国产精品| 日韩精品亚洲一区二区三区免费| 精品日产一区2区三区黄免费 | 亚洲免费视频成人| 日韩大片一区二区| 国产在视频线精品视频www666| 91福利视频在线观看| 亚洲国产精品一| 一区二区三区不卡视频| 午夜激情av在线| 久操成人av| 欧美一级电影免费在线观看| 日本韩国在线观看| 亚洲影院在线观看| 青青草原播放器| 欧美成人中文| av资源站久久亚洲| 日韩精品卡一| 日韩精品一区二区三区中文精品| 亚洲 欧美 变态 另类 综合| 久久精品国产精品亚洲综合| 亚洲欧美久久234| 91p九色成人| 最好看的2019年中文视频| 亚洲欧美一二三区| 国产日韩欧美高清在线| 成年人网站大全| 精品不卡一区| 国产精品偷伦视频免费观看国产 | 少妇高清精品毛片在线视频| 日韩av网站在线免费观看| 69**夜色精品国产69乱| 手机福利在线| 在线观看免费成人| 国产精品久久久久久成人| 日韩高清在线电影| 国产高清精品软男同| 国产精品亚洲四区在线观看| 色综合天天狠天天透天天伊人| 亚洲欧美高清视频| 欧美日韩国产精品一区二区三区四区 | 亚洲性生活大片| 最新久久zyz资源站| 北条麻妃亚洲一区| 黄色成人在线网址| 久久久久se| 69堂精品视频在线播放| 精品国产一区二区三区久久久| 国产精品免费无遮挡| 亚洲一卡二卡三卡四卡| 97超碰在线资源| 久久99久久99| 少妇高潮喷水在线观看| 欧美码中文字幕在线| 国产精品一区二区三区免费视频 | 国产精品视频自拍| 二区三区在线观看| 日韩av在线影院| 中文字幕观看在线| 亚洲影院久久精品| www.av欧美| 国产美女娇喘av呻吟久久| 久久精品国产精品亚洲色婷婷| 日本一本不卡| 翡翠波斯猫1977年美国| 日韩成人动漫| 欧美福利在线观看| 九色在线免费| 精品国产一区二区三区av性色| 国产中文字幕视频| 亚洲精品国产视频| 级毛片内射视频| 成人av综合在线| 一区二区三区入口| 99成人在线| 国产美女视频免费| 久久99影视| 国产精品国产亚洲精品看不卡15| 中文字幕日本一区二区| 欧美激情一区二区三区成人| youjizz在线播放| 日韩激情视频在线| 国产精品女同一区二区| 日本黄色一区二区| 亚洲一区二区91| 亚洲欧美色图小说| 一区二区三区久久久久| av在线综合网| 少妇性l交大片7724com| 免费看日韩精品| 女性隐私黄www网站视频| 国产综合色产| 91xxx视频| 成人羞羞网站入口免费| 久久综合给合久久狠狠色| 亚洲精品aⅴ| 91亚洲精华国产精华| 久久国内精品| 欧美一区视频在线| 中文字幕有码在线观看| 丝袜亚洲另类欧美重口| 国产在线三区| 日韩高清av在线| 国产91绿帽单男绿奴| 欧美一区二区成人| 97在线视频人妻无码| 欧美日精品一区视频| 无码人妻精品一区二| 亚洲成在人线免费| 久久中文字幕无码| 一区二区三区在线视频免费| 疯狂试爱三2浴室激情视频| 欧美国产国产综合| 美国美女黄色片| 欧美国产禁国产网站cc| 黄色裸体一级片| 国产精品欧美久久久久无广告 | 精品久久91| 日本在线观看不卡| 精品国产一区二区三区久久久蜜臀| 蜜桃av噜噜一区二区三| 偷拍自拍亚洲色图| 欧美精品尤物在线| 久久99国内| 亚洲午夜激情| 亚洲精品91| 成人av在线播放观看| 亚洲第一网站| 无码人妻精品一区二区三区在线 | 奇米4444一区二区三区| 在线观看v片| 国产精品99一区| 性欧美video另类hd尤物| 成人国产精品一区| 亚洲精品国产九九九| 国产精品二区二区三区| 欧美顶级毛片在线播放| 欧美在线激情| 第四色成人网| 日韩最新中文字幕| 国模吧视频一区| 日韩视频第二页| 美女脱光内衣内裤视频久久影院| 亚洲美女性囗交| 国产成人精品免费| 亚洲欧美色图视频| 中文乱码免费一区二区| 欧美黑人一级片| 高跟丝袜欧美一区| 91 中文字幕| 欧美精品一区二区久久久| 青青草超碰在线| 久久精品人人做人人爽| 电影k8一区二区三区久久| 日韩免费高清在线观看| 国产精品毛片无码| 精品日本一区二区三区| 国产精品videosex性欧美| 国产一区二区片| 日韩一区精品字幕| 三上悠亚 电影| 久久久一区二区三区| 欧美一级特黄高清视频| 亚洲福利视频导航| 亚洲性猛交富婆| 亚洲成成品网站| 欧洲日本在线| 欧美一区二区三区精品电影| 国产日本亚洲| 欧美精品久久久| 韩日欧美一区| 五月天av在线播放| bt欧美亚洲午夜电影天堂| 亚洲综合久久av一区二区三区| 亚洲一区二区三区四区五区黄| 探花国产精品一区二区| 精品国产制服丝袜高跟| 国内精品一区视频| 欧美激情影音先锋| 农村妇女一区二区| 久久一区二区三区欧美亚洲| 欧美另类专区| 午夜免费福利视频在线观看| 99精品久久只有精品| 中文字幕另类日韩欧美亚洲嫩草| 色8久久人人97超碰香蕉987| 日韩专区第一页| 欧美精品一区二区三区国产精品| 666av成人影院在线观看| 国产精品一区视频网站| 91精品福利| 国产精品自拍视频在线| 久久综合色8888| 日韩欧美大片在线观看| 日韩欧美国产小视频| 在线观看免费高清完整| 国产成人福利网站| 青青草原在线亚洲| 久久久久久久免费视频| 老司机精品视频在线| 日本xxxxxxxxx18| 欧美性色视频在线| 污视频软件在线观看| 久久免费视频网站| 日韩精品视频一区二区三区| 欧美aaa在线观看| 久久精品国产色蜜蜜麻豆| 91视频免费看片| 欧美亚洲动漫精品| www日韩tube| 国产精品久久久久久久久久尿 | 国产69精品久久久久毛片| 日韩高清dvd碟片| 欧美日产国产精品| 亚洲欧美视频一区二区| 国产精品一区二区3区| 精品国产一区二区三区久久久蜜臀| 欧美黄网站在线观看| 久久五月婷婷丁香社区| 亚洲午夜18毛片在线看| 亚洲欧美国内爽妇网| 久久sese| 水蜜桃一区二区| 美国毛片一区二区| 糖心vlog免费在线观看| 777午夜精品免费视频| av大大超碰在线| 国产精品久久一区二区三区| 日韩视频一区| 中日韩精品一区二区三区| 色呦呦国产精品| 粉嫩av一区| 成人综合国产精品| 欧美久久综合| 这里只有精品在线观看视频| 黑人精品xxx一区一二区| 国产在线电影| 国产人妖伪娘一区91| 一区二区三区网站| 性农村xxxxx小树林| 黄色一区二区在线观看| 国产中文在线| 成人免费在线视频网址| 女同性一区二区三区人了人一| 在线观看免费视频国产| 欧美日韩一区二区三区在线免费观看| 国产在线视频资源| 成人网在线观看| 一本一道久久综合狠狠老精东影业| 中文字幕免费视频| 91精品国产综合久久小美女| 电影k8一区二区三区久久| 欧美一区二区三区四区夜夜大片| 激情av综合网| 日韩成人免费观看| 在线观看国产精品日韩av| 国产一区二区三区免费在线| 欧美 丝袜 自拍 制服 另类| 国产精品婷婷午夜在线观看| 亚洲男女视频在线观看| 国产精品成人一区| 欧美三级网页| 91激情视频在线观看| 日韩欧美国产麻豆| 欧美黄色网页| 国产一区二区片| 国产精品免费视频网站| 日韩中文字幕综合| 国产欧美日韩高清| 亚洲精品乱码| 国产黄色录像片| 亚洲欧洲偷拍精品| 日韩精品三级| 手机av在线网|