当前位置: 首页 > wzjs >正文

广州网站优化工具服务网络营销图片素材

广州网站优化工具服务,网络营销图片素材,做会计应关注什么网站,建筑网页设计详情Spring AI的MCP客户端介绍 模型上下文协议 (MCP) 是一种标准化协议,使 AI 模型能够以结构化方式与外部工具和资源交互。 它支持多种传输机制,以便在不同环境中提供灵活性。 MCP Java SDK 提供模型上下文协议的 Java 实现&#x…

Spring AI的MCP客户端介绍

模型上下文协议 (MCP) 是一种标准化协议,使 AI 模型能够以结构化方式与外部工具和资源交互。 它支持多种传输机制,以便在不同环境中提供灵活性。

MCP Java SDK 提供模型上下文协议的 Java 实现,通过同步和异步通信模式实现与 AI 模型和工具的标准化交互。

Spring AI MCP通过 Spring Boot 集成扩展了 MCP Java SDK,同时提供了客户端和服务器Starters。 

MCP官网提供的java sdk:Overview - Model Context Protocol

Spring AI提供了两种客户端的开发:

  • 标准客户端

        通过STDIO(in-process) 和/或SSE(远程)访问MCP服务端。 SSE 连接使用基于 HttpClient 的传输实现。 与 MCP 服务器的每次连接都会创建一个新的 MCP 客户端实例。 可以选择SYNC或ASYNCMCP 客户端(注意:不能混合使用同步客户端和异步客户端)。 

  • WebFlux客户端

        提供与标准客户端类似的功能,但使用基于 WebFlux 的 SSE 传输实现。

SDTIO方式通信

导入jar

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

yml配置

application.yml


logging:level:org.springframework.ai: DEBUGio.modelcontextprotocol.client: DEBUGio.modelcontextprotocol.spec: DEBUGspring:ai:zhipuai:api-key: 智谱大模型的apikeychat:options:model: glm-4-flashtemperature: 0.7mcp:client:name: my-mcp-clientversion: 1.0.0request-timeout: 10stype: syncstdio:servers-configuration: classpath:mcp-servers-config.json

Claude Desktop 格式的MCP服务的JSON配置

mcp-servers-config.json

{"mcpServers": {"everything": {"command": "C:\\Program Files\\nodejs\\npx.cmd","args": ["-y","@modelcontextprotocol/server-everything@2025.4.28"]}}
}

注意:application.yml和mcp-servers-config.json都放在项目的resources目录下

本例使用的MCP服务是server-everything,关于该mcp服务的介绍,可以参考博客:

LangChain4j(17)——MCP客户端-CSDN博客

ChatClient对象中指定MCP服务器

注入MCP的同步客户端对象

    @Resourceprivate List<McpSyncClient> mcpSyncClients;
    @Beanpublic ChatClient chatClient(ZhiPuAiChatModel chatModel) {return ChatClient.builder(chatModel)// 设置系统消息.defaultSystem("你是一个java架构师")// 指定工具.defaultTools(new MyTools())// 指定同步的MCP回调工具对象.defaultToolCallbacks(new SyncMcpToolCallbackProvider(mcpSyncClients))//配置日志相关的Advisor,需要开启日志级别以及配置 默认debug级别.defaultAdvisors(simpleLoggerAdvisor(),MessageChatMemoryAdvisor.builder(chatMemory()).build()).build();}

控制层方法

package com.renr.springainew.mcp;import jakarta.annotation.Resource;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** @Classname MspClientController* @Description TODO* @Date 2025-05-28 18:29* @Created by 老任与码*/
@RestController
@RequestMapping("/mcp")
public class MspClientController {@Resourceprivate ChatClient client;@GetMapping("/chat")public String chat(String message) {String answer = this.client.prompt("11加12等于多少").call().content();System.out.println(answer);return "success";}
}

执行结果

我们还打印了执行过程的一些日志,从日志中看出,内部调用了server-everyting服务的add方法。

Http SSE方式通信

修改yml配置

logging:level:org.springframework.ai: DEBUGio.modelcontextprotocol.client: DEBUGio.modelcontextprotocol.spec: DEBUG
spring:ai:zhipuai:api-key: XXXXXXXXXchat:options:model: glm-4-flashtemperature: 0.7mcp:client:name: my-mcp-clientversion: 1.0.0request-timeout: 10stype: syncsse:connections:server1:url: http://localhost:3001sse-endpoint: /sse

以sse方式启动server-everyting服务

安装:

npm install -g @modelcontextprotocol/server-everything@2025.4.28

sse模式启动服务:

 找到服务的安装位置,执行如下命令:

注意:笔者按照server-everything中提供的sse方式启动后,mcp客户端无法连接。不确定是哪里的问题。

官方的启动方式:npx @modelcontextprotocol/server-everything sse

控制层方法不变,测试结果如下:

从输出日志可以看出,也调用了server-everything中的add函数。

WebFlux SSE方式通信 

只需要修改导入的jar为:

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

其他的配置和代码无需改动,本文不再演示。


文章转载自:

http://Z1kaHLGX.kmjbs.cn
http://cWoQWUIq.kmjbs.cn
http://5WHUu4gW.kmjbs.cn
http://Pdj6G2cE.kmjbs.cn
http://aIebOqoh.kmjbs.cn
http://uEQrCXcC.kmjbs.cn
http://Y3B4Hl2i.kmjbs.cn
http://R8j5VfaC.kmjbs.cn
http://5sXEptxI.kmjbs.cn
http://7kiCnam2.kmjbs.cn
http://ff2cTAWh.kmjbs.cn
http://kUOePd8f.kmjbs.cn
http://N2fuvY26.kmjbs.cn
http://MKFtd8uB.kmjbs.cn
http://VQZt3CRM.kmjbs.cn
http://NheUBVAP.kmjbs.cn
http://8z1ZjgKJ.kmjbs.cn
http://hQl1LrB9.kmjbs.cn
http://usPw3agr.kmjbs.cn
http://EdzubpVR.kmjbs.cn
http://r2b9Qn0H.kmjbs.cn
http://n9UTEb6E.kmjbs.cn
http://7caLWhVa.kmjbs.cn
http://7rv5bC4Q.kmjbs.cn
http://I33wbsFG.kmjbs.cn
http://5CEjW0J5.kmjbs.cn
http://1ZYRkPeO.kmjbs.cn
http://dtXnuROS.kmjbs.cn
http://J1eABmSp.kmjbs.cn
http://TtfLpGEj.kmjbs.cn
http://www.dtcms.com/wzjs/716640.html

相关文章:

  • 怎样做网站吸引客户浙江1万家企业
  • 如何在公司服务器建个内部 网站苏州网站制作网络建设公司
  • 福州做网站的成都企业网站优化服务
  • 网站微信推广方案企业管理软件a6
  • 受大众喜欢的域名备案加急惠州市seo广告优化营销工具
  • 广东省公路建设有限公司网站泸州住房城乡建设局官方网站
  • 广告公司做的网站字体侵权文字创意logo设计
  • 精通网站建设 pdf深圳工装公司
  • 如何查看网站是否被kwordpress 批量删除
  • 怀化新站优化深圳住建局官方网电话
  • dedecms图片网站模板淄博网站排名
  • 免费制作主图的网站厦门网站建设解决方案
  • 微信购物网站开发自己怎样开网站
  • 做二手房产网站多少钱网络优化行业怎么样
  • 网站建设合同服务响应时间wordpress二级
  • 大气的企业网站设计黑龙江省建设工程招标网站
  • 建设厅网站贵州人事考试信息网织梦cms做企业网站
  • 站长工具外链查询如何建立网站 个人
  • 深圳网站优化多少钱现货交易平台排名
  • 承接网站建设文案小学生做创客大赛网站的题
  • 自建网站和第三方平台的区别做网站公司需要提供的资料
  • 济阳做网站公司宝塔本地wordpress
  • 毕设做网站太简单网站制作设计正规公司
  • 做网站专业python自动写wordpress
  • 建设网站要学编程吗wordpress 点赞 用户
  • 网站建站卖首饰侵权wordpress 短代码失效
  • 网站建设个人工作室可口可乐公司建设网站的目的是什么意思
  • 188旅游网站源码wordpress手机版弹出式导航
  • 个人淘客网站备案国外做二手服装网站
  • 只有网站才需要域名吗做网站用什么工具好