Spring Framework · Capability

Spring Initializr API — Generation

Spring Initializr API — Generation. 2 operations. Lead operation: Generate Project Archive (TGZ). Self-contained Naftiko capability covering one Spring Framework business surface.

Run with Naftiko Spring FrameworkGeneration

What You Can Do

GET
Generateprojecttgz — Generate Project Archive (TGZ)
/v1/starter-tgz
GET
Generateproject — Generate Project Archive
/v1/starter-zip

MCP Tools

generate-project-archive-tgz

Generate Project Archive (TGZ)

read-only idempotent
generate-project-archive

Generate Project Archive

read-only idempotent

Capability Spec

spring-initializr-generation.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Spring Initializr API — Generation
  description: 'Spring Initializr API — Generation. 2 operations. Lead operation: Generate Project Archive (TGZ). Self-contained
    Naftiko capability covering one Spring Framework business surface.'
  tags:
  - Spring Framework
  - Generation
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    SPRING_FRAMEWORK_API_KEY: SPRING_FRAMEWORK_API_KEY
capability:
  consumes:
  - type: http
    namespace: spring-initializr-generation
    baseUri: https://start.spring.io
    description: Spring Initializr API — Generation business capability. Self-contained, no shared references.
    resources:
    - name: starter.tgz
      path: /starter.tgz
      operations:
      - name: generateprojecttgz
        method: GET
        description: Generate Project Archive (TGZ)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: type
          in: query
          type: string
        - name: language
          in: query
          type: string
        - name: bootVersion
          in: query
          type: string
        - name: groupId
          in: query
          type: string
        - name: artifactId
          in: query
          type: string
        - name: dependencies
          in: query
          type: array
    - name: starter.zip
      path: /starter.zip
      operations:
      - name: generateproject
        method: GET
        description: Generate Project Archive
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: type
          in: query
          type: string
          description: Build system type
        - name: language
          in: query
          type: string
        - name: bootVersion
          in: query
          type: string
          description: Spring Boot version (e.g., 3.3.0)
        - name: baseDir
          in: query
          type: string
          description: Base directory name within the ZIP
        - name: groupId
          in: query
          type: string
        - name: artifactId
          in: query
          type: string
        - name: name
          in: query
          type: string
        - name: description
          in: query
          type: string
        - name: packageName
          in: query
          type: string
        - name: packaging
          in: query
          type: string
        - name: javaVersion
          in: query
          type: string
        - name: dependencies
          in: query
          type: array
          description: Comma-separated dependency IDs (e.g., web,data-jpa,security)
  exposes:
  - type: rest
    namespace: spring-initializr-generation-rest
    port: 8080
    description: REST adapter for Spring Initializr API — Generation. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/starter-tgz
      name: starter-tgz
      description: REST surface for starter.tgz.
      operations:
      - method: GET
        name: generateprojecttgz
        description: Generate Project Archive (TGZ)
        call: spring-initializr-generation.generateprojecttgz
        with:
          type: rest.type
          language: rest.language
          bootVersion: rest.bootVersion
          groupId: rest.groupId
          artifactId: rest.artifactId
          dependencies: rest.dependencies
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/starter-zip
      name: starter-zip
      description: REST surface for starter.zip.
      operations:
      - method: GET
        name: generateproject
        description: Generate Project Archive
        call: spring-initializr-generation.generateproject
        with:
          type: rest.type
          language: rest.language
          bootVersion: rest.bootVersion
          baseDir: rest.baseDir
          groupId: rest.groupId
          artifactId: rest.artifactId
          name: rest.name
          description: rest.description
          packageName: rest.packageName
          packaging: rest.packaging
          javaVersion: rest.javaVersion
          dependencies: rest.dependencies
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: spring-initializr-generation-mcp
    port: 9090
    transport: http
    description: MCP adapter for Spring Initializr API — Generation. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: generate-project-archive-tgz
      description: Generate Project Archive (TGZ)
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: spring-initializr-generation.generateprojecttgz
      with:
        type: tools.type
        language: tools.language
        bootVersion: tools.bootVersion
        groupId: tools.groupId
        artifactId: tools.artifactId
        dependencies: tools.dependencies
      outputParameters:
      - type: object
        mapping: $.
    - name: generate-project-archive
      description: Generate Project Archive
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: spring-initializr-generation.generateproject
      with:
        type: tools.type
        language: tools.language
        bootVersion: tools.bootVersion
        baseDir: tools.baseDir
        groupId: tools.groupId
        artifactId: tools.artifactId
        name: tools.name
        description: tools.description
        packageName: tools.packageName
        packaging: tools.packaging
        javaVersion: tools.javaVersion
        dependencies: tools.dependencies
      outputParameters:
      - type: object
        mapping: $.