精品欧美一区二区三区在线观看 _久久久久国色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ù)棧公眾號

久热精品在线播放| 欧洲乱码伦视频免费| 日韩啪啪电影网| 日韩美女久久久| 久久久久久久一区二区| 欧美xxxx黑人又粗又长精品| 婷婷激情四射网| 吉吉日韩欧美| 粉嫩蜜臀av国产精品网站| 亚洲欧美国产精品久久久久久久 | 中文字幕在线视频日韩| 久久手机在线视频| 最近日韩免费视频| 免费福利视频一区| 一区二区三区精密机械公司| 国产精品欧美日韩久久| 欧美 日本 国产| 国产在线看片免费视频在线观看| 热久久天天拍国产| 日韩欧美在线视频日韩欧美在线视频 | 在线视频 日韩| 黄视频在线观看网站| 日韩成人一级大片| 亚洲图片欧美日产| 麻豆av免费在线| 青青操在线视频| 99香蕉国产精品偷在线观看| 精品国产伦一区二区三区免费| 杨幂一区欧美专区| 在线观看免费中文字幕| 菠萝蜜一区二区| 亚洲高清久久久久久| 日本欧美视频在线观看| 天天综合网在线观看| 亚洲三级观看| 亚洲美女av在线| 国产精品二区视频| 伦理在线一区| 成人精品免费网站| 91av视频在线观看| 成人免费无遮挡无码黄漫视频| 中文字幕亚洲国产| 色综合久久悠悠| 搡女人真爽免费午夜网站| 日本韩国一区| 国产精品中文字幕欧美| 久久夜色撩人精品| 91av免费观看| 祥仔av免费一区二区三区四区| 中文字幕一区在线观看| 91欧美日韩一区| 在线免费观看毛片| 免费不卡中文字幕在线| 精品视频1区2区| 成人手机在线播放| 人妻视频一区二区三区| 在线亚洲观看| 97色在线视频| 九九九视频在线观看| 黄页免费欧美| 亚洲一区二区三区激情| 六十路精品视频| 无码国产伦一区二区三区视频| 香蕉精品999视频一区二区| 亚洲天堂男人天堂| 欧美老熟妇乱大交xxxxx| 国产精品久久久久久久久久齐齐| 一区在线中文字幕| 成人短视频在线看| 三级理论午夜在线观看| 99久久精品免费精品国产| 国产精品91免费在线| 国产一区二区视频在线观看免费| 国产精品毛片av| 精品视频1区2区| 久久国产激情视频| 999色成人| 欧美日韩亚洲激情| 青草全福视在线| 2020国产在线视频| 国产日韩欧美综合一区| 99精彩视频在线观看免费| 国产精品熟女视频| 中文字幕亚洲综合久久五月天色无吗''| 亚洲国产精品va在线观看黑人| 中文字幕天堂av| 色成人综合网| 91麻豆精品国产91久久久更新时间| 男人用嘴添女人下身免费视频| 欧美成人三区| 国产亚洲欧美日韩日本| 日韩中文一区| 免费av在线电影| 国产91高潮流白浆在线麻豆| 国内一区二区三区在线视频| a天堂视频在线| 免费欧美在线视频| 欧美最猛黑人xxxx黑人猛叫黄| 成人免费黄色小视频| 欧美三级午夜理伦三级中文幕| 中文字幕欧美亚洲| 极品盗摄国产盗摄合集| 日韩欧美中文| 久久久久五月天| 色婷婷在线视频观看| 韩国久久久久| 欧美俄罗斯性视频| 亚洲国产美女视频| 亚洲久久在线| 91精品久久久久久久久久另类| 亚洲一级二级片| 成人无号精品一区二区三区| 欧美大片免费看| 久久久精品毛片| 国产91精品免费| 日韩欧美第二区在线观看| a黄色片在线观看| 成人欧美一区二区三区视频网页| 男女激情免费视频| 少妇av在线| 亚洲综合成人在线视频| 午夜dv内射一区二区| 成人爱爱网址| 日韩欧美一级二级三级久久久| 九九久久久久久| 只有精品亚洲| 国产视频综合在线| 成年人免费观看视频网站| 久久精品影视| 欧美另类精品xxxx孕妇| 成人一二三四区| 免费久久99精品国产| 国产欧美日韩综合精品二区| 麻豆影视国产在线观看| 欧美在线色视频| 在线观看免费的av| 国产中文欧美日韩在线| 在线一区二区三区四区| 日本天堂在线播放| 巨人精品**| 亚洲欧美日韩综合| 日本熟妇色xxxxx日本免费看| 国产自产v一区二区三区c| 亚洲一区国产精品| 欧美一级片免费| 一区二区三区在线视频播放 | 婷婷亚洲精品| 亚洲欧美日韩精品| 欧美bbbbbbbbbbbb精品| 丝袜亚洲另类欧美综合| 国产原创欧美精品| 毛片在线播放网址| 日韩人在线观看| 色一情一区二区三区| 欧美日韩在线网站| 国产精品电影网| av中文字幕免费| 亚洲人成网站色在线观看| 国产 日韩 亚洲 欧美| 亚洲一区二区三区免费| 国产一区二区日韩精品欧美精品| 欧美一级片免费在线观看| 91网页版在线| 久久久久亚洲av无码专区喷水| 91破解版在线观看| 欧美日韩精品一区视频| 亚洲麻豆一区二区三区| 宅男噜噜噜66国产日韩在线观看| 精品一区二区三区免费毛片| 一级毛片视频在线| 午夜成人免费电影| 久久6免费视频| 久久99国产成人小视频| 国产成人精品国内自产拍免费看| 韩国福利在线| 亚洲国产毛片aaaaa无费看| 毛片毛片毛片毛片毛片毛片毛片毛片毛片| 久操精品在线| 成人字幕网zmw| 黄网站在线观| 4438亚洲最大| 国产一级一级片| 国内成+人亚洲+欧美+综合在线| 国内外成人免费视频| 欧美日韩国产v| 69精品人人人人| 免费中文字幕视频| 老司机一区二区| 国产亚洲自拍偷拍| 中文字幕不卡三区视频| 综合网日日天干夜夜久久| 妺妺窝人体色www婷婷| bt欧美亚洲午夜电影天堂| 久久99国产精品一区| 欧美综合精品| 国产在线日韩在线| 97人澡人人添人人爽欧美| 在线精品视频视频中文字幕| 99久久精品国产亚洲| 丁香一区二区三区| 国产性生活免费视频| 欧美一区=区三区| 欧美风情在线观看| 九色在线视频| 欧美va亚洲va在线观看蝴蝶网| 一区二区国产精品精华液| 粉嫩av亚洲一区二区图片| 黄色一级二级三级| 激情丁香综合| 国产一区二区在线观看免费播放| 日本在线视频一区二区| 亚洲欧美一区二区三区情侣bbw | 欧美特黄一级片| 26uuu色噜噜精品一区| 亚洲一区二区中文字幕在线观看| 国产亚洲一级| 精品久久久久久一区| 欧美日韩视频免费看| 91av视频在线播放| 午夜av在线播放| 在线一区二区日韩| 清纯唯美亚洲色图| 精品播放一区二区| 国产精品毛片一区二区在线看舒淇 | 久久综合九色| 日本www在线视频| 欧美日韩亚洲一区三区| 亚洲综合av一区| 欧美中文一区二区| 欧美一区二区三区四区在线观看地址 | 超碰97成人| 欧美精品www在线观看| 男人和女人做事情在线视频网站免费观看| 亚洲精品国产精品国产自| 国产农村妇女aaaaa视频| 亚洲狠狠丁香婷婷综合久久久| 免费一级黄色录像| 精品视频在线一区二区| 国产成人精品免费看| 乱子伦视频在线看| 狠狠入ady亚洲精品| 强伦女教师2:伦理在线观看| 亚洲怡红院av| 色播五月激情综合网| 亚洲一区二区三区四区精品 | www插插插无码视频网站| 在线成人超碰| av在线电影免费观看| 91蜜桃免费观看视频| 91视频免费入口| 国产一区啦啦啦在线观看| 五月激情五月婷婷| 久久99九九99精品| 一区二区三区四区在线视频| 天天综合91| 国产精品久久久久av免费| 日韩免费va| 青青久久av北条麻妃海外网| 精品乱码一区内射人妻无码 | 日韩精品影音先锋| www.国产黄色| 1000部国产精品成人观看| 我不卡一区二区| 国产精品亚洲а∨天堂免在线| 激情黄色小视频| 国产精品815.cc红桃| 五月天久久777| 日本精品免费观看| 午夜免费福利在线观看| 日韩精品一区二区三区中文不卡 | 国产精品96久久久久久又黄又硬| 亚洲精华液一区二区三区| 精品少妇一区二区三区免费观看| 国产特级aaaaaa大片| 欧美日韩在线视频一区| 天堂中文字幕在线观看| 久久中国妇女中文字幕| 成人影院在线观看| 欧美多人乱p欧美4p久久| 久久免费电影| 97色在线观看免费视频| 激情都市亚洲| 成人性生交xxxxx网站| 91国内精品| 欧美日韩亚洲免费| 99riav视频一区二区| 国产三级精品网站| 9l视频自拍九色9l视频成人| 欧美大香线蕉线伊人久久| 欧美超碰在线| 久久综合中文色婷婷| 欧美中文一区二区| 精品人妻人人做人人爽| 久久国产精品亚洲77777| 一卡二卡三卡视频| 日韩精品成人一区二区在线| 伊人国产精品视频| 欧美又黄又嫩大片a级| 2023国产一二三区日本精品2022| 亚洲欧美一区二区三区不卡| 美腿丝袜亚洲一区| 国产精九九网站漫画| 国产日韩av一区二区| 久久久久亚洲av无码专区| 亚洲欧美成人一区二区三区| 99久久99久久精品免费看小说.| 2023国产精品| 国产av 一区二区三区| 欧美视频第一页| 精品国产亚洲AV| 在线午夜精品自拍| 新版的欧美在线视频| 91香蕉视频在线下载| 日韩一区二区三区精品视频第3页 日韩一区二区三区精品 | 色天使久久综合网天天| 国产成人a人亚洲精品无码| 夜夜躁日日躁狠狠久久88av | 国产成人一区二区三区| 91成人福利| 午夜探花在线观看| 日本欧美在线观看| av丝袜天堂网| 成人精品视频网站| 天天操天天操天天操天天操天天操| 欧美性高潮在线| 婷婷色在线观看| 欧美国产视频一区二区| 国产不卡精品| 亚洲午夜在线观看| 日韩综合在线视频| 久久无码人妻精品一区二区三区| 亚洲精品国久久99热| 一级全黄裸体免费视频| 51精品秘密在线观看| h网站在线免费观看| 日本人成精品视频在线| 欧美美女啪啪| 丝袜人妻一区二区三区| 国产成人av福利| 久久久久噜噜噜亚洲熟女综合| 91精品国产综合久久小美女| av在线播放网站| 俺也去精品视频在线观看| 黄视频网站在线看| 成人亲热视频网站| 亚洲国产精品久久久久蝴蝶传媒| 三级在线视频观看| 欧美激情一区二区三区不卡| 看免费黄色录像| 884aa四虎影成人精品一区| 日本不卡在线| 91免费视频网站| 欧美 日韩 国产一区二区在线视频 | 一区二区三区四区日韩| 天天色天天综合网| 亚洲精品欧美激情| 亚洲第一成人av| 亚洲精品短视频| 涩涩视频网站在线观看| 国产主播精品在线| 91日韩视频| 亚洲精品一区二区18漫画| 亚洲国产成人高清精品| 午夜成人免费影院| 国产91色在线免费| 久久在线免费| 自拍视频第一页| 久久蜜桃av一区精品变态类天堂| 欧美一级特黄视频| 国产午夜精品美女视频明星a级| av一区在线播放| av不卡在线免费观看| 国产高清不卡一区| 波多野结衣一二三四区| 欧美日韩二区三区| 先锋影音在线资源站91| 精品久久一区二区三区蜜桃| 老司机一区二区三区| 蜜桃av免费在线观看| 日韩一区二区免费高清| 婷婷五月在线视频| 91成人免费视频| 在线一区免费观看| 国产aaaaaaaaa| 亚洲第一国产精品| 91p九色成人| 8x8ⅹ国产精品一区二区二区| youjizz久久| 一区二区视频网站| 亚洲另类欧美自拍| 伊人久久大香线蕉综合影院首页| 色爽爽爽爽爽爽爽爽| 91小视频免费看| 91theporn国产在线观看| 国模极品一区二区三区| 成人无号精品一区二区三区| 精品一区二区三区四区五区六区| 在线亚洲一区观看| 黄色成人在线网| 正在播放一区|