Skip to main content

Requirements

GATool needs Java 21 or newer, Spring Boot 4.1.x and Spring AI 2.0.x from 2.0.1. Spring AI 2.0.1 fixes CVE-2026-59279 and CVE-2026-59318. The auto-configuration is compiled against Spring Boot 4.1 and Spring AI 2.0 APIs, so Spring Boot 4.0.x and Spring AI 1.x are unsupported. Startup warns where the application runs a Spring Boot or Spring AI line this release did not test. The warning names the tested lines and the versions found. The Model Context Protocol (MCP) starter needs Spring MVC, which means a servlet web application. Every guard in front of the endpoint is a servlet filter. With both stacks present, Boot runs the servlet stack, and GATool serves MCP there. Startup warns and names the WebFilter, SecurityWebFilterChain and reactive RouterFunction beans that stay unserved. With spring.main.web-application-type=reactive set, startup stops. The message says so and points at the in-process starter. That starter's tools run without those filters. The endpoint reads JWT access tokens only. The build runs on Java 21 and Java 25, and the release build runs on Java 21.

This release runs on the JVM. GATool has yet to be run in a GraalVM native image. The starters ship without runtime hints for the operation folders. With gatool.dev.experimental.generate-tools set to dynamic-three-step, which generates the dynamic tools, startup stops inside a native image and names the property. Spring Boot documents a faster start on the JVM under AOT Cache and CDS. That page covers the AOT cache on Java 25 and class data sharing on Java 21.

Tomcat's version comes from your build. The MCP starter brings Tomcat through Spring AI's WebMVC server starter. It leaves the Tomcat version to the Spring Boot release your application builds on. An application on Spring Boot 4.1.1 therefore runs Tomcat 11.0.24. Three advisories affect that version: GHSA-9xv2-5v5q-p794 in the DIGEST authenticator, GHSA-h3x4-894j-xpx5 in the FORM authenticator, and GHSA-gcx9-497g-6cp6 in access control. Tomcat 11.0.25 fixes all three. GATool's own build and tests run on Tomcat 11.0.26. The SBOM of a release lists 11.0.26, because it records what GATool was built with. Your application's dependency tree shows the version it runs:

./mvnw dependency:tree -Dincludes=org.apache.tomcat.embed

Until a Spring Boot release manages Tomcat 11.0.25 or later, set the version in your own build. With spring-boot-starter-parent as the parent, one property sets it:

<properties>
<tomcat.version>11.0.26</tomcat.version>
</properties>

With spring-boot-dependencies imported as a BOM, manage tomcat-embed-core, tomcat-embed-el and tomcat-embed-websocket at 11.0.26 ahead of the import. Maven resolves an imported POM's properties against that POM. A property in your build does not reach it. With Gradle and Spring's dependency management plugin, ext['tomcat.version'] = '11.0.26' sets it.