Spring Initializr MCP服务器
一个MCP(模型上下文协议)服务器,提供对Spring Initializr功能的访问,允许AI助手以编程方式生成和下载Spring Boot项目。
这是什么?
该项目实现了一个MCP服务器,该服务器封装了Spring Initialzer API,使人工智能助手(如Claude)能够创建具有自定义配置的Spring Boot项目。而不是手动访问 start.spring.io,您现在可以要求您的AI助手生成具有特定依赖关系、Java版本和项目结构的项目。
特性
- 生成Spring Boot项目:使用自定义配置创建新的Spring Boot项目
- 灵活的配置:支持不同的项目类型(Maven/Gradle)、语言(Java/Kotlin/Groovy)和Java版本
- 依赖管理:自动添加流行的Spring Boot依赖项
- 本地编译:GraalVM本机编译的快速启动时间
- 交叉平台的:适用于Linux、Windows和macOS的本机二进制文件(x64和ARM64)
- 自动提取:可选择提取下载的ZIP文件
- 动态元数据:自动获取最新的Spring Boot版本和依赖项
支持的参数
生成项目时,可以指定:
- 项目类型:
maven-project,gradle-project,gradle-project-kotlin - 语言:
java,kotlin,groovy - Java版本:
17,21,24(默认为17) - 包装:
jar,war(默认为jar) - 依赖项:数百个Spring Boot启动器和依赖项
- 项目元数据:组ID、工件ID、名称、描述、包名称
- 下载选项:自定义下载位置和自动ZIP提取
安装
下载预构建的二进制文件
从以下网址下载适用于您平台的二进制文件 发布 页面:
- Linux x64:
springinitializr-mcp-linux-x64 - Windows x64:
springinitializr-mcp-windows-x64.exe - macOS x64:
springinitializr-mcp-macos-x64 - macOS ARM64:
springinitializr-mcp-macos-arm64
从源代码构建
要求:
- Java 24
- GraalVM(用于本机编译)
git clone https://github.com/hpalma/springinitializr-mcp.git
cd springinitializr-mcp
./gradlew build
./gradlew nativeCompile使用Claude Desktop
将MCP服务器添加到您的Claude Desktop配置中:
macOS/Linux
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"springinitializr": {
"command": "/path/to/springinitializr-mcp-binary"
}
}
}视窗
编辑 %APPDATA%/Claude/claude_desktop_config.json:
{
"mcpServers": {
"springinitializr": {
"command": "C:\\path\\to\\springinitializr-mcp-windows-x64.exe"
}
}
}示例用法
配置后,您可以要求Claude生成Spring Boot项目:
“使用Spring Data JPA、PostgreSQL和Spring Security依赖项创建Spring Boot web应用程序”
“使用Gradle、WebFlux和MongoDB生成Kotlin Spring Boot项目”
“使用Thymeleaf、验证和执行器创建基于Maven的Spring Boot项目”
该工具将生成项目并将其作为ZIP文件下载到您指定的位置,并可选择自动提取。
可用依赖关系
服务器支持所有Spring Initializr依赖项,包括:
- 网络:Spring Web、WebFlux、GraphQL、REST存储库
- 安全:Spring Security、OAuth2、LDAP
- 数据:JPA、JDBC、MongoDB、Redis、Elasticsearch、R2DBC
- 消息传递:RabbitMQ、Apache Kafka、WebSocket
- 云:Spring云网关、配置、Eureka、Feign
- 运维:执行器、千分尺、分布式跟踪
- 人工智能:Spring AI与各种模型提供商合作
- 测试:测试容器、合同测试
通过从Spring Initializr获取最新元数据,依赖关系列表会自动更新。
发展
在发展中奔跑
# Run with dev profile for more logging
./gradlew bootRun --args='--spring.profiles.active=dev'
# Generate updated constants from Spring Initializr
./gradlew generateToolDescriptions
# Run tests
./gradlew test
# Run native tests
./gradlew nativeTest代码生成
该项目使用Gradle任务来获取最新的Spring Initializr元数据,并为支持的依赖关系和Java版本生成常量:
./gradlew generateToolDescriptions这确保了该工具始终支持最新的Spring Boot版本和依赖关系:
- 从获取元数据
https://start.spring.io/metadata/client - 生成
SpringInitializrConstants.java具有当前依赖关系 - 更新支持的Java版本和默认值
测试
该项目包括综合测试:
- 单元测试:核心功能的标准JUnit测试
- 集成测试:MCP协议实施测试
- 本地测试:验证本机编译是否正常工作
- URL生成器测试:Spring Initializr URL构造的验证
# Run all tests
./gradlew test nativeTest nativeIntegrationTest
# Run only unit tests
./gradlew test
# Run only native integration tests
./gradlew nativeIntegrationTest本地性能测试
集成测试包括启动时验证,以确保本机编译提供预期的性能优势:
- 本机可执行文件在1秒内启动
- 完整的MCP协议握手验证
- 工具发现和调用测试
CI/CD
该项目使用GitHub Actions用于:
- 持续集成:对每个推送/PR进行构建和测试
- 发布自动化:为所有平台创建本机二进制文件
- 多平台支持:Linux、Windows、macOS(x64和ARM64)
- 自动化测试:单元、集成和本机测试
发布过程
- 在GitHub上创建新版本或手动触发工作流
- 为所有平台自动构建本机二进制文件
- 二进制文件附在版本中供下载
配置
应用程序配置
服务器使用具有以下关键属性的Spring Boot配置:
spring:
application:
name: springinitializr-mcp
ai:
mcp:
server:
name: springinitializr
version: 1.0.0环境概况
- 默认:生产使用的日志记录最少
- 开发:增强了开发和调试的日志记录
api参考
工具:生成弹簧引导项目
生成并下载具有指定配置的Spring Boot项目。
参数:
downloadFolderPath(可选):目标下载目录shouldExtract(可选):是否提取ZIP文件projectType(可选):项目构建系统类型language(可选):编程语言groupId(可选):Maven/Gradle组标识符artifactId(可选):项目工件标识符springBootVersion(可选):要使用的Spring Boot版本name(可选):项目显示名称description(可选):项目描述packageName(可选):基本Java包名称packaging(可选):包装类型(JAR/WAR)javaVersion(可选):目标Java版本dependencies(可选):逗号分隔的依赖关系列表
退货: 下载文件或提取目录的绝对路径
贡献
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 进行更改
- 添加新功能的测试
- 确保所有测试通过(
./gradlew test nativeTest) - 如果需要,更新生成的常量(
./gradlew generateToolDescriptions) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
故障排除
常见问题
本机可执行文件无法启动:
- 确保您的平台有正确的二进制文件
- 检查二进制文件在Unix系统上是否具有执行权限
- 验证没有防病毒软件阻止执行
项目生成失败:
- 检查Spring Initializr的互联网连接
- 验证指定的依赖关系是否有效
- 确保下载目录存在并且可写
MCP连接问题:
- 验证Claude Desktop配置是否正确
- 检查二进制路径是否绝对有效
- 配置更改后重新启动Claude Desktop
调试模式
使用开发配置文件运行以增强日志记录:
./gradlew bootRun --args='--spring.profiles.active=dev'许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
致谢
- Spring 初始化器 -用于生成Spring Boot项目的底层服务
- 模型上下文协议 -协议规范
- 春季AI -MCP服务器框架支持
- GraalVM 的 -本机编译功能

