From 23b81e1668adbd7b60686f7f4c61095e767a2660 Mon Sep 17 00:00:00 2001 From: Christian Tzolov Date: Wed, 1 Oct 2025 23:33:03 +0100 Subject: [PATCH 01/10] Release version 0.14.0 Signed-off-by: Christian Tzolov --- mcp-bom/pom.xml | 2 +- mcp-core/pom.xml | 6 +++--- mcp-json-jackson2/pom.xml | 4 ++-- mcp-json/pom.xml | 2 +- mcp-spring/mcp-spring-webflux/pom.xml | 8 ++++---- mcp-spring/mcp-spring-webmvc/pom.xml | 10 +++++----- mcp-test/pom.xml | 4 ++-- mcp/pom.xml | 6 +++--- pom.xml | 2 +- 9 files changed, 22 insertions(+), 22 deletions(-) diff --git a/mcp-bom/pom.xml b/mcp-bom/pom.xml index 6b1027a21..9a0ab83c1 100644 --- a/mcp-bom/pom.xml +++ b/mcp-bom/pom.xml @@ -7,7 +7,7 @@ io.modelcontextprotocol.sdk mcp-parent - 0.14.0-SNAPSHOT + 0.14.0 mcp-bom diff --git a/mcp-core/pom.xml b/mcp-core/pom.xml index 8637303fe..906ddd699 100644 --- a/mcp-core/pom.xml +++ b/mcp-core/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 0.14.0-SNAPSHOT + 0.14.0 mcp-core jar @@ -68,7 +68,7 @@ io.modelcontextprotocol.sdk mcp-json - 0.14.0-SNAPSHOT + 0.14.0 @@ -101,7 +101,7 @@ io.modelcontextprotocol.sdk mcp-json-jackson2 - 0.14.0-SNAPSHOT + 0.14.0 test diff --git a/mcp-json-jackson2/pom.xml b/mcp-json-jackson2/pom.xml index b3d0a16de..cad6114a9 100644 --- a/mcp-json-jackson2/pom.xml +++ b/mcp-json-jackson2/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 0.14.0-SNAPSHOT + 0.14.0 mcp-json-jackson2 jar @@ -37,7 +37,7 @@ io.modelcontextprotocol.sdk mcp-json - 0.14.0-SNAPSHOT + 0.14.0 com.fasterxml.jackson.core diff --git a/mcp-json/pom.xml b/mcp-json/pom.xml index ebbc90142..d0e90bd25 100644 --- a/mcp-json/pom.xml +++ b/mcp-json/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 0.14.0-SNAPSHOT + 0.14.0 mcp-json jar diff --git a/mcp-spring/mcp-spring-webflux/pom.xml b/mcp-spring/mcp-spring-webflux/pom.xml index 5a96e609d..96113c140 100644 --- a/mcp-spring/mcp-spring-webflux/pom.xml +++ b/mcp-spring/mcp-spring-webflux/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 0.14.0-SNAPSHOT + 0.14.0 ../../pom.xml mcp-spring-webflux @@ -25,19 +25,19 @@ io.modelcontextprotocol.sdk mcp-json-jackson2 - 0.14.0-SNAPSHOT + 0.14.0 io.modelcontextprotocol.sdk mcp - 0.14.0-SNAPSHOT + 0.14.0 io.modelcontextprotocol.sdk mcp-test - 0.14.0-SNAPSHOT + 0.14.0 test diff --git a/mcp-spring/mcp-spring-webmvc/pom.xml b/mcp-spring/mcp-spring-webmvc/pom.xml index e59c94c22..ab4aa484d 100644 --- a/mcp-spring/mcp-spring-webmvc/pom.xml +++ b/mcp-spring/mcp-spring-webmvc/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 0.14.0-SNAPSHOT + 0.14.0 ../../pom.xml mcp-spring-webmvc @@ -25,13 +25,13 @@ io.modelcontextprotocol.sdk mcp-json-jackson2 - 0.14.0-SNAPSHOT + 0.14.0 io.modelcontextprotocol.sdk mcp - 0.14.0-SNAPSHOT + 0.14.0 @@ -43,14 +43,14 @@ io.modelcontextprotocol.sdk mcp-test - 0.14.0-SNAPSHOT + 0.14.0 test io.modelcontextprotocol.sdk mcp-spring-webflux - 0.14.0-SNAPSHOT + 0.14.0 test diff --git a/mcp-test/pom.xml b/mcp-test/pom.xml index cbaabdada..b5f2d21b7 100644 --- a/mcp-test/pom.xml +++ b/mcp-test/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 0.14.0-SNAPSHOT + 0.14.0 mcp-test jar @@ -24,7 +24,7 @@ io.modelcontextprotocol.sdk mcp - 0.14.0-SNAPSHOT + 0.14.0 diff --git a/mcp/pom.xml b/mcp/pom.xml index 492bd447d..50522f7a0 100644 --- a/mcp/pom.xml +++ b/mcp/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 0.14.0-SNAPSHOT + 0.14.0 mcp jar @@ -25,13 +25,13 @@ io.modelcontextprotocol.sdk mcp-json-jackson2 - 0.14.0-SNAPSHOT + 0.14.0 io.modelcontextprotocol.sdk mcp-core - 0.14.0-SNAPSHOT + 0.14.0 diff --git a/pom.xml b/pom.xml index a5fd98b7f..6ffeb3752 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 0.14.0-SNAPSHOT + 0.14.0 pom https://github.com/modelcontextprotocol/java-sdk From 60b12b40e4bbf6fbe45ba4c30139f46110282298 Mon Sep 17 00:00:00 2001 From: Christian Tzolov Date: Wed, 1 Oct 2025 23:33:26 +0100 Subject: [PATCH 02/10] Next development version Signed-off-by: Christian Tzolov --- mcp-bom/pom.xml | 2 +- mcp-core/pom.xml | 6 +++--- mcp-json-jackson2/pom.xml | 4 ++-- mcp-json/pom.xml | 2 +- mcp-spring/mcp-spring-webflux/pom.xml | 8 ++++---- mcp-spring/mcp-spring-webmvc/pom.xml | 10 +++++----- mcp-test/pom.xml | 4 ++-- mcp/pom.xml | 6 +++--- pom.xml | 2 +- 9 files changed, 22 insertions(+), 22 deletions(-) diff --git a/mcp-bom/pom.xml b/mcp-bom/pom.xml index 9a0ab83c1..e14419d21 100644 --- a/mcp-bom/pom.xml +++ b/mcp-bom/pom.xml @@ -7,7 +7,7 @@ io.modelcontextprotocol.sdk mcp-parent - 0.14.0 + 0.14.1-SNAPSHOT mcp-bom diff --git a/mcp-core/pom.xml b/mcp-core/pom.xml index 906ddd699..0b8a343ac 100644 --- a/mcp-core/pom.xml +++ b/mcp-core/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 0.14.0 + 0.14.1-SNAPSHOT mcp-core jar @@ -68,7 +68,7 @@ io.modelcontextprotocol.sdk mcp-json - 0.14.0 + 0.14.1-SNAPSHOT @@ -101,7 +101,7 @@ io.modelcontextprotocol.sdk mcp-json-jackson2 - 0.14.0 + 0.14.1-SNAPSHOT test diff --git a/mcp-json-jackson2/pom.xml b/mcp-json-jackson2/pom.xml index cad6114a9..ae3118c7f 100644 --- a/mcp-json-jackson2/pom.xml +++ b/mcp-json-jackson2/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 0.14.0 + 0.14.1-SNAPSHOT mcp-json-jackson2 jar @@ -37,7 +37,7 @@ io.modelcontextprotocol.sdk mcp-json - 0.14.0 + 0.14.1-SNAPSHOT com.fasterxml.jackson.core diff --git a/mcp-json/pom.xml b/mcp-json/pom.xml index d0e90bd25..ce38169da 100644 --- a/mcp-json/pom.xml +++ b/mcp-json/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 0.14.0 + 0.14.1-SNAPSHOT mcp-json jar diff --git a/mcp-spring/mcp-spring-webflux/pom.xml b/mcp-spring/mcp-spring-webflux/pom.xml index 96113c140..4fa18cc31 100644 --- a/mcp-spring/mcp-spring-webflux/pom.xml +++ b/mcp-spring/mcp-spring-webflux/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 0.14.0 + 0.14.1-SNAPSHOT ../../pom.xml mcp-spring-webflux @@ -25,19 +25,19 @@ io.modelcontextprotocol.sdk mcp-json-jackson2 - 0.14.0 + 0.14.1-SNAPSHOT io.modelcontextprotocol.sdk mcp - 0.14.0 + 0.14.1-SNAPSHOT io.modelcontextprotocol.sdk mcp-test - 0.14.0 + 0.14.1-SNAPSHOT test diff --git a/mcp-spring/mcp-spring-webmvc/pom.xml b/mcp-spring/mcp-spring-webmvc/pom.xml index ab4aa484d..2f011be9f 100644 --- a/mcp-spring/mcp-spring-webmvc/pom.xml +++ b/mcp-spring/mcp-spring-webmvc/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 0.14.0 + 0.14.1-SNAPSHOT ../../pom.xml mcp-spring-webmvc @@ -25,13 +25,13 @@ io.modelcontextprotocol.sdk mcp-json-jackson2 - 0.14.0 + 0.14.1-SNAPSHOT io.modelcontextprotocol.sdk mcp - 0.14.0 + 0.14.1-SNAPSHOT @@ -43,14 +43,14 @@ io.modelcontextprotocol.sdk mcp-test - 0.14.0 + 0.14.1-SNAPSHOT test io.modelcontextprotocol.sdk mcp-spring-webflux - 0.14.0 + 0.14.1-SNAPSHOT test diff --git a/mcp-test/pom.xml b/mcp-test/pom.xml index b5f2d21b7..bb78e12a2 100644 --- a/mcp-test/pom.xml +++ b/mcp-test/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 0.14.0 + 0.14.1-SNAPSHOT mcp-test jar @@ -24,7 +24,7 @@ io.modelcontextprotocol.sdk mcp - 0.14.0 + 0.14.1-SNAPSHOT diff --git a/mcp/pom.xml b/mcp/pom.xml index 50522f7a0..2f440272b 100644 --- a/mcp/pom.xml +++ b/mcp/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 0.14.0 + 0.14.1-SNAPSHOT mcp jar @@ -25,13 +25,13 @@ io.modelcontextprotocol.sdk mcp-json-jackson2 - 0.14.0 + 0.14.1-SNAPSHOT io.modelcontextprotocol.sdk mcp-core - 0.14.0 + 0.14.1-SNAPSHOT diff --git a/pom.xml b/pom.xml index 6ffeb3752..8c6358e67 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 0.14.0 + 0.14.1-SNAPSHOT pom https://github.com/modelcontextprotocol/java-sdk From 1f1386a85ebdbb0d65c5f0e026ef5fa4883890c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dariusz=20J=C4=99drzejczyk?= Date: Wed, 1 Oct 2025 13:50:55 +0200 Subject: [PATCH 03/10] Add section describing our architectural and design choices (#595) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Adib Saikali Signed-off-by: Dariusz Jędrzejczyk --- README.md | 127 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) diff --git a/README.md b/README.md index 39ba13926..4ac7e8d5b 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,133 @@ Please follow the [Contributing Guidelines](CONTRIBUTING.md). - [Issue Tracker](https://github.com/modelcontextprotocol/java-sdk/issues) - [CI/CD](https://github.com/modelcontextprotocol/java-sdk/actions) +## Architecture and Design Decisions + +### Introduction + +Building a general-purpose MCP Java SDK requires making technology decisions in areas where the JDK provides limited or no support. The Java ecosystem is powerful but fragmented: multiple valid approaches exist, each with strong communities. +Our goal is not to prescribe "the one true way," but to provide a reference implementation of the MCP specification that is: + +* **Pragmatic** – makes developers productive quickly +* **Interoperable** – aligns with widely used libraries and practices +* **Pluggable** – allows alternatives where projects prefer different stacks +* **Grounded in team familiarity** – we chose technologies the team can be productive with today, while remaining open to community contributions that broaden the SDK + +### Key Choices and Considerations + +The SDK had to make decisions in the following areas: + +1. **JSON serialization** – mapping between JSON and Java types + +2. **Programming model** – supporting asynchronous processing, cancellation, and streaming while staying simple for blocking use cases + +3. **Observability** – logging and enabling integration with metrics/tracing + +4. **Remote clients and servers** – supporting both consuming MCP servers (client transport) and exposing MCP endpoints (server transport with authorization) + +The following sections explain what we chose, why it made sense, and how the choices align with the SDK's goals. + +### 1. JSON Serialization + +* **SDK Choice**: Jackson for JSON serialization and deserialization, behind an SDK abstraction (`mcp-json`) + +* **Why**: Jackson is widely adopted across the Java ecosystem, provides strong performance and a mature annotation model, and is familiar to the SDK team and many potential contributors. + +* **How we expose it**: Public APIs use a zero-dependency abstraction (`mcp-json`). Jackson is shipped as the default implementation (`mcp-jackson2`), but alternatives can be plugged in. + +* **How it fits the SDK**: This offers a pragmatic default while keeping flexibility for projects that prefer different JSON libraries. + +### 2. Programming Model + +* **SDK Choice**: Reactive Streams for public APIs, with Project Reactor as the internal implementation and a synchronous facade for blocking use cases + +* **Why**: MCP builds on JSON-RPC's asynchronous nature and defines a bidirectional protocol on top of it, enabling asynchronous and streaming interactions. MCP explicitly supports: + + * Multiple in-flight requests and responses + * Notifications that do not expect a reply + * STDIO transports for inter-process communication using pipes + * Streaming transports such as Server-Sent Events and Streamable HTTP + + These requirements call for a programming model more powerful than single-result futures like `CompletableFuture`. + + * **Reactive Streams: the Community Standard** + + Reactive Streams is a small Java specification that standardizes asynchronous stream processing with backpressure. It defines four minimal interfaces (Publisher, Subscriber, Subscription, and Processor). These interfaces are widely recognized as the standard contract for async, non-blocking pipelines in Java. + + * **Reactive Streams Implementation** + + The SDK uses Project Reactor as its implementation of the Reactive Streams specification. Reactor is mature, widely adopted, provides rich operators, and integrates well with observability through context propagation. Team familiarity also allowed us to deliver a solid foundation quickly. + We plan to convert the public API to only expose Reactive Streams interfaces. By defining the public API in terms of Reactive Streams interfaces and using Reactor internally, the SDK stays standards-based while benefiting from a practical, production-ready implementation. + + * **Synchronous Facade in the SDK** + + Not all MCP use cases require streaming pipelines. Many scenarios are as simple as "send a request and block until I get the result." + To support this, the SDK provides a synchronous facade layered on top of the reactive core. Developers can stay in a blocking model when it's enough, while still having access to asynchronous streaming when needed. + +* **How it fits the SDK**: This design balances scalability, approachability, and future evolution such as Virtual Threads and Structured Concurrency in upcoming JDKs. + +### 3. Observability + +* **SDK Choice**: SLF4J for logging; Reactor Context for observability propagation + +* **Why**: SLF4J is the de facto logging facade in Java, with broad compatibility. Reactor Context enables propagation of observability data such as correlation IDs and tracing state across async boundaries. This ensures interoperability with modern observability frameworks. + +* **How we expose it**: Public APIs log through SLF4J only, with no backend included. Observability metadata flows through Reactor pipelines. The SDK itself does not ship metrics or tracing implementations. + +* **How it fits the SDK**: This provides reliable logging by default and seamless integration with Micrometer, OpenTelemetry, or similar systems for metrics and tracing. + +### 4. Remote MCP Clients and Servers + +MCP supports both clients (applications consuming MCP servers) and servers (applications exposing MCP endpoints). The SDK provides support for both sides. + +#### Client Transport in the SDK + +* **SDK Choice**: JDK HttpClient (Java 11+) as the default client, with optional Spring WebClient support + +* **Why**: The JDK HttpClient is built-in, portable, and supports streaming responses. This keeps the default lightweight with no extra dependencies. Spring WebClient support is available for Spring-based projects. + +* **How we expose it**: MCP Client APIs are transport-agnostic. The core module ships with JDK HttpClient transport. A Spring module provides WebClient integration. + +* **How it fits the SDK**: This ensures all applications can talk to MCP servers out of the box, while allowing richer integration in Spring and other environments. + +#### Server Transport in the SDK + +* **SDK Choice**: Jakarta Servlet implementation in core, with optional Spring WebFlux and Spring WebMVC providers + +* **Why**: Servlet is the most widely deployed Java server API. WebFlux and WebMVC cover a significant part of the Spring community. Together these provide reach across blocking and non-blocking models. + +* **How we expose it**: Server APIs are transport-agnostic. Core includes Servlet support. Spring modules extend support for WebFlux and WebMVC. + +* **How it fits the SDK**: This allows developers to expose MCP servers in the most common Java environments today, while enabling other transport implementations such as Netty, Vert.x, or Helidon. + +#### Authorization in the SDK + +* **SDK Choice**: Pluggable authorization hooks for MCP servers; no built-in implementation + +* **Why**: MCP servers must restrict access to authenticated and authorized clients. Authorization needs differ across environments such as Spring Security, MicroProfile JWT, or custom solutions. Providing hooks avoids lock-in and leverages proven libraries. + +* **How we expose it**: Authorization is integrated into the server transport layer. The SDK does not include its own authorization system. + +* **How it fits the SDK**: This keeps server-side security ecosystem-neutral, while ensuring applications can plug in their preferred authorization strategy. + +### Project Structure of the SDK + +The SDK is organized into modules to separate concerns and allow adopters to bring in only what they need: +* `mcp-bom` – Dependency versions +* `mcp-core` – Reference implementation (STDIO, JDK HttpClient, Servlet) +* `mcp-json` – JSON abstraction +* `mcp-jackson2` – Jackson implementation of JSON binding +* `mcp` – Convenience bundle (core + Jackson) +* `mcp-test` – Shared testing utilities +* `mcp-spring` – Spring integrations (WebClient, WebFlux, WebMVC) + +For example, a minimal adopter may depend only on `mcp` (core + Jackson), while a Spring-based application can use `mcp-spring` for deeper framework integration. + +### Future Directions + +The SDK is designed to evolve with the Java ecosystem. Areas we are actively watching include: +Concurrency in the JDK – Virtual Threads and Structured Concurrency may simplify the synchronous API story + ## License This project is licensed under the [MIT License](LICENSE). From 531c5b80157f187b97fb10bf3794385b25cc6a21 Mon Sep 17 00:00:00 2001 From: Christian Tzolov Date: Fri, 3 Oct 2025 10:56:50 +0200 Subject: [PATCH 04/10] Update theREADME team section Signed-off-by: Christian Tzolov --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4ac7e8d5b..7bda15006 100644 --- a/README.md +++ b/README.md @@ -47,6 +47,7 @@ Please follow the [Contributing Guidelines](CONTRIBUTING.md). - Christian Tzolov - Dariusz Jędrzejczyk +- Daniel Garnier-Moiroux ## Links From 475456537fdf058f37d2412b823eb9a34a555713 Mon Sep 17 00:00:00 2001 From: Sergio del Amo Date: Mon, 6 Oct 2025 21:55:23 +0200 Subject: [PATCH 05/10] define explicitely that values should always be included in code completions (#601) * define explicitely that values should always be included * spring apply --- .../modelcontextprotocol/spec/McpSchema.java | 1 + .../CompleteCompletionSerializationTest.java | 28 +++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 mcp-core/src/test/java/io/modelcontextprotocol/spec/CompleteCompletionSerializationTest.java diff --git a/mcp-core/src/main/java/io/modelcontextprotocol/spec/McpSchema.java b/mcp-core/src/main/java/io/modelcontextprotocol/spec/McpSchema.java index 12835a57a..e37b4df60 100644 --- a/mcp-core/src/main/java/io/modelcontextprotocol/spec/McpSchema.java +++ b/mcp-core/src/main/java/io/modelcontextprotocol/spec/McpSchema.java @@ -2501,6 +2501,7 @@ public CompleteResult(CompleteCompletion completion) { * @param hasMore Indicates whether there are additional completion options beyond * those provided in the current response, even if the exact total is unknown */ + @JsonInclude(JsonInclude.Include.ALWAYS) public record CompleteCompletion( // @formatter:off @JsonProperty("values") List values, @JsonProperty("total") Integer total, diff --git a/mcp-core/src/test/java/io/modelcontextprotocol/spec/CompleteCompletionSerializationTest.java b/mcp-core/src/test/java/io/modelcontextprotocol/spec/CompleteCompletionSerializationTest.java new file mode 100644 index 000000000..55f71fea4 --- /dev/null +++ b/mcp-core/src/test/java/io/modelcontextprotocol/spec/CompleteCompletionSerializationTest.java @@ -0,0 +1,28 @@ +package io.modelcontextprotocol.spec; + +import io.modelcontextprotocol.json.McpJsonMapper; +import org.junit.jupiter.api.Test; +import java.io.IOException; +import java.util.Collections; +import static org.junit.jupiter.api.Assertions.assertEquals; + +class CompleteCompletionSerializationTest { + + @Test + void codeCompletionSerialization() throws IOException { + McpJsonMapper jsonMapper = McpJsonMapper.getDefault(); + McpSchema.CompleteResult.CompleteCompletion codeComplete = new McpSchema.CompleteResult.CompleteCompletion( + Collections.emptyList(), 0, false); + String json = jsonMapper.writeValueAsString(codeComplete); + String expected = """ + {"values":[],"total":0,"hasMore":false}"""; + assertEquals(expected, json, json); + + McpSchema.CompleteResult completeResult = new McpSchema.CompleteResult(codeComplete); + json = jsonMapper.writeValueAsString(completeResult); + expected = """ + {"completion":{"values":[],"total":0,"hasMore":false}}"""; + assertEquals(expected, json, json); + } + +} From b49ab3a6dc6ee3928792a482570637e587aa0d5d Mon Sep 17 00:00:00 2001 From: Sergio del Amo Date: Mon, 6 Oct 2025 23:00:54 +0200 Subject: [PATCH 06/10] fix remove name when using deduction (#600) This pull-request removes the name member from the @JsonSubTypes.Type annotations when using JsonTypeInfo.Id.DEDUCTION. With DEDUCTION, Jackson ignores the name entirely because it's inferring the type from the structure. --- .../src/main/java/io/modelcontextprotocol/spec/McpSchema.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mcp-core/src/main/java/io/modelcontextprotocol/spec/McpSchema.java b/mcp-core/src/main/java/io/modelcontextprotocol/spec/McpSchema.java index e37b4df60..ead09d353 100644 --- a/mcp-core/src/main/java/io/modelcontextprotocol/spec/McpSchema.java +++ b/mcp-core/src/main/java/io/modelcontextprotocol/spec/McpSchema.java @@ -1064,8 +1064,8 @@ public UnsubscribeRequest(String uri) { * The contents of a specific resource or sub-resource. */ @JsonTypeInfo(use = JsonTypeInfo.Id.DEDUCTION) - @JsonSubTypes({ @JsonSubTypes.Type(value = TextResourceContents.class, name = "text"), - @JsonSubTypes.Type(value = BlobResourceContents.class, name = "blob") }) + @JsonSubTypes({ @JsonSubTypes.Type(value = TextResourceContents.class), + @JsonSubTypes.Type(value = BlobResourceContents.class) }) public sealed interface ResourceContents extends Meta permits TextResourceContents, BlobResourceContents { /** From 61f7be222b4447798353651df81d1afe7a555d95 Mon Sep 17 00:00:00 2001 From: Christian Tzolov <1351573+tzolov@users.noreply.github.com> Date: Mon, 6 Oct 2025 23:04:42 +0200 Subject: [PATCH 07/10] refactor: change int to Integer for optional numeric fields (#604) Convert primitive int types to Integer wrapper class for: - JSONRPCError.code - CreateMessageRequest.maxTokens (including constructor and builder) This allows these fields to be nullable, properly representing optional parameters in the MCP protocol schema. Signed-off-by: Christian Tzolov --- .../main/java/io/modelcontextprotocol/spec/McpSchema.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mcp-core/src/main/java/io/modelcontextprotocol/spec/McpSchema.java b/mcp-core/src/main/java/io/modelcontextprotocol/spec/McpSchema.java index ead09d353..e43469903 100644 --- a/mcp-core/src/main/java/io/modelcontextprotocol/spec/McpSchema.java +++ b/mcp-core/src/main/java/io/modelcontextprotocol/spec/McpSchema.java @@ -306,7 +306,7 @@ public record JSONRPCResponse( // @formatter:off @JsonInclude(JsonInclude.Include.NON_ABSENT) @JsonIgnoreProperties(ignoreUnknown = true) public record JSONRPCError( // @formatter:off - @JsonProperty("code") int code, + @JsonProperty("code") Integer code, @JsonProperty("message") String message, @JsonProperty("data") Object data) { // @formatter:on } @@ -1822,14 +1822,14 @@ public record CreateMessageRequest( // @formatter:off @JsonProperty("systemPrompt") String systemPrompt, @JsonProperty("includeContext") ContextInclusionStrategy includeContext, @JsonProperty("temperature") Double temperature, - @JsonProperty("maxTokens") int maxTokens, + @JsonProperty("maxTokens") Integer maxTokens, @JsonProperty("stopSequences") List stopSequences, @JsonProperty("metadata") Map metadata, @JsonProperty("_meta") Map meta) implements Request { // @formatter:on // backwards compatibility constructor public CreateMessageRequest(List messages, ModelPreferences modelPreferences, - String systemPrompt, ContextInclusionStrategy includeContext, Double temperature, int maxTokens, + String systemPrompt, ContextInclusionStrategy includeContext, Double temperature, Integer maxTokens, List stopSequences, Map metadata) { this(messages, modelPreferences, systemPrompt, includeContext, temperature, maxTokens, stopSequences, metadata, null); @@ -1859,7 +1859,7 @@ public static class Builder { private Double temperature; - private int maxTokens; + private Integer maxTokens; private List stopSequences; From d19cdae2e92ae67b2e2461f1917be230c2ebf9f1 Mon Sep 17 00:00:00 2001 From: Sheegan Sri G M Date: Sat, 4 Oct 2025 09:42:58 +0530 Subject: [PATCH 08/10] fix: improve URI template matching to properly escape special characters (#599) - Enhanced DefaultMcpUriTemplateManager to use Pattern.quote() for escaping special regex characters like '?' - Replaced simple string replacement regex generation with robust pattern building - Added test case to verify URI matching with query parameters (e.g., "file://name/search?={search}") - Fixed typo: renamed DeafaultMcpUriTemplateManagerFactory to DefaultMcpUriTemplateManagerFactory - Updated all references across server classes and tests Signed-off-by: Christian Tzolov --- .../server/McpAsyncServer.java | 4 +-- .../server/McpServer.java | 10 +++---- .../server/McpStatelessAsyncServer.java | 4 +-- .../util/DefaultMcpUriTemplateManager.java | 26 ++++++++++++++++--- ... DefaultMcpUriTemplateManagerFactory.java} | 2 +- .../McpUriTemplateManagerTests.java | 13 ++++++++-- 6 files changed, 43 insertions(+), 16 deletions(-) rename mcp-core/src/main/java/io/modelcontextprotocol/util/{DeafaultMcpUriTemplateManagerFactory.java => DefaultMcpUriTemplateManagerFactory.java} (86%) diff --git a/mcp-core/src/main/java/io/modelcontextprotocol/server/McpAsyncServer.java b/mcp-core/src/main/java/io/modelcontextprotocol/server/McpAsyncServer.java index dcba3af1f..ac4b36990 100644 --- a/mcp-core/src/main/java/io/modelcontextprotocol/server/McpAsyncServer.java +++ b/mcp-core/src/main/java/io/modelcontextprotocol/server/McpAsyncServer.java @@ -36,7 +36,7 @@ import io.modelcontextprotocol.spec.McpServerTransportProviderBase; import io.modelcontextprotocol.spec.McpStreamableServerTransportProvider; import io.modelcontextprotocol.util.Assert; -import io.modelcontextprotocol.util.DeafaultMcpUriTemplateManagerFactory; +import io.modelcontextprotocol.util.DefaultMcpUriTemplateManagerFactory; import io.modelcontextprotocol.util.McpUriTemplateManagerFactory; import io.modelcontextprotocol.util.Utils; import org.slf4j.Logger; @@ -120,7 +120,7 @@ public class McpAsyncServer { private List protocolVersions; - private McpUriTemplateManagerFactory uriTemplateManagerFactory = new DeafaultMcpUriTemplateManagerFactory(); + private McpUriTemplateManagerFactory uriTemplateManagerFactory = new DefaultMcpUriTemplateManagerFactory(); /** * Create a new McpAsyncServer with the given transport provider and capabilities. diff --git a/mcp-core/src/main/java/io/modelcontextprotocol/server/McpServer.java b/mcp-core/src/main/java/io/modelcontextprotocol/server/McpServer.java index 8e3ebf9e8..ecfb74b6a 100644 --- a/mcp-core/src/main/java/io/modelcontextprotocol/server/McpServer.java +++ b/mcp-core/src/main/java/io/modelcontextprotocol/server/McpServer.java @@ -25,7 +25,7 @@ import io.modelcontextprotocol.spec.McpStatelessServerTransport; import io.modelcontextprotocol.spec.McpStreamableServerTransportProvider; import io.modelcontextprotocol.util.Assert; -import io.modelcontextprotocol.util.DeafaultMcpUriTemplateManagerFactory; +import io.modelcontextprotocol.util.DefaultMcpUriTemplateManagerFactory; import io.modelcontextprotocol.util.McpUriTemplateManagerFactory; import reactor.core.publisher.Mono; @@ -268,7 +268,7 @@ public McpAsyncServer build() { */ abstract class AsyncSpecification> { - McpUriTemplateManagerFactory uriTemplateManagerFactory = new DeafaultMcpUriTemplateManagerFactory(); + McpUriTemplateManagerFactory uriTemplateManagerFactory = new DefaultMcpUriTemplateManagerFactory(); McpJsonMapper jsonMapper; @@ -865,7 +865,7 @@ public McpSyncServer build() { */ abstract class SyncSpecification> { - McpUriTemplateManagerFactory uriTemplateManagerFactory = new DeafaultMcpUriTemplateManagerFactory(); + McpUriTemplateManagerFactory uriTemplateManagerFactory = new DefaultMcpUriTemplateManagerFactory(); McpJsonMapper jsonMapper; @@ -1407,7 +1407,7 @@ class StatelessAsyncSpecification { private final McpStatelessServerTransport transport; - McpUriTemplateManagerFactory uriTemplateManagerFactory = new DeafaultMcpUriTemplateManagerFactory(); + McpUriTemplateManagerFactory uriTemplateManagerFactory = new DefaultMcpUriTemplateManagerFactory(); McpJsonMapper jsonMapper; @@ -1870,7 +1870,7 @@ class StatelessSyncSpecification { boolean immediateExecution = false; - McpUriTemplateManagerFactory uriTemplateManagerFactory = new DeafaultMcpUriTemplateManagerFactory(); + McpUriTemplateManagerFactory uriTemplateManagerFactory = new DefaultMcpUriTemplateManagerFactory(); McpJsonMapper jsonMapper; diff --git a/mcp-core/src/main/java/io/modelcontextprotocol/server/McpStatelessAsyncServer.java b/mcp-core/src/main/java/io/modelcontextprotocol/server/McpStatelessAsyncServer.java index 823aca41d..997df7225 100644 --- a/mcp-core/src/main/java/io/modelcontextprotocol/server/McpStatelessAsyncServer.java +++ b/mcp-core/src/main/java/io/modelcontextprotocol/server/McpStatelessAsyncServer.java @@ -20,7 +20,7 @@ import io.modelcontextprotocol.spec.McpSchema.Tool; import io.modelcontextprotocol.spec.McpStatelessServerTransport; import io.modelcontextprotocol.util.Assert; -import io.modelcontextprotocol.util.DeafaultMcpUriTemplateManagerFactory; +import io.modelcontextprotocol.util.DefaultMcpUriTemplateManagerFactory; import io.modelcontextprotocol.util.McpUriTemplateManagerFactory; import io.modelcontextprotocol.util.Utils; import org.slf4j.Logger; @@ -74,7 +74,7 @@ public class McpStatelessAsyncServer { private List protocolVersions; - private McpUriTemplateManagerFactory uriTemplateManagerFactory = new DeafaultMcpUriTemplateManagerFactory(); + private McpUriTemplateManagerFactory uriTemplateManagerFactory = new DefaultMcpUriTemplateManagerFactory(); private final JsonSchemaValidator jsonSchemaValidator; diff --git a/mcp-core/src/main/java/io/modelcontextprotocol/util/DefaultMcpUriTemplateManager.java b/mcp-core/src/main/java/io/modelcontextprotocol/util/DefaultMcpUriTemplateManager.java index ef51183a1..c3b922edf 100644 --- a/mcp-core/src/main/java/io/modelcontextprotocol/util/DefaultMcpUriTemplateManager.java +++ b/mcp-core/src/main/java/io/modelcontextprotocol/util/DefaultMcpUriTemplateManager.java @@ -141,12 +141,30 @@ public boolean matches(String uri) { return uri.equals(this.uriTemplate); } - // Convert the pattern to a regex - String regex = this.uriTemplate.replaceAll("\\{[^/]+?\\}", "([^/]+?)"); - regex = regex.replace("/", "\\/"); + // Convert the URI template into a robust regex pattern that escapes special + // characters like '?'. + StringBuilder patternBuilder = new StringBuilder("^"); + Matcher variableMatcher = URI_VARIABLE_PATTERN.matcher(this.uriTemplate); + int lastEnd = 0; + + while (variableMatcher.find()) { + // Append the literal part of the template, safely quoted + String textBefore = this.uriTemplate.substring(lastEnd, variableMatcher.start()); + patternBuilder.append(Pattern.quote(textBefore)); + // Append a capturing group for the variable itself + patternBuilder.append("([^/]+?)"); + lastEnd = variableMatcher.end(); + } + + // Append any remaining literal text after the last variable + if (lastEnd < this.uriTemplate.length()) { + patternBuilder.append(Pattern.quote(this.uriTemplate.substring(lastEnd))); + } + + patternBuilder.append("$"); // Check if the URI matches the regex - return Pattern.compile(regex).matcher(uri).matches(); + return Pattern.compile(patternBuilder.toString()).matcher(uri).matches(); } @Override diff --git a/mcp-core/src/main/java/io/modelcontextprotocol/util/DeafaultMcpUriTemplateManagerFactory.java b/mcp-core/src/main/java/io/modelcontextprotocol/util/DefaultMcpUriTemplateManagerFactory.java similarity index 86% rename from mcp-core/src/main/java/io/modelcontextprotocol/util/DeafaultMcpUriTemplateManagerFactory.java rename to mcp-core/src/main/java/io/modelcontextprotocol/util/DefaultMcpUriTemplateManagerFactory.java index 44ea31690..fd1a3bd71 100644 --- a/mcp-core/src/main/java/io/modelcontextprotocol/util/DeafaultMcpUriTemplateManagerFactory.java +++ b/mcp-core/src/main/java/io/modelcontextprotocol/util/DefaultMcpUriTemplateManagerFactory.java @@ -7,7 +7,7 @@ /** * @author Christian Tzolov */ -public class DeafaultMcpUriTemplateManagerFactory implements McpUriTemplateManagerFactory { +public class DefaultMcpUriTemplateManagerFactory implements McpUriTemplateManagerFactory { /** * Creates a new instance of {@link McpUriTemplateManager} with the specified URI diff --git a/mcp-core/src/test/java/io/modelcontextprotocol/McpUriTemplateManagerTests.java b/mcp-core/src/test/java/io/modelcontextprotocol/McpUriTemplateManagerTests.java index 6f041daa6..8f68f0d6e 100644 --- a/mcp-core/src/test/java/io/modelcontextprotocol/McpUriTemplateManagerTests.java +++ b/mcp-core/src/test/java/io/modelcontextprotocol/McpUriTemplateManagerTests.java @@ -12,7 +12,7 @@ import java.util.List; import java.util.Map; -import io.modelcontextprotocol.util.DeafaultMcpUriTemplateManagerFactory; +import io.modelcontextprotocol.util.DefaultMcpUriTemplateManagerFactory; import io.modelcontextprotocol.util.McpUriTemplateManager; import io.modelcontextprotocol.util.McpUriTemplateManagerFactory; import org.junit.jupiter.api.BeforeEach; @@ -29,7 +29,7 @@ public class McpUriTemplateManagerTests { @BeforeEach void setUp() { - this.uriTemplateFactory = new DeafaultMcpUriTemplateManagerFactory(); + this.uriTemplateFactory = new DefaultMcpUriTemplateManagerFactory(); } @Test @@ -94,4 +94,13 @@ void shouldMatchUriAgainstTemplatePattern() { assertFalse(uriTemplateManager.matches("/api/users/123/comments/456")); } + @Test + void shouldMatchUriWithQueryParameters() { + String templateWithQuery = "file://name/search?={search}"; + var uriTemplateManager = this.uriTemplateFactory.create(templateWithQuery); + + assertTrue(uriTemplateManager.matches("file://name/search?=abcd"), + "Should correctly match a URI containing query parameters."); + } + } From 0e16bac094c7407f5edaa363fdd6b1e97499033e Mon Sep 17 00:00:00 2001 From: Christian Tzolov Date: Tue, 7 Oct 2025 00:39:53 +0200 Subject: [PATCH 09/10] Release version 0.14.1 Signed-off-by: Christian Tzolov --- mcp-bom/pom.xml | 2 +- mcp-core/pom.xml | 6 +++--- mcp-json-jackson2/pom.xml | 4 ++-- mcp-json/pom.xml | 2 +- mcp-spring/mcp-spring-webflux/pom.xml | 8 ++++---- mcp-spring/mcp-spring-webmvc/pom.xml | 10 +++++----- mcp-test/pom.xml | 4 ++-- mcp/pom.xml | 6 +++--- pom.xml | 2 +- 9 files changed, 22 insertions(+), 22 deletions(-) diff --git a/mcp-bom/pom.xml b/mcp-bom/pom.xml index e14419d21..5d5bd93aa 100644 --- a/mcp-bom/pom.xml +++ b/mcp-bom/pom.xml @@ -7,7 +7,7 @@ io.modelcontextprotocol.sdk mcp-parent - 0.14.1-SNAPSHOT + 0.14.1 mcp-bom diff --git a/mcp-core/pom.xml b/mcp-core/pom.xml index 0b8a343ac..4c9d29797 100644 --- a/mcp-core/pom.xml +++ b/mcp-core/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 0.14.1-SNAPSHOT + 0.14.1 mcp-core jar @@ -68,7 +68,7 @@ io.modelcontextprotocol.sdk mcp-json - 0.14.1-SNAPSHOT + 0.14.1 @@ -101,7 +101,7 @@ io.modelcontextprotocol.sdk mcp-json-jackson2 - 0.14.1-SNAPSHOT + 0.14.1 test diff --git a/mcp-json-jackson2/pom.xml b/mcp-json-jackson2/pom.xml index ae3118c7f..08c5c5ea5 100644 --- a/mcp-json-jackson2/pom.xml +++ b/mcp-json-jackson2/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 0.14.1-SNAPSHOT + 0.14.1 mcp-json-jackson2 jar @@ -37,7 +37,7 @@ io.modelcontextprotocol.sdk mcp-json - 0.14.1-SNAPSHOT + 0.14.1 com.fasterxml.jackson.core diff --git a/mcp-json/pom.xml b/mcp-json/pom.xml index ce38169da..d3746fb7c 100644 --- a/mcp-json/pom.xml +++ b/mcp-json/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 0.14.1-SNAPSHOT + 0.14.1 mcp-json jar diff --git a/mcp-spring/mcp-spring-webflux/pom.xml b/mcp-spring/mcp-spring-webflux/pom.xml index 4fa18cc31..7f5402295 100644 --- a/mcp-spring/mcp-spring-webflux/pom.xml +++ b/mcp-spring/mcp-spring-webflux/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 0.14.1-SNAPSHOT + 0.14.1 ../../pom.xml mcp-spring-webflux @@ -25,19 +25,19 @@ io.modelcontextprotocol.sdk mcp-json-jackson2 - 0.14.1-SNAPSHOT + 0.14.1 io.modelcontextprotocol.sdk mcp - 0.14.1-SNAPSHOT + 0.14.1 io.modelcontextprotocol.sdk mcp-test - 0.14.1-SNAPSHOT + 0.14.1 test diff --git a/mcp-spring/mcp-spring-webmvc/pom.xml b/mcp-spring/mcp-spring-webmvc/pom.xml index 2f011be9f..a13a12a6d 100644 --- a/mcp-spring/mcp-spring-webmvc/pom.xml +++ b/mcp-spring/mcp-spring-webmvc/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 0.14.1-SNAPSHOT + 0.14.1 ../../pom.xml mcp-spring-webmvc @@ -25,13 +25,13 @@ io.modelcontextprotocol.sdk mcp-json-jackson2 - 0.14.1-SNAPSHOT + 0.14.1 io.modelcontextprotocol.sdk mcp - 0.14.1-SNAPSHOT + 0.14.1 @@ -43,14 +43,14 @@ io.modelcontextprotocol.sdk mcp-test - 0.14.1-SNAPSHOT + 0.14.1 test io.modelcontextprotocol.sdk mcp-spring-webflux - 0.14.1-SNAPSHOT + 0.14.1 test diff --git a/mcp-test/pom.xml b/mcp-test/pom.xml index bb78e12a2..1a61fd38c 100644 --- a/mcp-test/pom.xml +++ b/mcp-test/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 0.14.1-SNAPSHOT + 0.14.1 mcp-test jar @@ -24,7 +24,7 @@ io.modelcontextprotocol.sdk mcp - 0.14.1-SNAPSHOT + 0.14.1 diff --git a/mcp/pom.xml b/mcp/pom.xml index 2f440272b..d42305c8f 100644 --- a/mcp/pom.xml +++ b/mcp/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 0.14.1-SNAPSHOT + 0.14.1 mcp jar @@ -25,13 +25,13 @@ io.modelcontextprotocol.sdk mcp-json-jackson2 - 0.14.1-SNAPSHOT + 0.14.1 io.modelcontextprotocol.sdk mcp-core - 0.14.1-SNAPSHOT + 0.14.1 diff --git a/pom.xml b/pom.xml index 8c6358e67..bf442a00c 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 0.14.1-SNAPSHOT + 0.14.1 pom https://github.com/modelcontextprotocol/java-sdk From 595155e62c00c3f7f633185588a6fe6a6bd5d9eb Mon Sep 17 00:00:00 2001 From: Christian Tzolov Date: Tue, 7 Oct 2025 00:40:16 +0200 Subject: [PATCH 10/10] Next development version Signed-off-by: Christian Tzolov --- mcp-bom/pom.xml | 2 +- mcp-core/pom.xml | 6 +++--- mcp-json-jackson2/pom.xml | 4 ++-- mcp-json/pom.xml | 2 +- mcp-spring/mcp-spring-webflux/pom.xml | 8 ++++---- mcp-spring/mcp-spring-webmvc/pom.xml | 10 +++++----- mcp-test/pom.xml | 4 ++-- mcp/pom.xml | 6 +++--- pom.xml | 2 +- 9 files changed, 22 insertions(+), 22 deletions(-) diff --git a/mcp-bom/pom.xml b/mcp-bom/pom.xml index 5d5bd93aa..e23b5adf1 100644 --- a/mcp-bom/pom.xml +++ b/mcp-bom/pom.xml @@ -7,7 +7,7 @@ io.modelcontextprotocol.sdk mcp-parent - 0.14.1 + 0.14.2-SNAPSHOT mcp-bom diff --git a/mcp-core/pom.xml b/mcp-core/pom.xml index 4c9d29797..31153bb93 100644 --- a/mcp-core/pom.xml +++ b/mcp-core/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 0.14.1 + 0.14.2-SNAPSHOT mcp-core jar @@ -68,7 +68,7 @@ io.modelcontextprotocol.sdk mcp-json - 0.14.1 + 0.14.2-SNAPSHOT @@ -101,7 +101,7 @@ io.modelcontextprotocol.sdk mcp-json-jackson2 - 0.14.1 + 0.14.2-SNAPSHOT test diff --git a/mcp-json-jackson2/pom.xml b/mcp-json-jackson2/pom.xml index 08c5c5ea5..b56bda6b2 100644 --- a/mcp-json-jackson2/pom.xml +++ b/mcp-json-jackson2/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 0.14.1 + 0.14.2-SNAPSHOT mcp-json-jackson2 jar @@ -37,7 +37,7 @@ io.modelcontextprotocol.sdk mcp-json - 0.14.1 + 0.14.2-SNAPSHOT com.fasterxml.jackson.core diff --git a/mcp-json/pom.xml b/mcp-json/pom.xml index d3746fb7c..09d47976b 100644 --- a/mcp-json/pom.xml +++ b/mcp-json/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 0.14.1 + 0.14.2-SNAPSHOT mcp-json jar diff --git a/mcp-spring/mcp-spring-webflux/pom.xml b/mcp-spring/mcp-spring-webflux/pom.xml index 7f5402295..6771b1923 100644 --- a/mcp-spring/mcp-spring-webflux/pom.xml +++ b/mcp-spring/mcp-spring-webflux/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 0.14.1 + 0.14.2-SNAPSHOT ../../pom.xml mcp-spring-webflux @@ -25,19 +25,19 @@ io.modelcontextprotocol.sdk mcp-json-jackson2 - 0.14.1 + 0.14.2-SNAPSHOT io.modelcontextprotocol.sdk mcp - 0.14.1 + 0.14.2-SNAPSHOT io.modelcontextprotocol.sdk mcp-test - 0.14.1 + 0.14.2-SNAPSHOT test diff --git a/mcp-spring/mcp-spring-webmvc/pom.xml b/mcp-spring/mcp-spring-webmvc/pom.xml index a13a12a6d..5de24ff20 100644 --- a/mcp-spring/mcp-spring-webmvc/pom.xml +++ b/mcp-spring/mcp-spring-webmvc/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 0.14.1 + 0.14.2-SNAPSHOT ../../pom.xml mcp-spring-webmvc @@ -25,13 +25,13 @@ io.modelcontextprotocol.sdk mcp-json-jackson2 - 0.14.1 + 0.14.2-SNAPSHOT io.modelcontextprotocol.sdk mcp - 0.14.1 + 0.14.2-SNAPSHOT @@ -43,14 +43,14 @@ io.modelcontextprotocol.sdk mcp-test - 0.14.1 + 0.14.2-SNAPSHOT test io.modelcontextprotocol.sdk mcp-spring-webflux - 0.14.1 + 0.14.2-SNAPSHOT test diff --git a/mcp-test/pom.xml b/mcp-test/pom.xml index 1a61fd38c..67ce495c4 100644 --- a/mcp-test/pom.xml +++ b/mcp-test/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 0.14.1 + 0.14.2-SNAPSHOT mcp-test jar @@ -24,7 +24,7 @@ io.modelcontextprotocol.sdk mcp - 0.14.1 + 0.14.2-SNAPSHOT diff --git a/mcp/pom.xml b/mcp/pom.xml index d42305c8f..0c77a8189 100644 --- a/mcp/pom.xml +++ b/mcp/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 0.14.1 + 0.14.2-SNAPSHOT mcp jar @@ -25,13 +25,13 @@ io.modelcontextprotocol.sdk mcp-json-jackson2 - 0.14.1 + 0.14.2-SNAPSHOT io.modelcontextprotocol.sdk mcp-core - 0.14.1 + 0.14.2-SNAPSHOT diff --git a/pom.xml b/pom.xml index bf442a00c..af13e32fa 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 0.14.1 + 0.14.2-SNAPSHOT pom https://github.com/modelcontextprotocol/java-sdk