Spring Framework · Capability

Spring Framework - Project Bootstrapping

Workflow capability for discovering Spring Boot options and generating new Spring Boot projects. Combines Spring Initializr metadata discovery and project generation. Used by developers, DevOps teams, and CI/CD pipelines to scaffold new Spring-based microservices and applications.

Run with Naftiko BootstrapCode GenerationDeveloper ExperienceFrameworkProject GenerationSpringSpring Boot

What You Can Do

GET
List starters — List all available Spring Boot starter dependencies
/v1/starters
GET
Get options — Get all available options for Spring Boot project generation
/v1/options
GET
Generate project — Generate a Spring Boot project with the specified configuration
/v1/projects/generate

MCP Tools

discover-spring-boot-options

Discover all available Spring Boot versions, build tools, languages, and Java versions from Spring Initializr

read-only
find-spring-starters

Find available Spring Boot starter dependencies, optionally filtered by a specific Spring Boot version

read-only
create-spring-boot-project

Generate a new Spring Boot application project. Specify build tool (maven-project or gradle-project), language (java/kotlin/groovy), Spring Boot version, group ID, artifact ID, and comma-separated dependency IDs (e.g., 'web,data-jpa,security,actuator').

APIs Used

spring-initializr

Capability Spec

Raw ↑
naftiko: "1.0.0-alpha1"

info:
  label: "Spring Framework - Project Bootstrapping"
  description: >-
    Workflow capability for discovering Spring Boot options and generating new
    Spring Boot projects. Combines Spring Initializr metadata discovery and
    project generation. Used by developers, DevOps teams, and CI/CD pipelines
    to scaffold new Spring-based microservices and applications.
  tags:
    - Bootstrap
    - Code Generation
    - Developer Experience
    - Framework
    - Project Generation
    - Spring
    - Spring Boot
  created: "2026-05-02"
  modified: "2026-05-02"

capability:
  consumes:
    - import: spring-initializr
      location: ./shared/spring-initializr.yaml

  exposes:
    - type: rest
      port: 8080
      namespace: project-bootstrapping-api
      description: "Unified REST API for Spring Boot project discovery and generation."
      resources:
        - path: /v1/starters
          name: starters
          description: "Spring Boot starter dependency discovery"
          operations:
            - method: GET
              name: list-starters
              description: "List all available Spring Boot starter dependencies"
              call: "spring-initializr.list-dependencies"
              with:
                bootVersion: "rest.bootVersion"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/options
          name: generation-options
          description: "Project generation configuration options"
          operations:
            - method: GET
              name: get-options
              description: "Get all available options for Spring Boot project generation"
              call: "spring-initializr.get-metadata"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/projects/generate
          name: project-generation
          description: "Spring Boot project generation"
          operations:
            - method: GET
              name: generate-project
              description: "Generate a Spring Boot project with the specified configuration"
              call: "spring-initializr.generate-project"
              with:
                type: "rest.type"
                language: "rest.language"
                bootVersion: "rest.bootVersion"
                groupId: "rest.groupId"
                artifactId: "rest.artifactId"
                dependencies: "rest.dependencies"
                javaVersion: "rest.javaVersion"
                packaging: "rest.packaging"
              outputParameters:
                - type: object
                  mapping: "$."

    - type: mcp
      port: 9090
      namespace: project-bootstrapping-mcp
      transport: http
      description: "MCP server for AI-assisted Spring Boot project bootstrapping and dependency discovery."
      tools:
        - name: discover-spring-boot-options
          description: "Discover all available Spring Boot versions, build tools, languages, and Java versions from Spring Initializr"
          hints:
            readOnly: true
            openWorld: true
          call: "spring-initializr.get-metadata"
          outputParameters:
            - type: object
              mapping: "$."

        - name: find-spring-starters
          description: "Find available Spring Boot starter dependencies, optionally filtered by a specific Spring Boot version"
          hints:
            readOnly: true
            openWorld: true
          call: "spring-initializr.list-dependencies"
          with:
            bootVersion: "tools.bootVersion"
          outputParameters:
            - type: object
              mapping: "$."

        - name: create-spring-boot-project
          description: >-
            Generate a new Spring Boot application project. Specify build tool (maven-project or gradle-project),
            language (java/kotlin/groovy), Spring Boot version, group ID, artifact ID, and comma-separated
            dependency IDs (e.g., 'web,data-jpa,security,actuator').
          hints:
            readOnly: false
            destructive: false
          call: "spring-initializr.generate-project"
          with:
            type: "tools.buildTool"
            language: "tools.language"
            bootVersion: "tools.bootVersion"
            groupId: "tools.groupId"
            artifactId: "tools.artifactId"
            dependencies: "tools.dependencies"
            javaVersion: "tools.javaVersion"
            packaging: "tools.packaging"
          outputParameters:
            - type: object
              mapping: "$."