by hpalma
springinitializr-mcp is an MCP (Model Context Protocol) server that provides access to Spring Initializr functionality, allowing AI assistants to generate and download Spring Boot projects programmatically.
springinitializr-mcp is an MCP (Model Context Protocol) server that wraps the Spring Initializr API. It enables AI assistants, such as Claude, to create Spring Boot projects with custom configurations. This eliminates the need for manual visits to start.spring.io, allowing users to generate projects with specific dependencies, Java versions, and project structures directly through their AI assistant.
To use springinitializr-mcp, you first need to install it. You can either download pre-built binaries for Linux, Windows, or macOS from the GitHub Releases page, or build it from source using Java 24 and GraalVM. Once installed, you configure your AI assistant (e.g., Claude Desktop) by adding the MCP server command to its configuration file. After configuration, you can simply ask your AI assistant to generate Spring Boot projects using natural language commands, specifying desired dependencies, project types, languages, and Java versions. The project will be generated and downloaded as a ZIP file.
Q: What are the common issues when using springinitializr-mcp?
A: Common issues include native executable failing to start (check binary, permissions, antivirus), project generation failures (check internet, valid dependencies, writable download directory), and MCP connection issues (verify Claude Desktop configuration, binary path, restart Claude Desktop).
Q: How can I debug springinitializr-mcp?
A: You can run the server with the dev profile for enhanced logging by executing ./gradlew bootRun --args='--spring.profiles.active=dev'.
Q: Does springinitializr-mcp support all Spring Initializr dependencies?
A: Yes, the server supports all Spring Initializr dependencies, and the dependency list is automatically updated by fetching the latest metadata from Spring Initializr.
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-kotlinjava, kotlin, groovy17, 21, 24 (defaults to 17)jar, war (defaults to jar)Download the appropriate binary for your platform from the Releases page:
springinitializr-mcp-linux-x64springinitializr-mcp-windows-x64.exespringinitializr-mcp-macos-x64springinitializr-mcp-macos-arm64Requirements:
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/clientSpringInitializrConstants.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.
Discover more MCP servers with similar functionality and use cases
by zed-industries
Provides real-time collaborative editing powered by Rust, enabling developers to edit code instantly across machines with a responsive, GPU-accelerated UI.
by cline
Provides autonomous coding assistance directly in the IDE, enabling file creation, editing, terminal command execution, browser interactions, and tool extension with user approval at each step.
by continuedev
Provides continuous AI assistance across IDEs, terminals, and CI pipelines, offering agents, chat, inline editing, and autocomplete to accelerate software development.
by github
Enables AI agents, assistants, and chatbots to interact with GitHub via natural‑language commands, providing read‑write access to repositories, issues, pull requests, workflows, security data and team activity.
by block
Automates engineering tasks by installing, executing, editing, and testing code using any large language model, providing end‑to‑end project building, debugging, workflow orchestration, and external API interaction.
by RooCodeInc
An autonomous coding agent that lives inside VS Code, capable of generating, refactoring, debugging code, managing files, running terminal commands, controlling a browser, and adapting its behavior through custom modes and instructions.
by lastmile-ai
A lightweight, composable framework for building AI agents using Model Context Protocol and simple workflow patterns.
by firebase
Provides a command‑line interface to manage, test, and deploy Firebase projects, covering hosting, databases, authentication, cloud functions, extensions, and CI/CD workflows.
by gptme
Empowers large language models to act as personal AI assistants directly inside the terminal, providing capabilities such as code execution, file manipulation, web browsing, vision, and interactive tool usage.