by hpalma
Programmatically generate Spring Boot projects with custom configurations and download them, supporting Maven or Gradle, Java/Kotlin/Groovy languages, various Java versions, and optional automatic extraction of the ZIP archive.
Spring Initializr MCP Server provides an MCP endpoint that wraps the Spring Initializr API, allowing AI assistants to create Spring Boot projects on demand with any combination of build system, language, Java version, dependencies, and metadata.
mcpServers
section of Claude Desktop’s claude_desktop_config.json
(or the equivalent config for your AI client).default
for production, dev
for debugging).Q: Which Java version is required to build the source? A: Java 24 and GraalVM are required for native compilation; the generated projects can target Java 17, 21, or 24.
Q: Do I need an internet connection to generate projects?
A: Yes, the server fetches the latest Spring Initializr metadata and downloads the generated ZIP from start.spring.io
.
Q: How do I enable automatic ZIP extraction?
A: Set the shouldExtract
parameter to true
when invoking the generate-spring-boot-project
tool.
Q: Can I add custom dependencies not listed in Spring Initializr? A: Only dependencies recognized by the Spring Initializr metadata are supported; unknown names will cause generation to fail.
Q: What platforms are supported for the native binary? A: Linux x64, Windows x64, macOS x64, and macOS ARM64.
An MCP (Model Context Protocol) server that provides access to Spring Initializr functionality, allowing AI assistants to generate and download Spring Boot projects programmatically.
This project implements an MCP server that wraps the Spring Initializr API, enabling AI assistants (like Claude) to create Spring Boot projects with custom configurations. Instead of manually visiting start.spring.io, you can now ask your AI assistant to generate projects with specific dependencies, Java versions, and project structures.
When generating a project, you can specify:
maven-project
, gradle-project
, gradle-project-kotlin
java
, kotlin
, groovy
17
, 21
, 24
(defaults to 17
)jar
, war
(defaults to jar
)Download the appropriate binary for your platform from the Releases page:
springinitializr-mcp-linux-x64
springinitializr-mcp-windows-x64.exe
springinitializr-mcp-macos-x64
springinitializr-mcp-macos-arm64
Requirements:
git clone https://github.com/hpalma/springinitializr-mcp.git
cd springinitializr-mcp
./gradlew build
./gradlew nativeCompile
Add the MCP server to your Claude Desktop configuration:
Edit ~/Library/Application Support/Claude/claude_desktop_config.json
:
{
"mcpServers": {
"springinitializr": {
"command": "/path/to/springinitializr-mcp-binary"
}
}
}
Edit %APPDATA%/Claude/claude_desktop_config.json
:
{
"mcpServers": {
"springinitializr": {
"command": "C:\\path\\to\\springinitializr-mcp-windows-x64.exe"
}
}
}
Once configured, you can ask Claude to generate Spring Boot projects:
"Create a Spring Boot web application with Spring Data JPA, PostgreSQL, and Spring Security dependencies"
"Generate a Kotlin Spring Boot project using Gradle with WebFlux and MongoDB"
"Create a Maven-based Spring Boot project with Thymeleaf, Validation, and Actuator"
The tool will generate and download the project as a ZIP file to your specified location, with optional automatic extraction.
The server supports all Spring Initializr dependencies, including:
The dependency list is automatically updated by fetching the latest metadata from 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
The project uses a Gradle task to fetch the latest Spring Initializr metadata and generate constants for supported dependencies and Java versions:
./gradlew generateToolDescriptions
This ensures the tool always supports the latest Spring Boot versions and dependencies by:
https://start.spring.io/metadata/client
SpringInitializrConstants.java
with current dependenciesThe project includes comprehensive tests:
# Run all tests
./gradlew test nativeTest nativeIntegrationTest
# Run only unit tests
./gradlew test
# Run only native integration tests
./gradlew nativeIntegrationTest
The integration tests include startup time validation to ensure native compilation provides expected performance benefits:
The project uses GitHub Actions for:
The server uses Spring Boot configuration with the following key properties:
spring:
application:
name: springinitializr-mcp
ai:
mcp:
server:
name: springinitializr
version: 1.0.0
Generates and downloads a Spring Boot project with the specified configuration.
Parameters:
downloadFolderPath
(optional): Target download directoryshouldExtract
(optional): Whether to extract the ZIP fileprojectType
(optional): Project build system typelanguage
(optional): Programming languagegroupId
(optional): Maven/Gradle group identifierartifactId
(optional): Project artifact identifierspringBootVersion
(optional): Spring Boot version to usename
(optional): Project display namedescription
(optional): Project descriptionpackageName
(optional): Base Java package namepackaging
(optional): Packaging type (JAR/WAR)javaVersion
(optional): Target Java versiondependencies
(optional): Comma-separated dependency listReturns: Absolute path to the downloaded file or extracted directory
git checkout -b feature/amazing-feature
)./gradlew test nativeTest
)./gradlew generateToolDescriptions
)git commit -m 'Add amazing feature'
)git push origin feature/amazing-feature
)Native executable fails to start:
Project generation fails:
MCP connection issues:
Run with the dev profile for enhanced logging:
./gradlew bootRun --args='--spring.profiles.active=dev'
This project is licensed under the MIT License - see the LICENSE file for details.
Please log in to share your review and rating for this MCP.
Explore related MCPs that share similar capabilities and solve comparable challenges
by zed-industries
A high‑performance, multiplayer code editor designed for speed and collaboration.
by modelcontextprotocol
Model Context Protocol Servers
by modelcontextprotocol
A Model Context Protocol server for Git repository interaction and automation.
by modelcontextprotocol
A Model Context Protocol server that provides time and timezone conversion capabilities.
by cline
An autonomous coding assistant that can create and edit files, execute terminal commands, and interact with a browser directly from your IDE, operating step‑by‑step with explicit user permission.
by continuedev
Enables faster shipping of code by integrating continuous AI agents across IDEs, terminals, and CI pipelines, offering chat, edit, autocomplete, and customizable agent workflows.
by upstash
Provides up-to-date, version‑specific library documentation and code examples directly inside LLM prompts, eliminating outdated information and hallucinated APIs.
by github
Connects AI tools directly to GitHub, enabling natural‑language interactions for repository browsing, issue and pull‑request management, CI/CD monitoring, code‑security analysis, and team collaboration.
by daytonaio
Provides a secure, elastic infrastructure that creates isolated sandboxes for running AI‑generated code with sub‑90 ms startup, unlimited persistence, and OCI/Docker compatibility.