Release Notes
2.0.x
| Version | Date |
|---|---|
2.0.0 |
TBD |
Breaking Changes
-
[2.0.0] The Maven artifact relocations and configuration property fallbacks for the old
quarkus-mcp-server-sseartifact (renamed toquarkus-mcp-server-httpin 1.8.0) have been removed. Users still referencingquarkus-mcp-server-ssemust switch toquarkus-mcp-server-http, and any configuration properties using thesse.prefix (e.g.quarkus.mcp.server.sse.root-path) must be updated to use thehttp.prefix (e.g.quarkus.mcp.server.http.root-path). (#826) -
[2.0.0] JSON-RPC batching support has been removed. Batching was added in MCP 2025-03-26 and removed in 2025-06-18. The server now rejects batch (JSON array) messages with a parse error. The
whenBatch()method has been removed from theMcpAssuredtest API. (#723)
1.13.x
| Version | Date |
|---|---|
June 3, 2026 |
Breaking Changes
-
[1.13.0] The
audienceattribute of the@Resource.Annotationsannotation and theContent.Annotationsrecord now supports multiple roles. The annotation attribute type changed fromRoletoRole[]and the record field type changed fromRoletoList<Role>. A backwards-compatible constructor accepting a singleRoleis provided. (#788)
New Features
-
Elicitation URL mode: Servers can redirect users to an external URL for sensitive interactions instead of using form-based elicitation. (#711)
-
OptionalInt,OptionalLong, andOptionalDoubleparameters: Primitive-specialized optional types are now supported in tool and resource method signatures. (#769) -
Lazy SSE initialization for Streamable HTTP: SSE initialization is deferred until an API that requires it is invoked, removing the need for "transport hints" when adding tools programmatically. (#725)
-
Streamable HTTP auto-init reads
_metafields: The server now readsclientInfoandclientCapabilitiesfrom_metaon each request when auto-initialization is enabled. (#796) -
FeatureInfo#method(): Exposes the declaringjava.lang.reflect.Method, making it easier for filters to read method-level annotations. (#809) -
OIDC security failure handler: Intercepts OIDC security exceptions on Streamable HTTP connections and converts them into JSON-RPC error responses. (#775)
-
quarkus-mcp-server-oidcextension: Adds a Vert.x failure handler for OIDC403 Forbiddenresponses withWWW-Authenticateheaders as recommended by the MCP authorization spec. (#780)
Important Bug Fixes
-
[1.13.0] The CLI adapter now derives MCP tool parameter names from Picocli
@Optionnames instead of Java field names, and prefers the longest (most descriptive) option name. (#576) -
[1.13.0] Build-time validation of resource template methods now correctly considers the
nameattribute of@ResourceTemplateArginstead of only matching against method parameter names. (#806) -
[1.13.0] Custom Jackson serializers and deserializers are now honored for
@ToolArgparameters of scalar and custom types, fixing incorrect schema generation and argument conversion. (#774) -
[1.13.0] Client-side 4xx HTTP errors in Streamable HTTP are now logged at WARN level instead of ERROR, avoiding false production alerts. (#760)
1.12.x
| Version | Date |
|---|---|
May 18, 2026 |
|
April 21, 2026 |
Breaking Changes
-
[1.12.1] The
audienceattribute of the@Resource.Annotationsannotation and theContent.Annotationsrecord now supports multiple roles. The annotation attribute type changed fromRoletoRole[]and the record field type changed fromRoletoList<Role>. A backwards-compatible constructor accepting a singleRoleis provided. (backported from 1.13.x) (#788)
New Features
-
OpenTelemetry tracing: Distributed tracing for MCP server operations is now available when
quarkus-opentelemetryis present, following the OpenTelemetry semantic conventions for MCP servers. Tracing overhead is minimal when OpenTelemetry is disabled. (#703) -
Transport hints: A new API allows users to disable forced SSE initialization for programmatically added features, improving performance and simplifying request processing for tools that don’t require SSE. (#715)
-
Per-server feature name uniqueness: Feature names (tools, resources, prompts) are now enforced as unique per server configuration instead of globally, allowing different MCP servers to define features with the same name. (#627)
-
McpStdioTestClient: A new test utility for STDIO-based MCP servers, available through theMcpAssuredAPI. (#721)
Important Bug Fixes
-
[1.12.0] Empty
ToolAnnotationstitle is no longer included in the JSON response, which caused some MCP clients (e.g. IBM Bob IDE) to not display available tools. (#748) -
[1.12.0]
McpLog#error(Throwable, String, Object…)now correctly delegates tologger.errorf(…)instead oflogger.infof(…). (#744) -
[1.12.0] The server now sends a proper error response when a client subscribes to or unsubscribes from a non-existent resource URI, instead of throwing an uncaught exception. (#716)
-
[1.12.0] The
Iconclass is now registered for reflection, fixing missing icons in native mode. (#706) -
[1.12.0] Streamable HTTP transport no longer uses
McpMetadatain the hot path, reducing unnecessary allocations in larger deployments. (#722) -
[1.12.1] Custom Jackson serializers and deserializers are now honored for
@ToolArgparameters of scalar and custom types, fixing incorrect schema generation and argument conversion. (backported from 1.13.x) (#774)
1.11.x
| Version | Date |
|---|---|
April 8, 2026 |
|
March 25, 2026 |
New Features
-
Multiple
@McpServerbindings: The@McpServerannotation is now repeatable, allowing a single feature (tool, resource, prompt) to be bound to multiple server configurations. A configuration flag is available to enable backward compatibility mode. (#595) -
Schema validator module: A new module validates all MCP client requests and notifications against the relevant MCP specification JSON schema. (#17)
-
Tool name validation: An optional validation of tool names according to the MCP specification rules can be enabled via configuration. (#691)
-
DNS rebinding protection: Streamable HTTP servers bound to localhost now have DNS rebinding protection enabled by default, with options to configure or disable it. (#657)
-
Disable HTTP/WebSocket transport per server: Individual HTTP or WebSocket transports can now be disabled for a specific server configuration. (#633)
-
Elicitation schema builders: Convenient builder APIs for elicitation schema properties, including a new
IntegerSchema. (#652) -
InitialResponseInfo: A new API that provides access to the initialization response details inInitialCheckimplementations. (#597) -
Dev UI improvements: Aligned Dev UI screens with the Dev MCP look and feel, and added internationalization support. (#615)
Important Bug Fixes
-
[1.11.0] Pagination cursor is now based on a snapshot timestamp instead of name, making it resilient to concurrent modifications. (#672)
-
[1.11.0] Fixed a race condition in pagination. (#686)
-
[1.11.0] Elicitation and sampling now work correctly in native image. (#679)
-
[1.11.0] Elicitation schema properties are now encoded correctly. (#645)
-
[1.11.0] The
AudioContentreturn type is now encoded correctly. (#644) -
[1.11.0] Build-time validation of
@Iconsproviders now correctly handles inner classes. (#649) -
[1.11.0] Fixed incorrect validation of tool default value converters. (#619)
-
[1.11.1] The
Iconclass is now registered for reflection, fixing missing icons in native mode. (backported from 1.12.x) (#706) -
[1.11.1] The server now sends a proper error response when a client subscribes to or unsubscribes from a non-existent resource URI, instead of throwing an uncaught exception. (backported from 1.12.x) (#716)
-
[1.11.1] Streamable HTTP transport no longer uses
McpMetadatain the hot path, reducing unnecessary allocations in larger deployments. (backported from 1.12.x) (#722)
1.10.x
| Version | Date |
|---|---|
June 2, 2026 |
|
April 8, 2026 |
|
March 30, 2026 |
|
March 12, 2026 |
|
February 24, 2026 |
|
February 17, 2026 |
|
February 10, 2026 |
Breaking Changes
-
[1.10.6] The
audienceattribute of the@Resource.Annotationsannotation and theContent.Annotationsrecord now supports multiple roles. The annotation attribute type changed fromRoletoRole[]and the record field type changed fromRoletoList<Role>. A backwards-compatible constructor accepting a singleRoleis provided. (backported from 1.13.x) (#788)
New Features
-
Metrics support: Basic metrics for MCP server operations are now available when Micrometer is present. (#589)
-
FilterContext: Filters can now access additional metadata from the_metafield, the request ID, and the JSON-RPC method name. (#582) -
Relaxed initialization phase: The initialization phase constraints have been relaxed to allow more flexible server startup. (#586)
-
Resource usability improvements: Improved resource content encoding with a default
ResourceContentsEncoderimplementation. (#601)
Important Bug Fixes
-
[1.10.1] Fixed icons parsing when icon theme is null. (#611)
-
[1.10.2] Fixed incorrect validation of tool default value converters. (backported from 1.11.x) (#619)
-
[1.10.3] Elicitation schema properties are now encoded correctly. (backported from 1.11.x) (#645)
-
[1.10.3] The
AudioContentreturn type is now encoded correctly. (backported from 1.11.x) (#644) -
[1.10.3] Pagination cursor is now based on a snapshot timestamp instead of name, making it resilient to concurrent modifications. (backported from 1.11.x) (#672)
-
[1.10.4] Elicitation and sampling now work correctly in native image. (backported from 1.11.x) (#679)
-
[1.10.4] Fixed a race condition in pagination. (backported from 1.11.x) (#686)
-
[1.10.4] The
Iconclass is now registered for reflection, fixing missing icons in native mode. (backported from 1.12.x) (#706) -
[1.10.5] The server now sends a proper error response when a client subscribes to or unsubscribes from a non-existent resource URI, instead of throwing an uncaught exception. (backported from 1.12.x) (#716)
-
[1.10.5] Streamable HTTP transport no longer uses
McpMetadatain the hot path, reducing unnecessary allocations in larger deployments. (backported from 1.12.x) (#722) -
[1.10.6] Empty
ToolAnnotationstitle is no longer included in the JSON response, which caused some MCP clients (e.g. IBM Bob IDE) to not display available tools. (backported from 1.12.x) (#748) -
[1.10.6]
McpLog#error(Throwable, String, Object…)now correctly delegates tologger.errorf(…)instead oflogger.infof(…). (backported from 1.12.x) (#744) -
[1.10.6] Build-time validation of resource template methods now correctly considers the
nameattribute of@ResourceTemplateArginstead of only matching against method parameter names. (backported from 1.13.x) (#806)
1.9.x
| Version | Date |
|---|---|
February 6, 2026 |
|
January 28, 2026 |
New Features
-
Icons for tools, resources, resource templates, and prompts: Features can now have associated icons for display in MCP clients. (#561)
-
Tool input/output guardrails: A new mechanism to validate or transform tool inputs before execution and tool outputs before they are returned to the client. (#556)
-
Elicitation updates: Support for default values in all primitive types for elicitation schemas, and updates to
ElicitResultandEnumSchema. (#552) -
Server/client
Implementationmetadata:description,icons, andwebsiteUrlfields are now supported in the server and clientImplementationrecords. (#548) -
Dummy initialization for Streamable HTTP: Allows performing a dummy initialization to work around clients that do not properly initialize the MCP connection. (#519)
Important Bug Fixes
-
[1.9.0] Fixed missing
$defsin generatedinputSchemaofDefaultSchemaGenerator, breaking support for recursive and complex types. (#540) -
[1.9.0] Input validation errors are now returned as tool response errors instead of JSON-RPC protocol errors. (#537)
-
[1.9.0] Tool error messages no longer leak internal Java class names during argument validation. (#554)
-
[1.9.1]
FilterContextintroduced — filters can now access metadata from themetafield, request ID, and JSON-RPC method name. _(backported from 1.10.x) (#582) -
[1.9.1] The initialization phase constraints have been relaxed to allow more flexible server startup. (backported from 1.10.x) (#586)
1.8.x
| Version | Date |
|---|---|
December 10, 2025 |
|
November 26, 2025 |
Breaking Changes
-
The
quarkus-mcp-server-sseartifact has been renamed toquarkus-mcp-server-http. Relocations and configuration fallbacks are provided for backward compatibility. (#501)
New Features
-
Feature metadata: Additional metadata can now be attached to feature definitions (tools, resources, prompts) via the
@MetaFieldannotation or the programmatic API. (#503) -
WrapBusinessError#unless(): A new option to conditionally skip error wrapping for specific exception types. (#505) -
Tool name max length configuration: A new
quarkus.mcp.server.tools.name-max-lengthconfig property to enforce tool name length limits. (#484) -
LangChain4j annotation support toggle: Support for LangChain4j
@Tool/@Pannotations can now be disabled via configuration. (#475)
Important Bug Fixes
-
[1.8.0] Fixed
Toolmethod returningUniwithstructuredContentenabled. (#480) -
[1.8.0] Fixed resource template completion when the client does not include the template name in the reference. (#494)
-
[1.8.0] Hibernate Validator processor no longer wraps all validated methods, only MCP feature methods. (#507)
-
[1.8.1] Dummy initialization for Streamable HTTP is now available. (backported from 1.9.x) (#519)
1.7.x
| Version | Date |
|---|---|
November 19, 2025 |
|
November 12, 2025 |
|
November 3, 2025 |
|
October 15, 2025 |
Important Bug Fixes
-
[1.7.1] Fixed
Toolmethod returningUniwithstructuredContentenabled. (backported from 1.8.x) (#479) -
[1.7.2] WebSocket endpoints now use
InboundProcessingMode#CONCURRENTfor proper concurrent message handling. (backported from 1.8.x) (#486) -
[1.7.3] WebSocket transport now ensures MCP connection is initialized before a message is consumed. (#499)
-
[1.7.3] Fixed HTTP transport compatibility with Quarkus 3.30+. (#491)
-
[1.7.3] Fixed resource template completion when the client does not include the template name in the reference. (backported from 1.8.x) (#493)
1.6.x
| Version | Date |
|---|---|
October 8, 2025 |
|
September 23, 2025 |
New Features
-
Hibernate Validator integration: A new
quarkus-mcp-server-hibernate-validatormodule integrates Hibernate Validator for automatic validation of tool inputs, with improved input schema generation for Jakarta Validation annotations. (#431) -
Instructions support: Servers can now include instructions in the initialization response. (#408)
-
McpExceptionin public API:McpExceptionhas been moved to the public API for use in feature implementations. (#424) -
quarkus-mcp-server-bom: Introduced a Bill of Materials artifact for dependency management. (#395)
Important Bug Fixes
-
[1.6.0] The CDI request context is now activated during
Notification.Type.INITIALIZEDprocessing. (#425) -
[1.6.1] Extracted
ObjectMapperCustomizerfromDefaultSchemaGeneratorto fix a timing issue whereObjectMapperstatic initialization could conflict withSchemaGeneratorConfigCustomizerimplementations that depend on runtime configuration. (#445)
1.5.x
| Version | Date |
|---|---|
September 8, 2025 |
|
September 8, 2025 |
|
September 8, 2025 |
|
August 27, 2025 |
Breaking Changes
-
The deprecated
ResourceInfo#sendUpdate()method has been removed. (#384)
New Features
-
Elicitation support: Servers can request additional input from users during tool execution. (#362)
-
Structured tool output: Tools can now return structured content alongside text responses. (#379)
-
Resource annotations: Support for annotations on resources, resource templates, and contents (audience, priority, lastModified). (#383)
-
Resource links in tool calls and prompts: Tool responses and prompts can now include resource links. (#370)
-
_metafield support: Additional metadata represented by the_metafield is now supported. (#367) -
Title for features: A human-readable
titlefield for display in UI is now supported. (#367) -
CompleteContext: A new context object for completion handlers. (#367) -
RawMessage: Access to the raw JSON-RPC message is now available. (#366) -
Programmatic API improvements: Interfaces are now used instead of records for arguments, and cancellation support has been added. (#365, #366)
-
quarkus-mcp-server-bom: [1.5.1] Introduced a Bill of Materials artifact for dependency management. (backported from 1.6.x) (#396)
1.4.x
| Version | Date |
|---|---|
July 31, 2025 |
|
July 17, 2025 |
New Features
-
Request cancellation: Support for cancelling in-progress MCP requests. (#332)
-
McpAssuredtesting API: A convenient new API for testing MCP servers in integration tests. (#316) -
Subsidiary SSE streams: Streamable HTTP transport now supports subsidiary SSE streams. (#330)
-
Pagination control: Pagination can now be disabled by setting the page size to zero or a negative value. (#327)
1.3.x
| Version | Date |
|---|---|
June 24, 2025 |
|
June 19, 2025 |
New Features
-
Multiple MCP server configurations: A single application can now host multiple MCP server configurations with separate endpoints. (#285)
-
Tool annotations: Support for MCP tool annotations (
readOnlyHint,destructiveHint, etc.). (#281) -
InitialCheck: A new hook to inspect and optionally reject client connections during initialization. (#294) -
InitialRequest#transport(): The transport type is now available in the initial request. (#296) -
Connection idle timeout: A configurable idle timeout for MCP connections. (#291)
-
Roots and sampling timeouts: Configurable timeouts for roots and sampling operations. (#288)
-
SSE query parameters: Query parameters from the SSE endpoint URL are now available in the message endpoint. (#290)
-
Nested tool argument schema generation: Annotation-based schema generation now supports nested argument classes. (#298)
1.2.x
| Version | Date |
|---|---|
June 4, 2025 |
|
May 28, 2025 |
|
May 22, 2025 |
New Features
-
Streamable HTTP transport: Initial support for the Streamable HTTP transport as defined in the MCP specification. (#240)
-
Filters: A mechanism to determine the set of visible and accessible features per connection. (#257)
-
Default values for
@ToolArgand@PromptArg: Annotations now support specifying default values. (#235) -
Dev UI bearer token input: The Dev UI now includes an input field for bearer token authentication. (#220)
1.1.x
| Version | Date |
|---|---|
April 23, 2025 |
|
April 17, 2025 |
New Features
-
CLI adapter: An early draft of the CLI adapter for exposing CLI tools as MCP tools. (#166)
-
Sampling support: Initial support for the MCP sampling capability. (#214)
-
Roots support: Initial support for the MCP roots capability. (#212)
-
Progress API: A new API for reporting progress of long-running tool operations. (#195)
-
Notification hook: A new
@Notificationannotation for post-initialization logic. (#212) -
Dev UI completion views: The Dev UI now includes views for completion APIs. (#210)
1.0.x
| Version | Date |
|---|---|
April 10, 2025 |
|
April 2, 2025 |
1.0.0 is the first stable release of the Quarkus MCP Server extension, preceded by six Alpha, five Beta, and one CR pre-releases. It provides core support for MCP tools, resources, resource templates, prompts, and completions over STDIO and SSE transports, with a Dev UI for interactive testing.