关于 Spring Initializr MCP Server
Spring Initializr MCP Server 让 AI 助手生成并下载可配置的 Spring Boot 项目,支持 Maven 或 Gradle、多种 JVM 语言及依赖选择。
主要功能
- 01生成配置好的 Spring Boot 项目
- 02选择 Maven 或 Gradle 项目类型
- 03选择 Java、Kotlin 或 Groovy
- 04添加 Spring Boot 依赖
- 05下载 ZIP 并可选自动解压
适用场景
- 01搭建 Spring Boot Web 应用
- 02创建使用 Gradle 的 Kotlin 项目
- 03准备含指定 Starter 的项目
MCP 相关
向 MCP 客户端提供项目生成工具,可配置并下载 Spring Boot 项目,也可选择解压 ZIP 文件。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Spring Initializr MCP 服务
一个 MCP(Model Context Protocol)服务,可提供 Spring Initializr 功能,让 AI 助手以编程方式生成和下载 Spring Boot 项目。
这是什么?
本项目实现了一个封装 Spring Initializr API 的 MCP 服务,使 AI 助手(如 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 Starter 和依赖项
- 项目元数据:Group ID、Artifact ID、名称、描述、包名
- 下载选项:自定义下载位置并自动解压 ZIP 文件
安装
下载预构建二进制文件
从 Releases 页面下载适用于你平台的二进制文件:
- 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"
}
}
}
Windows
编辑 %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 项目。”
“创建一个基于 Maven 的 Spring Boot 项目,包含 Thymeleaf、Validation 和 Actuator。”
该工具会将项目生成为 ZIP 文件并下载到你指定的位置,也可选择自动解压。
可用依赖项
该服务支持所有 Spring Initializr 依赖项,包括:
- Web:Spring Web、WebFlux、GraphQL、REST repositories
- 安全:Spring Security、OAuth2、LDAP
- 数据:JPA、JDBC、MongoDB、Redis、Elasticsearch、R2DBC
- 消息传递:RabbitMQ、Apache Kafka、WebSocket
- 云:Spring Cloud Gateway、Config、Eureka、Feign
- 运维:Actuator、Micrometer、Distributed Tracing
- AI:Spring AI,支持各种模型提供商
- 测试:TestContainers、Contract testing
依赖项列表会通过从 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
环境配置文件
- 默认:为生产环境使用精简日志
- Dev:为开发和调试提供增强日志
API 参考
工具:generate-spring-boot-project
根据指定配置生成并下载 Spring Boot 项目。
参数:
downloadFolderPath(可选):目标下载目录shouldExtract(可选):是否解压 ZIP 文件projectType(可选):项目构建系统类型language(可选):编程语言groupId(可选):Maven/Gradle 组标识符artifactId(可选):项目构件标识符springBootVersion(可选):要使用的 Spring Boot 版本name(可选):项目显示名称description(可选):项目描述packageName(可选):Java 基础包名packaging(可选):打包类型(JAR/WAR)javaVersion(可选):目标 Java 版本dependencies(可选):以逗号分隔的依赖项列表
**返回:**下载文件或解压目录的绝对路径
贡献
- Fork 仓库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 进行更改
- 为新功能添加测试
- 确保所有测试通过(
./gradlew test nativeTest) - 如有需要,更新生成的常量(
./gradlew generateToolDescriptions) - 提交更改(
git commit -m 'Add amazing feature') - 推送到分支(
git push origin feature/amazing-feature) - 创建 Pull Request
故障排除
常见问题
原生可执行文件无法启动:
- 确保使用适用于你平台的二进制文件
- 检查二进制文件在 Unix 系统上是否具有执行权限
- 确认没有防病毒软件阻止执行
项目生成失败:
- 检查与 Spring Initializr 的网络连接
- 确认指定的依赖项有效
- 确保下载目录存在且可写
MCP 连接问题:
- 确认 Claude Desktop 配置正确
- 检查二进制文件路径是否为有效的绝对路径
- 修改配置后重启 Claude Desktop
调试模式
使用 dev 配置文件运行,以启用增强日志:
./gradlew bootRun --args='--spring.profiles.active=dev'
许可证
本项目采用 MIT 许可证,详情请参阅 LICENSE 文件。
致谢
- Spring Initializr - 用于生成 Spring Boot 项目的底层服务
- Model Context Protocol - 协议规范
- Spring AI - MCP 服务框架支持
- GraalVM - 原生编译能力
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。