mcpField
S
Springboot + MCP + JUnit 模板项目

Springboot + MCP + JUnit 模板项目

本地服务
github.com/dreamcenter开发工具1483 周前更新

关于 Springboot + MCP + JUnit 模板项目

该 Spring Boot 模板项目面向 Java 开发者,用于构建带有 JUnit 测试的 MCP 服务,支持 STDIO 和 SSE,并提供客户端配置说明。

主要功能

  1. 01Spring Boot MCP 项目模板
  2. 02支持 JUnit 测试
  3. 03支持 STDIO 和 SSE 模式
  4. 04提供客户端配置说明

适用场景

  1. 01启动 Spring Boot MCP 项目
  2. 02使用 JUnit 测试服务代码
  3. 03通过 STDIO 运行服务
  4. 04通过 SSE 连接客户端

MCP 相关

该模板用于构建 MCP 服务,客户端可通过 STDIO 或 SSE 连接。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

来自项目 README

Springboot + MCP + JUnit 模板项目


使用springboot快速构建一个mcp项目,项目支持 JUNIT单元测试。

模式支持: STDIO 和 SSE

解说视频:

  • 全网首发:从零搭建 Springboot+MCP+JUnit 项目 【搭配CherryStudio】BV1qUXkYRE6C
  • 全网首发:Springboot+MCP(SSE)+JUnit 从搭建到上线 BV1rSXWYGEVz

开发环境
  • 开发IDE: IDEA
  • java版本: JAVA17 (Spring官方要求必须java17+)
  • maven版本: 3.8.1 (太高引入项目时可能报错,请选择适当版本)
参考文档资料
  1. MCP官网-协议 (必读文档)
  2. MCP官网-编码指南
  3. Spring官网
客户端测试方案
1. 对于STDIO客户端配置方式:
命令(Command):
    java
参数(Arguments):
    -jar
    -Dfile.encoding=UTF-8
    -Dspring.ai.mcp.server.stdio=true
    AbsolutePath/**/xxx.jar
环境(Environments):
    env1=xxx
    env2=yyy

指令是java(如果本地主环境不是17+,注意切换);

参数file.encoding指定System.in和System.out为UTF-8编码,避免编码问题;

参数spring.ai.mcp.server.stdio表示以stdio的方式启用该服务;

环境配置,是将配置写入当前系统环境,以供当前程序调取。


2. 对于SSE客户端配置方式:
SSE地址填写如下链接即可
http://主机地址:端口/sse

额外可选功能的探索
1. 修改消息端点

配置文件参见:McpServerProperties

spring.ai.mcp.server.sseMessageEndpoint=/mcp/message
2. 修改sse端点

原始的sse端点在/sse,而配置文件没有提供sse端点的配置方式,所以需要重新注入 ServerMcpTransport 来换掉原来的。

注意下面两个Bean配置都要加,因为自动注入文件 MpcWebMvcServerAutoConfiguration 中,对整个注册的注入条件是 @ConditionalOnMissingBean(ServerMcpTransport.class),导致下面两个bean都不会注入

private final String SSE_ENDPOINT = "/sse";

@Bean
@ConditionalOnMissingBean
public WebMvcSseServerTransport webMvcSseServerTransport(ObjectMapper objectMapper,
        McpServerProperties serverProperties) {
    return new WebMvcSseServerTransport(objectMapper, serverProperties.getSseMessageEndpoint(), SSE_ENDPOINT);
}

@Bean
public RouterFunction<ServerResponse> mvcMcpRouterFunction(WebMvcSseServerTransport transport) {
    return transport.getRouterFunction();
}
3. 一服务多端点?

需要重新注入多个 McpSyncServer ,详见类 MpcServerAutoConfiguration 。

因为多端点可能会涉及到的东西非常多,感兴趣的可以自己研究,我就只提供这样的指引啦!

4. SSE授权?

在2025.03.26 的MCP官方协议文档中,更新了鉴权方案, 期待Spring的更新。



Bye.ヾ(•ω•`)o

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。