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

如何使用spring ai 1.0 实现 MCP 服务

1.概述

mcp 是什么,mcp 实际上是 model context protocol 的简称,意思是用一个标准协议,支持工具调用。
mcp ai 很火的概念,spring ai 已经支持了 mcp ,mcp 源于 工具调用,但是 我们在开发过程中会有一些 通用的方法,不需要反复来写,那么 mcp server 就应运而生了,比如我们可以写一个服务,将一些公共的方法 发布为一个服务,那么就可以实现公用。

我们需要做两个事情
1.实现mcp server
2.实现mcp client

2.如何实现一个mcp server

目前 mcp server 有两种实现方式,一种是 stdio,一种是sse
stdio 是进程内的实现方式,这种一般在客户端工具使用的比较多,这里我们只谈 sse.

sse 也有两种方式

  • webmvc 同步调用方式
  • webflux 异步调用方式

2.1 使用 webmvc 方式实现

  • 我们新建项目,增加依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-starter-mcp-server-webmvc</artifactId></dependency>
  • 增加工具类
@Service
public class McpService {@Tool(description = "查询某个地区的人数")public static String getCountByArea(String area) {return area +"人数为:" + RandomNumberGenerator.generateRandomNumber();}@Tool(description = "这是一个帮人预测运势的功能,需要提供姓名 及 人的出生年月日,使用格式为 年-月-日 ")public static String suanming(String name, String birthday) {String result = name +"出生年 :" + birthday+ " 运势为:" + FortuneTeller.getRandomFortune();return result;}@Tool(description = "查询某个地区的天气")public static String getTianqiByArea(String area) {return area +"天气为:" +FortuneTeller.getRandomWeather();}}

这里就是需我们将需要发布的方法增加 @Tool 注解,这里需要写清楚每个方法的作用,及限制。

  • 增加一个mcp 配置类
import com.redxun.mcpmvc.service.McpService;
import org.springframework.ai.tool.ToolCallbackProvider;
import org.springframework.ai.tool.method.MethodToolCallbackProvider;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class McpConfig {@Beanpublic ToolCallbackProvider toolProvider(McpService mcpService) {return MethodToolCallbackProvider.builder().toolObjects(mcpService).build();}}
  • 增加配置 application.yml
spring:ai:mcp:server:stdio: falsename: webmvc-mcp-serverversion: 1.0.0type: SYNCinstructions: "这个服务器提供1.运势预测,2.天气查询,3.人数查询等服务"sse-endpoint: /mcp/ssecapabilities:tool: trueresource: trueprompt: truecompletion: true
http://www.sczhlp.com/news/52146/

相关文章:

  • 受欢迎的合肥网站建设淘宝现在网站建设不能发布要发布上面类目
  • 网站正在建设升级组织建设求是网
  • 广州专业网站设计企业江西网站建设公司哪家好
  • lamp网站开发架构经验wordpress 主题无法更换
  • 网站app软件wordpress制作热门文章
  • 成都分销网站建设建网站排名
  • 陕西住建厅网站官网wordpress不生成缩略图
  • 查看网站开通时间wordpress是php模板吗
  • 网站主目录权限配置网站备案必须做前置审批吗
  • 最好的免费logo设计网站距离我最近的装修公司电话
  • 网站建设采用thinkphp框架的优势做动画 的 网站有哪些
  • 关于bifurcation和chaos
  • win11 任务栏显示蓝牙图标
  • 2025.8.30 模拟赛
  • 数据库存储事务机制
  • 企联网站建设app界面设计制作步骤
  • 飞鸽网站建设wordpress主题module
  • 西安三网合一网站建设哪些网页游戏好玩
  • 网站刷单账务处理怎么做广告设计公司前台
  • 一个网站有多大营销计划的主要内容
  • 北京建设信源官方网站小程序导航网站开发
  • 设计免费素材网站有哪些数控技术是学什么
  • 网站腾讯qq对话框怎么做android app for wordpress
  • 龙华网站建设推广外包海曙区做网站
  • 广州网站开发定制需要多少钱网站建设与管理就业
  • 哪些本土厂商,布局BLDC?
  • 元学习在语言异常检测中的小样本应用
  • PHP 并不慢 你的架构才是瓶颈 大规模性能优化实战
  • ppt模板免费下载网站知乎哪些官网用wordpress
  • 企业网站的发展历史wordpress上传顶部图像