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

SpringAI实践-MCP使用与创建

大多数Agent都不会仅仅满足于只回答问题,它们还需要理解用户意图后,需要做一些真正执行的操作。Agent应用中,调用的大模型相当于Agent的大脑,负责推理,而集成的MCP Server,则相当于真正的“手”做一些执行操作。

MCP是一套协议,这套协议产生的意义,是因为,在MCP出现之前,将AI模型与不同的API或工具集成在一块需要做大量定制的开发工作,最终得到的结果是,比如一个公司的Agent A 可以用一个mcp server,但另一个公司的Agent B 可能不能使用,就好比,安卓上的软件,没法装在苹果的ios系统上。有了MCP这个协议之后,所有遵循这套协议的agent都可以调用mcp server,并且每种mcp server只需要开发一套,就可以被多个agent使用。

MCP 协议,并非指单一的协议文件,而是一套完整的开放标准体系,有哪些标准呢? 粗略的说一下:

在MCP没出现之前,研究人员为了一个很纯粹的目的,就是Agent要调用外部的工具,他们都会有自己的思路,很定制,可能会把一些调用的代码嵌入在核心的代码里,没有分模块。于是MCP协议,首先就先规定,大模型的Agent调用外部工具的系统架构是什么,即 Client-Server 架构,Agent所有对外部的操作都通过Agent里的Mcp Client模块来进行,不会把这些直接调用外部的步骤放在核心代码里,Agent内部只会调用MCP Client,有种门面模式、外观模式的感觉。这种架构也很好的把Agent 跟 mcp-server解耦出来,它们两可以各自发展,比如当前mcp-server就已经有很多了,然后agent可以从这些mcp-server中选哪些应用。

image

然后,还需要约定 MCP-CLIENT 跟 MCP-SERVER 之间的通信消息的格式,采用JSON-RPC 2.0的方式,比如:

image

image

 

image

 

 JSON-RPC 2.0 这个格式,其实也就是约定了请求参数结构,返回结构,或者出现异常时的 结构化的返回结构,因为 mcp-client 和 mcp-server 本质就是普通的程序,只要格式不统一,运行的时候就会报错。只有约定了格式,mcp-client传给mcp-server的命令,mcp-server才能解析出来调用它自己内部的哪个方法,传哪些参数,然后mcp-server 传给mcp-client,mcp-client才能根据哪个字段把返回信息提取出来,这个返回信息可能是操作的结果或者是借助mcp-server获取的内容,传给大模型,做下一轮的推理。

规定完传输格式后,还需要规定怎么传输:

当前MCP-CLIENT 和 MCP-SERVER 之间有两中传输方式,一种是通过STDIO,一种是SSE,

STDIO的方式,就是把mcp-server 部署在跟Agent的同一台机器上,之间的通信通过机器内部的I/O操作来实现,所以用这种方式,首先需要有满足让mcp_server这套环境执行的环境,比如,如果mcp_server是用SpringAI开发出来的,机器上肯定需要有jdk环境,mcp_server才能运行,进而agent才能调用它,这种方式,主要应用在只需要操作本机器里面内容的场景,倾向于安全封闭环境,无需联网的场景,比如读写文件,读写本地的数据库,操作本地浏览器等。

SSE的方式,就是MCP-CLIENT 跟 MCP-SERVER之间的交互通过网络,即SSE协议。

MCP-CLIENT 跟 MCP-SERVER 之间交互流程是怎样的呢?

 

image

 使用Roo Agent使用MCP:

使用新版的webstorm 安装如下的插件:

image

 然后配置这个Agent使用的大模型:

image

 然后安装MCP server:

image

然后将 

image

 这里的json文件放在webStrom打开的文件里:

然后看到上面的command是npx,所以本次需要有运行npx命令的环境,即要安装nodejs和npm

image

 之后可以看到,这里多了一个playwright的mcp工具,之后对这个agent输入命令: 完成 这个地址的https://www.wenjuan.group/s/UZBZJvllIyk/问卷考试

然后会发现,agent会自动把浏览器打开,完成考试。

SpringAI怎么使用Mcp server:

1、添加mcp-client的依赖:

<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-mcp-client-webflux</artifactId>
</dependency>
在 src/resources 下创建 mcp-servers-config.json,然后在 application.properties文件中引用它:
spring.ai.mcp.client.stdio.servers-configuration=classpath:mcp-servers-config.json
后把tools注入到客户端中:

image

之后也可以实现同样的效果。

 

http://www.jsqmd.com/news/262953/

相关文章:

  • 基于SpringBoot的进销存系统毕设
  • 2026年知名的翻译企业,天使翻译公司口碑与实力并存 - 工业品牌热点
  • Python、CSharp、Go、Nextjs,不同框架的性能到底差多少?
  • 芯片制造企业如何利用百度WEB编辑器处理PDF技术文档?
  • 2025年值得关注的高温塑料回收厂家有哪些?,排行前列的高温塑料回收精选国内优质品牌榜单 - 品牌推荐师
  • 基于SpringBoot框架的社区网格化管理平台
  • 基于SpringBoot的社区疫情管理系统毕业设计源码
  • 2026年不锈钢EP管供应企业推荐,南通地区十大厂家有哪些? - 工业品牌热点
  • 【开题答辩全过程】以 基于SSM框架的药店管理系统的设计与开发为例,包含答辩的问题和答案
  • 历年CSP-J初赛真题解析 | 2017年CSP-J初赛
  • 人间美味——胡萝卜炒包菜粉丝
  • 【开题答辩全过程】以 基于SSM框架的健身房管理系统为例,包含答辩的问题和答案
  • 基于SpringBoot的社区防疫物资申报系统毕业设计源码
  • 一个例子带你看懂,火爆全网的 Skills 到底是啥。
  • 基于SpringBoot的笔记记录分享网站毕设源码
  • 【开题答辩全过程】以 高校消防器材库管理系统的设计与实现为例,包含答辩的问题和答案
  • 基于SpringBoot的箱包存储系统毕设
  • 【开题答辩全过程】以 基于SSM框架的网上书城系统设计与实现为例,包含答辩的问题和答案
  • Nginx 配置示例及核心模块详解
  • 深度解析 Agent Skills:赋予 AI 真正的行动力
  • 基于ssm+vue的智能化在线学习系统[ssm]-计算机毕业设计源码+LW文档
  • Relink:动态构建查询导向的知识图谱推理框架,新一代 GraphRAG
  • 导师严选2026 AI论文软件TOP8:开题报告文献综述神器测评
  • VSCode Extension Test
  • 2026年便宜的上海家装团队哪家好,奶油风别墅设计/新中式房屋设计/现代简约软装设计/新中式新房装修,上海家装团队哪个好 - 品牌推荐师
  • AI写论文实用指南!4款AI论文生成工具,让写论文变得更简单!
  • 智能马桶推荐:希箭智能马桶客观评测与选购指南 - charlieruizvin
  • 揭秘陕西新华电脑电竞学校公立私立属性,别再疑惑 - 工业品牌热点
  • AI写论文宝藏推荐!这4款AI论文写作工具,轻松拿下期刊论文!
  • 用PyTorch通用镜像做语音识别项目,全流程实测分享