news 2026/3/26 10:45:28

75_Spring AI 干货笔记之 MCP 客户端注解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
75_Spring AI 干货笔记之 MCP 客户端注解

一、MCP 客户端注解

MCP 客户端注解提供了一种使用 Java 注解来实现 MCP 客户端处理器的声明式方法。这些注解简化了服务器通知和客户端操作的处理。

所有 MCP 客户端注解必须包含一个 clients 参数,用于将处理器与特定的 MCP 客户端连接关联。该参数必须与应用程序配置文件中配置的连接名称相匹配。

二、客户端注解

2.1 @McpLogging

@McpLogging 注解用于处理来自 MCP 服务器的日志消息通知。

2.1.1 基本用法

@ComponentpublicclassLoggingHandler{@McpLogging(clients="my-mcp-server")publicvoidhandleLoggingMessage(LoggingMessageNotificationnotification){System.out.println("收到日志: "+notification.level()+" - "+notification.data());}}

2.1.2 使用独立参数

@McpLogging(clients="my-mcp-server")publicvoidhandleLoggingWithParams(LoggingLevellevel,Stringlogger,Stringdata){System.out.println(String.format("[%s] %s: %s",level,logger,data));}

2.2 @McpSampling

@McpSampling 注解用于处理来自 MCP 服务器的大语言模型补全采样请求。

2.2.1 同步实现

@ComponentpublicclassSamplingHandler{@McpSampling(clients="llm-server")publicCreateMessageResulthandleSamplingRequest(CreateMessageRequestrequest){// 处理请求并生成响应Stringresponse=generateLLMResponse(request);returnCreateMessageResult.builder().role(Role.ASSISTANT).content(newTextContent(response)).model("gpt-4").build();}}

2.2.2 异步实现

@ComponentpublicclassAsyncSamplingHandler{@McpSampling(clients="llm-server")publicMono<CreateMessageResult>handleAsyncSampling(CreateMessageRequestrequest){returnMono.fromCallable(()->{Stringresponse=generateLLMResponse(request);returnCreateMessageResult.builder().role(Role.ASSISTANT).content(newTextContent(response)).model("gpt-4").build();}).subscribeOn(Schedulers.boundedElastic());}}

2.3 @McpElicitation

@McpElicitation 注解用于处理向用户收集额外信息的征询请求。

2.3.1 基本用法

@ComponentpublicclassElicitationHandler{@McpElicitation(clients="interactive-server")publicElicitResulthandleElicitationRequest(ElicitRequestrequest){// 向用户展示请求并收集输入Map<String,Object>userData=
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/23 21:24:10

FSMN-VAD中文语音检测专项优化,更准更快

FSMN-VAD中文语音检测专项优化&#xff0c;更准更快 你有没有遇到过这样的情况&#xff1a;会议录音转文字时&#xff0c;开头3秒静音被当成有效语音切进去&#xff0c;结果ASR模型把“呃…啊…”识别成乱码&#xff1b;或者客服热线长音频里&#xff0c;客户说了15分钟&#…

作者头像 李华
网站建设 2026/3/25 0:45:13

指令定制提升效果:Qwen3-Embedding-0.6B高级玩法

指令定制提升效果&#xff1a;Qwen3-Embedding-0.6B高级玩法 你有没有遇到过这样的问题&#xff1a;用同一个嵌入模型处理中文客服问答和英文技术文档&#xff0c;效果却差了一大截&#xff1f;或者在金融场景下做语义匹配&#xff0c;明明句子意思相近&#xff0c;向量距离却…

作者头像 李华
网站建设 2026/3/16 23:37:11

YOLOv9镜像内含哪些依赖?numpy到seaborn全都有

YOLOv9镜像内含哪些依赖&#xff1f;numpy到seaborn全都有 你有没有遇到过这样的情况&#xff1a;刚下载好YOLOv9代码&#xff0c;准备跑通第一个检测任务&#xff0c;结果卡在ModuleNotFoundError: No module named torch上&#xff1f;或者好不容易装完PyTorch&#xff0c;又…

作者头像 李华
网站建设 2026/3/13 23:05:21

无需GPU专家!一键启动Qwen-Image-Edit-2511的秘诀

无需GPU专家&#xff01;一键启动Qwen-Image-Edit-2511的秘诀 你是不是也经历过这样的时刻&#xff1f; 市场部凌晨两点发来消息&#xff1a;“明天早十点上线新活动&#xff0c;所有主图右上角‘新品首发’标签&#xff0c;统一替换成‘限时加赠’&#xff0c;背景色从浅灰调…

作者头像 李华
网站建设 2026/3/23 5:15:27

Vivado注册2035:快速掌握License文件替换技巧

以下是对您提供的博文《Vivado注册2035:License文件替换的工程化实践与深度技术解析》进行 全面润色、结构重构与专业深化后的终稿版本 。全文已彻底去除AI生成痕迹,强化技术纵深感与一线工程师视角,语言更凝练有力、逻辑更自然递进,摒弃模板化标题与空泛总结,代之以真实…

作者头像 李华
网站建设 2026/3/15 10:05:57

【学习写作】对比手法

对比写作手法完全教程 以《阿尔夫布莱格斯的两件衣服》为范例的系统性写作指南 一、核心定义与原理 1.1 什么是对比手法 对比手法是将两种或多种对立、差异显著的事物、现象或情感并列呈现&#xff0c;以突出其本质特征&#xff0c;强化表达效果的写作技巧。 1.2 对比的本质…

作者头像 李华