Spring Boot之MCP Client开发全介绍

Spring AI MCP(模型上下文协议,Model Context Protocol)客户端启动器为 Spring Boot 应用程序中的 MCP 客户端功能提供了自动配置支持。它支持同步和异步两种客户端实现方式,并提供了多种传输选项。

MCP 客户端启动器提供以下功能:

  • 多客户端实例管理
    支持管理多个客户端实例,方便在应用程序中同时使用多个 MCP 客户端。
  • 自动客户端初始化(如启用)
    如果配置了自动初始化,客户端会在应用程序启动时自动初始化,无需手动干预。
  • 支持多个命名传输方式
    允许配置和使用多个具有不同名称的传输方式,以满足不同的通信需求。
  • 与 Spring AI 的工具执行框架集成
    与 Spring AI 的工具执行框架无缝集成,支持在客户端中执行各种工具操作。
  • 适当的生命周期管理,在应用程序上下文关闭时自动清理资源
    提供完善的生命周期管理,确保在应用程序上下文关闭时,所有相关资源都能被自动清理,避免资源泄漏。
  • 通过自定义器(Customizers)实现客户端创建的可定制化
    支持通过自定义器对客户端的创建过程进行定制,以满足特定的业务需求或配置要求。

标准 MCP 客户端(Standard MCP Client)


<dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-starter-mcp-client</artifactId>
</dependency>

标准启动器(spring-ai-starter-mcp-client)允许客户端同时通过 STDIO(进程内)和/或 SSE(远程)传输方式连接到单个或多个 MCP 服务器。其中,SSE 连接使用的是基于 HttpClient 的传输实现。每次与 MCP 服务器的连接都会创建一个新的 MCP 客户端实例。可以选择使用同步(SYNC)或异步(ASYNC)的 MCP 客户端(注意:不能同时混合使用同步和异步客户端)。对于生产环境部署,建议使用基于 WebFlux 的 SSE 连接,并搭配 spring-ai-starter-mcp-client-webflux 启动器。

WebFlux 客户端(WebFlux Client)

WebFlux 启动器提供了与标准启动器类似的功能,但它使用的是基于 WebFlux 的 SSE(服务器发送事件,Server-Sent Events)传输实现。


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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/80327.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[题解]2023CCPC黑龙江省赛 - Folder

来源&#xff1a;F.Folder - Codeforces题意&#xff1a;给定由 n ( 1 ≤ n ≤ 1 0 5 ) n(1\le n\le 10^5) n(1≤n≤105)个结点组成的树&#xff0c;每次操作可将一棵子树接到其他结点上。求将树转换为一棵斜树的最小操作次数。关键词&#xff1a;思维(签到)题解&#xff1a;斜…

string[字符串中第一个的唯一字符][蓝桥杯]

使用哈希表解决 class Solution { public:int firstUniqChar(string s) {int arr[26];for(int i0;i<s.size();i){arr[s[i]-a];}for(int i0;i<s.size();i){if(arr[s[i]-a]1)return i;}return -1;} };

【深度学习-Day 8】让数据说话:Python 可视化双雄 Matplotlib 与 Seaborn 教程

Langchain系列文章目录 01-玩转LangChain&#xff1a;从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块&#xff1a;四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain&#xff1a;从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…

Flink 实时数据一致性与 Exactly-Once 语义保障实战

在构建企业级实时数仓的过程中,“数据一致性” 是保障指标准确性的核心能力,尤其是在金融、电商、医疗等对数据敏感度极高的场景中。Flink 作为流批一体的实时计算引擎,其内建的 Exactly-Once 语义为我们提供了强有力的保障机制。本篇将围绕如何实现端到端的数据一致性、如何…

傅利叶十周年,升级核心战略:“有温度”的具身智能蓝图

5月9日&#xff0c;傅利叶十周年庆典暨首届具身智能生态峰会在上海正式召开。本次大会以“十年共创&#xff0c;具身成翼”为主题&#xff0c;汇聚了来自通用机器人与医疗康复领域的顶尖专家学者、合作伙伴与投资机构&#xff0c;共同探索具身智能在未来十年的技术应用与生态发…

Docker中mysql镜像保存与导入

一、Docker中mysql镜像保存 Docker 的 MySQL 镜像保存通常有两种场景&#xff1a;一种是保存镜像本身的修改&#xff08;如配置、初始化数据&#xff09;&#xff0c;另一种是持久化保存容器运行时产生的数据&#xff08;如数据库表、用户数据&#xff09;。以下是具体方法&am…

大模型微调指南之 LLaMA-Factory 篇:一键启动LLaMA系列模型高效微调

文章目录 一、简介二、如何安装2.1 安装2.2 校验 三、开始使用3.1 可视化界面3.2 使用命令行3.2.1 模型微调训练3.2.2 模型合并3.2.3 模型推理3.2.4 模型评估 四、高级功能4.1 分布训练4.2 DeepSpeed4.2.1 单机多卡4.2.2 多机多卡 五、日志分析 一、简介 LLaMA-Factory 是一个…

记录一次window2012r2安装配置oracle11g的过程-出现的错误以及解决方法

Windows server 2012R2安装Oracle11g 出现的错误 同事反馈正常安装oracle后&#xff0c; 使用命令行 sqlplus sys / as sysdba出现“ORA-12560:TNS:协议适配器错误”。 去services.msc服务状态里面 OracleOraDb11g_home1TNSListener服务停止状态&#xff0c;而且无法启动。 …

2003-2020年高铁线路信息数据

2003-2020年高铁线路信息数据 1、时间&#xff1a;2003-2020年 2、来源&#xff1a;Chinese High-speed Rail and Airline Database&#xff0c;CRAD 3、指标&#xff1a;高铁线路名称、起点名、终点名、开通时间、线路长度(km)、设计速度(km/h&#xff09;、沿途主要车站 …

【论文阅读】FreePCA

FreePCA: Integrating Consistency Information across Long-short Frames in Training-free Long Video Generation via Principal Component Analysis 原文摘要 问题背景 核心挑战&#xff1a; 长视频生成通常依赖在短视频上训练的模型&#xff0c;但由于视频帧数增加会导致数…

Linux:线程同步与互斥

目录 线程互斥 锁 初始化 销毁 加锁 解锁 线程同步 条件变量 初始化 销毁 等待条件满足 唤醒等待 pthread_cond_signal pthread_cond_broadcast 生产者消费者模型 3种关系 2种角色 1个交易场所 POSIX信号量 初始化 销毁 等待 发布 线程互斥 互斥相关…

LeetCode --- 448 周赛

题目列表 3536. 两个数字的最大乘积 3537. 填充特殊网格 3538. 合并得到最小旅行时间 3539. 魔法序列的数组乘积之和 一、两个数字的最大乘积 由于数据都是正数&#xff0c;所以乘积最大的两个数&#xff0c;本质就是找数组中最大的两个数即可&#xff0c;可以排序后直接找到…

Azure Document Intelligence

Azure Document Intelligence(以前称为 Form Recognizer)是一项云服务&#xff0c;可用于从文档中提取文本、键值对、表等信息。下面是一个使用 Python SDK 进行文档转换和提取信息的基本示例。 1. 安装依赖 首先&#xff0c;你需要安装 azure-ai-formrecognizer 库&#xff0c…

51单片机快速成长路径

作为在嵌入式领域深耕18年的工程师&#xff0c;分享一条经过工业验证的51单片机快速成长路径&#xff0c;全程干货无注水&#xff1a; 一、突破认知误区&#xff08;新手必看&#xff09; 不要纠结于「汇编还是C」&#xff1a;现代开发90%场景用C&#xff0c;掌握指针和内存管…

SQLite数据库加密(Java语言、python语言)

1. 背景与需求 SQLite 是一种轻量级的关系型数据库,广泛应用于嵌入式设备、移动应用、桌面应用等场景。为了保护数据的隐私与安全,SQLite 提供了加密功能(通过 SQLCipher 扩展)。在 Java 中,可以使用 sqlite-jdbc 驱动与 SQLCipher 集成来实现 SQLite 数据库的加密。 本…

《AI大模型应知应会100篇》第53篇:Hugging Face生态系统入门

第53篇&#xff1a;Hugging Face生态系统入门 ——从模型获取到部署的全流程实战指南 &#x1f4cc; 摘要 在人工智能快速发展的今天&#xff0c;Hugging Face已成为自然语言处理&#xff08;NLP&#xff09;领域最具影响力的开源平台之一。它不仅提供丰富的预训练模型、强大…

什么是向量数据库?向量数据库和关系数据库有什么区别?

什么是向量数据库&#xff1f; 向量数据库是一种专门设计用来存储、索引和查询向量数据的数据库系统。在当今的人工智能和机器学习领域中&#xff0c;向量数据库变得越来越重要&#xff0c;尤其是在处理高维数据如图像、音频和文本等非结构化数据时。 主要用途 相似度搜索&…

关于甲骨文(oracle cloud)丢失MFA的解决方案

前两年&#xff0c;申请了一个招商的多币种信用卡&#xff0c;然后就从网上撸了一个oracle的免费1h1g的服务器。 用了一段时间&#xff0c;人家要启用MFA验证。 啥叫MFA验证&#xff0c;类似与短信验证吧&#xff0c;就是绑定一个手机&#xff0c;然后下载一个app&#xff0c;每…

基于Arduino Nano的DIY示波器

基于Arduino Nano的DIY示波器&#xff1a;打造属于你的口袋实验室 前言 在电子爱好者的世界里&#xff0c;示波器是不可或缺的工具之一。它能够帮助我们观察和分析各种电子信号的波形&#xff0c;从而更好地理解和调试电路。然而&#xff0c;市面上的示波器价格往往较高&…

LeetCode 解题思路 47(最长回文子串、最长公共子序列)

解题思路&#xff1a; dp 数组的含义&#xff1a; dp[i][j] 是否为回文子串。递推公式&#xff1a; dp[i][j] s.charAt(i) s.charAt(j) && dp[i 1][j - 1]。dp 数组初始化&#xff1a; 单字符 dp[i][i] true&#xff0c;双字符 dp[i][i 1] s.charAt(i) s.charA…