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

基于SpringBoot开发一个MCP Server

最近MCP特别火,互联网上也出现了很多基于MCP开发出来的MCP Server。

本文将以SpringBoot项目为例,分享如何基于SpringBoot项目开发一个MCP Server,帮助大家提高日常开发效率。

一、 MCP是什么?

MCP(Model Coordination Protocol)是一种协议,用来支持大模型调用外部的工具和服务,最初由 Anthropic 公司倡导和开发,你可能没听过这家公司,但是Claude模型你一定用过,它就是出自Anthropic之手。

MCP支持两种传输方式:

  • stdio (标准输入输出)
    适用于本地进程间通信。

  • sse(Server-Sent Events)
    使用http作为传输层
    适用于远程通信和 Web 环境

二、mcp server是什么?

除大模型本身的能力之外的其他工具和服务统称为mcp server。

可处理来自AI 客户端,如Claude, Cursor的请求和响应。

三、如何基于SpringBoot开发一个MCP Server?

基于SpringBoot开发一个MCP Server大致可分为几下几步。

  1. 首先安装JDK和IDEA,JDK的版本必须在17及以上。
  2. 导入maven依赖

注意,spring-ai提供了三个包,用来实现MCP Server。

每个包支持的协议不一样。

我们需要的是webmvc。

<dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-starter-mcp-server-webmvc</artifactId><version>1.0.0</version></dependency>
  • spring-ai-starter-mcp-server
    支持stdio协议。
  • spring-ai-starter-mcp-server-webmvc/
    支持sse协议
  • spring-ai-starter-mcp-server-webflux
    支持sse协议
  1. .yml文件中配置MCP Server相关属性。
spring:ai:mcp:server:stdio: false # 禁用stdio协议name: mcp-server # mcp-server名称sse-endpoint: sse # 启动sse协议,并指定端点路径为/sseenabled: true # 组件启用
  1. 使用@Tool注解标记具体的tool

该注解目前只支持方法维度。

@Service
public class EmployeeServiceImpl implements EmployeeService{@Autowiredprivate EmployeeMapper employeeMapper;@Override@Tool(name = "getEmployeeInfo", description = "获取员工信息")public Employee getEmployeeInfo(String employeeId) {return employeeMapper.selectById(employeeId);}@Override@Tool(name = "getEmployeeList", description = "获取员工列表")public List<Employee> getEmployeeList() {return employeeMapper.selectList(null);}@Override@Tool(name = "addEmployee", description = "添加新员工")public boolean addEmployee(TurEmployee employee) {return employeeMapper.insert(employee) > 0;}@Override@Tool(name = "updateEmployee", description = "更新员工信息")public boolean updateEmployee(TurEmployee employee) {return employeeMapper.updateById(employee) > 0;}
}
  1. 注册Tool对象
@Configuration
public class McpConfig {@Beanpublic ToolCallbackProvider toolCallbackProvider(TurEmployeeService turEmployeeService) {// 创建一个ToolCallbackProvider实例return MethodToolCallbackProvider.builder().toolObjects(EmployeeService) // 这里可以添加多个工具对象.build();}
}
  1. 启动springboot,检查tool是否已注册到mcp server中
    在这里插入图片描述
  2. 使用MCP Client调用MCP Server

本文使用的cursor。

需要配置下刚写好的MCP Server。

{"mcpServers": {"mcp-server": {"url": "http://127.0.0.1:18888/sse","type": "sse" // 协议类型}}
}

然后刷新下,即可看到已经注册到MCP Server 的4个tools。
在这里插入图片描述
9. 测试
在这里插入图片描述

如果觉得文章对您有帮助,欢迎点赞、关注并收藏。
后续会出系列文章来玩转mcp server,支持Java和Python两种语言。

http://www.xdnf.cn/news/9557.html

相关文章:

  • vue 中的ref属性
  • chown修改不成功的解决方案
  • ESP8285乐鑫SOCwifi芯片32bit MCU和2.4 GHz Wi-Fi
  • 零衍课堂 | 环境初始化部署流程
  • 从0到1:多医院陪诊小程序开发笔记(上)
  • VMware 安装 Ubuntu 实战教程
  • python学习打卡day38
  • 截图后怎么快速粘贴到notability?
  • day22-定时任务故障案例
  • 秒杀系统—2.第一版初步实现的技术文档
  • 医院闭环系统业务介绍
  • Linux基础 -- 设备树引脚复用之`/omit-if-no-ref/` 用法解析
  • 8.7 基于EAP-AKA的订阅转移
  • Springboot 集成 TDengine3.0版本
  • git stash 的使用
  • qt ubuntu 20.04 交叉编译
  • python实战:在Linux服务器上使用LibreOffice命令行批量接受Word文档的所有修订
  • MCP 与 AI 模型的用户隐私保护——如何让人工智能更懂“界限感”?
  • Python-114:字符串字符类型排序问题
  • HBO Max 中国大陆订阅与使用终极指南(2025 最新)
  • LangChain4j(17)——MCP客户端
  • 在PHP编程中包(Package)和库(Library)怎么区分?
  • 企业级AI开启落地战,得场景者得天下
  • LeeCode 94. 二叉树的中序遍历
  • YARN架构解析:大数据资源管理核心
  • 【MYSQL】mysql单表亿级数据查询优化处理
  • 2021年认证杯SPSSPRO杯数学建模D题(第二阶段)停车的策略全过程文档及程序
  • 探寻黄金奶源带,悠纯乳业打造西北乳业新标杆
  • Spring AI框架快速入门
  • day12 leetcode-hot100-20(矩阵3)