许昌市网站建设_网站建设公司_SEO优化_seo优化
2026/1/18 13:55:33 网站建设 项目流程

大多数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

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

 

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询