diff --git a/mcp-core/src/main/java/io/modelcontextprotocol/client/McpClient.java b/mcp-core/src/main/java/io/modelcontextprotocol/client/McpClient.java
index 1210b90..12f34e6 100644
--- a/mcp-core/src/main/java/io/modelcontextprotocol/client/McpClient.java
+++ b/mcp-core/src/main/java/io/modelcontextprotocol/client/McpClient.java
@@ -492,12 +492,9 @@ public interface McpClient {
McpClientFeatures.Async asyncFeatures = McpClientFeatures.Async.fromSync(syncFeatures);
- return new McpSyncClient(
- new McpAsyncClient(transport, this.requestTimeout, this.initializationTimeout,
- jsonSchemaValidator != null ? jsonSchemaValidator
- : McpJsonDefaults.getDefaultJsonSchemaValidator(),
- asyncFeatures),
- this.contextProvider);
+ return new McpSyncClient(new McpAsyncClient(transport, this.requestTimeout, this.initializationTimeout,
+ jsonSchemaValidator != null ? jsonSchemaValidator : McpJsonDefaults.getSchemaValidator(),
+ asyncFeatures), this.contextProvider);
}
}
@@ -830,7 +827,7 @@ public interface McpClient {
*/
public McpAsyncClient build() {
var jsonSchemaValidator = (this.jsonSchemaValidator != null) ? this.jsonSchemaValidator
- : McpJsonDefaults.getDefaultJsonSchemaValidator();
+ : McpJsonDefaults.getSchemaValidator();
return new McpAsyncClient(this.transport, this.requestTimeout, this.initializationTimeout,
jsonSchemaValidator,
new McpClientFeatures.Async(this.clientInfo, this.capabilities, this.roots,
diff --git a/mcp-core/src/main/java/io/modelcontextprotocol/client/transport/HttpClientSseClientTransport.java b/mcp-core/src/main/java/io/modelcontextprotocol/client/transport/HttpClientSseClientTransport.java
index b9ed271..66e0b9d 100644
--- a/mcp-core/src/main/java/io/modelcontextprotocol/client/transport/HttpClientSseClientTransport.java
+++ b/mcp-core/src/main/java/io/modelcontextprotocol/client/transport/HttpClientSseClientTransport.java
@@ -328,7 +328,7 @@ public class HttpClientSseClientTransport implements McpClientTransport {
public HttpClientSseClientTransport build() {
HttpClient httpClient = this.clientBuilder.connectTimeout(this.connectTimeout).build();
return new HttpClientSseClientTransport(httpClient, requestBuilder, baseUri, sseEndpoint,
- jsonMapper == null ? McpJsonDefaults.getDefaultMcpJsonMapper() : jsonMapper, httpRequestCustomizer);
+ jsonMapper == null ? McpJsonDefaults.getMapper() : jsonMapper, httpRequestCustomizer);
}
}
diff --git a/mcp-core/src/main/java/io/modelcontextprotocol/client/transport/HttpClientStreamableHttpTransport.java b/mcp-core/src/main/java/io/modelcontextprotocol/client/transport/HttpClientStreamableHttpTransport.java
index 00b80f1..d6b01e1 100644
--- a/mcp-core/src/main/java/io/modelcontextprotocol/client/transport/HttpClientStreamableHttpTransport.java
+++ b/mcp-core/src/main/java/io/modelcontextprotocol/client/transport/HttpClientStreamableHttpTransport.java
@@ -843,10 +843,9 @@ public class HttpClientStreamableHttpTransport implements McpClientTransport {
*/
public HttpClientStreamableHttpTransport build() {
HttpClient httpClient = this.clientBuilder.connectTimeout(this.connectTimeout).build();
- return new HttpClientStreamableHttpTransport(
- jsonMapper == null ? McpJsonDefaults.getDefaultMcpJsonMapper() : jsonMapper, httpClient,
- requestBuilder, baseUri, endpoint, resumableStreams, openConnectionOnStartup, httpRequestCustomizer,
- supportedProtocolVersions);
+ return new HttpClientStreamableHttpTransport(jsonMapper == null ? McpJsonDefaults.getMapper() : jsonMapper,
+ httpClient, requestBuilder, baseUri, endpoint, resumableStreams, openConnectionOnStartup,
+ httpRequestCustomizer, supportedProtocolVersions);
}
}
diff --git a/mcp-core/src/main/java/io/modelcontextprotocol/json/McpJsonDefaults.java b/mcp-core/src/main/java/io/modelcontextprotocol/json/McpJsonDefaults.java
index b8bdd90..11b370e 100644
--- a/mcp-core/src/main/java/io/modelcontextprotocol/json/McpJsonDefaults.java
+++ b/mcp-core/src/main/java/io/modelcontextprotocol/json/McpJsonDefaults.java
@@ -8,27 +8,29 @@ import io.modelcontextprotocol.json.schema.JsonSchemaValidatorSupplier;
import io.modelcontextprotocol.util.McpServiceLoader;
/**
- * This class is to be used to provide access to the default McpJsonMapper and to the
- * default JsonSchemaValidator instances via the static methods: getDefaultMcpJsonMapper
- * and getDefaultJsonSchemaValidator.
+ * This class is to be used to provide access to the default {@link McpJsonMapper} and to
+ * the default {@link JsonSchemaValidator} instances via the static methods:
+ * {@link #getMapper()} and {@link #getSchemaValidator()}.
*
* The initialization of (singleton) instances of this class is different in non-OSGi
- * environments and OSGi environments. Specifically, in non-OSGi environments The
- * McpJsonDefaults class will be loaded by whatever classloader is used to call one of the
- * existing static get methods for the first time. For servers, this will usually be in
- * response to the creation of the first McpServer instance. At that first time, the
- * mcpMapperServiceLoader and mcpValidatorServiceLoader will be null, and the
- * McpJsonDefaults constructor will be called, creating/initializing the
- * mcpMapperServiceLoader and the mcpValidatorServiceLoader...which will then be used to
- * call the ServiceLoader.load method.
+ * environments and OSGi environments. Specifically, in non-OSGi environments the
+ * {@code McpJsonDefaults} class will be loaded by whatever classloader is used to call
+ * one of the existing static get methods for the first time. For servers, this will
+ * usually be in response to the creation of the first {@code McpServer} instance. At that
+ * first time, the {@code mcpMapperServiceLoader} and {@code mcpValidatorServiceLoader}
+ * will be null, and the {@code McpJsonDefaults} constructor will be called,
+ * creating/initializing the {@code mcpMapperServiceLoader} and the
+ * {@code mcpValidatorServiceLoader}...which will then be used to call the
+ * {@code ServiceLoader.load} method.
*
* In OSGi environments, upon bundle activation SCR will create a new (singleton) instance
- * of McpJsonDefaults (via the constructor), and then inject suppliers via the
- * setMcpJsonMapperSupplier and setJsonSchemaValidatorSupplier methods with the
- * SCR-discovered instances of those services. This does depend upon the jars/bundles
- * providing those suppliers to be started/activated. This SCR behavior is dictated by xml
- * files in OSGi-INF directory of mcp-core (this project/jar/bundle), and the jsonmapper
- * and jsonschemvalidator provider jars/bundles (e.g. mcp-json-jackson2, 3, or others).
+ * of {@code McpJsonDefaults} (via the constructor), and then inject suppliers via the
+ * {@code setMcpJsonMapperSupplier} and {@code setJsonSchemaValidatorSupplier} methods
+ * with the SCR-discovered instances of those services. This does depend upon the
+ * jars/bundles providing those suppliers to be started/activated. This SCR behavior is
+ * dictated by xml files in {@code OSGi-INF} directory of {@code mcp-core} (this
+ * project/jar/bundle), and the jsonmapper and jsonschemavalidator provider jars/bundles
+ * (e.g. {@code mcp-json-jackson2}, {@code mcp-json-jackson3}, or others).
*/
public class McpJsonDefaults {
@@ -37,10 +39,8 @@ public class McpJsonDefaults {
protected static McpServiceLoader mcpValidatorServiceLoader;
public McpJsonDefaults() {
- mcpMapperServiceLoader = new McpServiceLoader(
- McpJsonMapperSupplier.class);
- mcpValidatorServiceLoader = new McpServiceLoader(
- JsonSchemaValidatorSupplier.class);
+ mcpMapperServiceLoader = new McpServiceLoader<>(McpJsonMapperSupplier.class);
+ mcpValidatorServiceLoader = new McpServiceLoader<>(JsonSchemaValidatorSupplier.class);
}
void setMcpJsonMapperSupplier(McpJsonMapperSupplier supplier) {
@@ -51,7 +51,7 @@ public class McpJsonDefaults {
mcpMapperServiceLoader.unsetSupplier(supplier);
}
- public synchronized static McpJsonMapper getDefaultMcpJsonMapper() {
+ public synchronized static McpJsonMapper getMapper() {
if (mcpMapperServiceLoader == null) {
new McpJsonDefaults();
}
@@ -66,7 +66,7 @@ public class McpJsonDefaults {
mcpValidatorServiceLoader.unsetSupplier(supplier);
}
- public synchronized static JsonSchemaValidator getDefaultJsonSchemaValidator() {
+ public synchronized static JsonSchemaValidator getSchemaValidator() {
if (mcpValidatorServiceLoader == null) {
new McpJsonDefaults();
}
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 73a5016..7fe9ef2 100644
--- a/mcp-core/src/main/java/io/modelcontextprotocol/server/McpServer.java
+++ b/mcp-core/src/main/java/io/modelcontextprotocol/server/McpServer.java
@@ -240,11 +240,10 @@ public interface McpServer {
this.instructions);
var jsonSchemaValidator = (this.jsonSchemaValidator != null) ? this.jsonSchemaValidator
- : McpJsonDefaults.getDefaultJsonSchemaValidator();
+ : McpJsonDefaults.getSchemaValidator();
- return new McpAsyncServer(transportProvider,
- jsonMapper == null ? McpJsonDefaults.getDefaultMcpJsonMapper() : jsonMapper, features,
- requestTimeout, uriTemplateManagerFactory, jsonSchemaValidator);
+ return new McpAsyncServer(transportProvider, jsonMapper == null ? McpJsonDefaults.getMapper() : jsonMapper,
+ features, requestTimeout, uriTemplateManagerFactory, jsonSchemaValidator);
}
}
@@ -268,10 +267,9 @@ public interface McpServer {
this.resources, this.resourceTemplates, this.prompts, this.completions, this.rootsChangeHandlers,
this.instructions);
var jsonSchemaValidator = this.jsonSchemaValidator != null ? this.jsonSchemaValidator
- : McpJsonDefaults.getDefaultJsonSchemaValidator();
- return new McpAsyncServer(transportProvider,
- jsonMapper == null ? McpJsonDefaults.getDefaultMcpJsonMapper() : jsonMapper, features,
- requestTimeout, uriTemplateManagerFactory, jsonSchemaValidator);
+ : McpJsonDefaults.getSchemaValidator();
+ return new McpAsyncServer(transportProvider, jsonMapper == null ? McpJsonDefaults.getMapper() : jsonMapper,
+ features, requestTimeout, uriTemplateManagerFactory, jsonSchemaValidator);
}
}
@@ -858,9 +856,9 @@ public interface McpServer {
this.immediateExecution);
var asyncServer = new McpAsyncServer(transportProvider,
- jsonMapper == null ? McpJsonDefaults.getDefaultMcpJsonMapper() : jsonMapper, asyncFeatures,
- requestTimeout, uriTemplateManagerFactory, jsonSchemaValidator != null ? jsonSchemaValidator
- : McpJsonDefaults.getDefaultJsonSchemaValidator());
+ jsonMapper == null ? McpJsonDefaults.getMapper() : jsonMapper, asyncFeatures, requestTimeout,
+ uriTemplateManagerFactory,
+ jsonSchemaValidator != null ? jsonSchemaValidator : McpJsonDefaults.getSchemaValidator());
return new McpSyncServer(asyncServer, this.immediateExecution);
}
@@ -888,10 +886,10 @@ public interface McpServer {
McpServerFeatures.Async asyncFeatures = McpServerFeatures.Async.fromSync(syncFeatures,
this.immediateExecution);
var jsonSchemaValidator = this.jsonSchemaValidator != null ? this.jsonSchemaValidator
- : McpJsonDefaults.getDefaultJsonSchemaValidator();
+ : McpJsonDefaults.getSchemaValidator();
var asyncServer = new McpAsyncServer(transportProvider,
- jsonMapper == null ? McpJsonDefaults.getDefaultMcpJsonMapper() : jsonMapper, asyncFeatures,
- this.requestTimeout, this.uriTemplateManagerFactory, jsonSchemaValidator);
+ jsonMapper == null ? McpJsonDefaults.getMapper() : jsonMapper, asyncFeatures, this.requestTimeout,
+ this.uriTemplateManagerFactory, jsonSchemaValidator);
return new McpSyncServer(asyncServer, this.immediateExecution);
}
@@ -1938,10 +1936,9 @@ public interface McpServer {
public McpStatelessAsyncServer build() {
var features = new McpStatelessServerFeatures.Async(this.serverInfo, this.serverCapabilities, this.tools,
this.resources, this.resourceTemplates, this.prompts, this.completions, this.instructions);
- return new McpStatelessAsyncServer(transport,
- jsonMapper == null ? McpJsonDefaults.getDefaultMcpJsonMapper() : jsonMapper, features,
- requestTimeout, uriTemplateManagerFactory, jsonSchemaValidator != null ? jsonSchemaValidator
- : McpJsonDefaults.getDefaultJsonSchemaValidator());
+ return new McpStatelessAsyncServer(transport, jsonMapper == null ? McpJsonDefaults.getMapper() : jsonMapper,
+ features, requestTimeout, uriTemplateManagerFactory,
+ jsonSchemaValidator != null ? jsonSchemaValidator : McpJsonDefaults.getSchemaValidator());
}
}
@@ -2440,9 +2437,9 @@ public interface McpServer {
this.resources, this.resourceTemplates, this.prompts, this.completions, this.instructions);
var asyncFeatures = McpStatelessServerFeatures.Async.fromSync(syncFeatures, this.immediateExecution);
var asyncServer = new McpStatelessAsyncServer(transport,
- jsonMapper == null ? McpJsonDefaults.getDefaultMcpJsonMapper() : jsonMapper, asyncFeatures,
- requestTimeout, uriTemplateManagerFactory, this.jsonSchemaValidator != null
- ? this.jsonSchemaValidator : McpJsonDefaults.getDefaultJsonSchemaValidator());
+ jsonMapper == null ? McpJsonDefaults.getMapper() : jsonMapper, asyncFeatures, requestTimeout,
+ uriTemplateManagerFactory,
+ this.jsonSchemaValidator != null ? this.jsonSchemaValidator : McpJsonDefaults.getSchemaValidator());
return new McpStatelessSyncServer(asyncServer, this.immediateExecution);
}
diff --git a/mcp-core/src/main/java/io/modelcontextprotocol/server/transport/HttpServletSseServerTransportProvider.java b/mcp-core/src/main/java/io/modelcontextprotocol/server/transport/HttpServletSseServerTransportProvider.java
index 3b31eb9..d845187 100644
--- a/mcp-core/src/main/java/io/modelcontextprotocol/server/transport/HttpServletSseServerTransportProvider.java
+++ b/mcp-core/src/main/java/io/modelcontextprotocol/server/transport/HttpServletSseServerTransportProvider.java
@@ -672,8 +672,8 @@ public class HttpServletSseServerTransportProvider extends HttpServlet implement
throw new IllegalStateException("MessageEndpoint must be set");
}
return new HttpServletSseServerTransportProvider(
- jsonMapper == null ? McpJsonDefaults.getDefaultMcpJsonMapper() : jsonMapper, baseUrl,
- messageEndpoint, sseEndpoint, keepAliveInterval, contextExtractor, securityValidator);
+ jsonMapper == null ? McpJsonDefaults.getMapper() : jsonMapper, baseUrl, messageEndpoint,
+ sseEndpoint, keepAliveInterval, contextExtractor, securityValidator);
}
}
diff --git a/mcp-core/src/main/java/io/modelcontextprotocol/server/transport/HttpServletStatelessServerTransport.java b/mcp-core/src/main/java/io/modelcontextprotocol/server/transport/HttpServletStatelessServerTransport.java
index af01c70..af25df2 100644
--- a/mcp-core/src/main/java/io/modelcontextprotocol/server/transport/HttpServletStatelessServerTransport.java
+++ b/mcp-core/src/main/java/io/modelcontextprotocol/server/transport/HttpServletStatelessServerTransport.java
@@ -331,8 +331,8 @@ public class HttpServletStatelessServerTransport extends HttpServlet implements
public HttpServletStatelessServerTransport build() {
Assert.notNull(mcpEndpoint, "Message endpoint must be set");
return new HttpServletStatelessServerTransport(
- jsonMapper == null ? McpJsonDefaults.getDefaultMcpJsonMapper() : jsonMapper, mcpEndpoint,
- contextExtractor, securityValidator);
+ jsonMapper == null ? McpJsonDefaults.getMapper() : jsonMapper, mcpEndpoint, contextExtractor,
+ securityValidator);
}
}
diff --git a/mcp-core/src/main/java/io/modelcontextprotocol/server/transport/HttpServletStreamableServerTransportProvider.java b/mcp-core/src/main/java/io/modelcontextprotocol/server/transport/HttpServletStreamableServerTransportProvider.java
index 07dc346..ccd1d1c 100644
--- a/mcp-core/src/main/java/io/modelcontextprotocol/server/transport/HttpServletStreamableServerTransportProvider.java
+++ b/mcp-core/src/main/java/io/modelcontextprotocol/server/transport/HttpServletStreamableServerTransportProvider.java
@@ -895,8 +895,8 @@ public class HttpServletStreamableServerTransportProvider extends HttpServlet
public HttpServletStreamableServerTransportProvider build() {
Assert.notNull(this.mcpEndpoint, "MCP endpoint must be set");
return new HttpServletStreamableServerTransportProvider(
- jsonMapper == null ? McpJsonDefaults.getDefaultMcpJsonMapper() : jsonMapper, mcpEndpoint,
- disallowDelete, contextExtractor, keepAliveInterval, securityValidator);
+ jsonMapper == null ? McpJsonDefaults.getMapper() : jsonMapper, mcpEndpoint, disallowDelete,
+ contextExtractor, keepAliveInterval, securityValidator);
}
}
diff --git a/mcp-core/src/test/java/io/modelcontextprotocol/util/McpJsonMapperUtils.java b/mcp-core/src/test/java/io/modelcontextprotocol/util/McpJsonMapperUtils.java
index 0af4815..8033720 100644
--- a/mcp-core/src/test/java/io/modelcontextprotocol/util/McpJsonMapperUtils.java
+++ b/mcp-core/src/test/java/io/modelcontextprotocol/util/McpJsonMapperUtils.java
@@ -8,6 +8,6 @@ public final class McpJsonMapperUtils {
private McpJsonMapperUtils() {
}
- public static final McpJsonMapper JSON_MAPPER = McpJsonDefaults.getDefaultMcpJsonMapper();
+ public static final McpJsonMapper JSON_MAPPER = McpJsonDefaults.getMapper();
}
diff --git a/mcp-json-jackson2/src/test/java/io/modelcontextprotocol/json/McpJsonMapperTest.java b/mcp-json-jackson2/src/test/java/io/modelcontextprotocol/json/McpJsonMapperTest.java
index bf865a0..7ae5d08 100644
--- a/mcp-json-jackson2/src/test/java/io/modelcontextprotocol/json/McpJsonMapperTest.java
+++ b/mcp-json-jackson2/src/test/java/io/modelcontextprotocol/json/McpJsonMapperTest.java
@@ -14,7 +14,7 @@ class McpJsonMapperTest {
@Test
void shouldUseJackson2Mapper() {
- assertThat(McpJsonDefaults.getDefaultMcpJsonMapper()).isInstanceOf(JacksonMcpJsonMapper.class);
+ assertThat(McpJsonDefaults.getMapper()).isInstanceOf(JacksonMcpJsonMapper.class);
}
}
diff --git a/mcp-json-jackson2/src/test/java/io/modelcontextprotocol/json/schema/JsonSchemaValidatorTest.java b/mcp-json-jackson2/src/test/java/io/modelcontextprotocol/json/schema/JsonSchemaValidatorTest.java
index 0c5864a..92a80cb 100644
--- a/mcp-json-jackson2/src/test/java/io/modelcontextprotocol/json/schema/JsonSchemaValidatorTest.java
+++ b/mcp-json-jackson2/src/test/java/io/modelcontextprotocol/json/schema/JsonSchemaValidatorTest.java
@@ -15,7 +15,7 @@ class JsonSchemaValidatorTest {
@Test
void shouldUseJackson2Mapper() {
- assertThat(McpJsonDefaults.getDefaultJsonSchemaValidator()).isInstanceOf(DefaultJsonSchemaValidator.class);
+ assertThat(McpJsonDefaults.getSchemaValidator()).isInstanceOf(DefaultJsonSchemaValidator.class);
}
}
diff --git a/mcp-json-jackson3/src/test/java/io/modelcontextprotocol/json/McpJsonMapperTest.java b/mcp-json-jackson3/src/test/java/io/modelcontextprotocol/json/McpJsonMapperTest.java
index 58f7e01..0307fce 100644
--- a/mcp-json-jackson3/src/test/java/io/modelcontextprotocol/json/McpJsonMapperTest.java
+++ b/mcp-json-jackson3/src/test/java/io/modelcontextprotocol/json/McpJsonMapperTest.java
@@ -14,7 +14,7 @@ class McpJsonMapperTest {
@Test
void shouldUseJackson2Mapper() {
- assertThat(McpJsonDefaults.getDefaultMcpJsonMapper()).isInstanceOf(JacksonMcpJsonMapper.class);
+ assertThat(McpJsonDefaults.getMapper()).isInstanceOf(JacksonMcpJsonMapper.class);
}
}
diff --git a/mcp-json-jackson3/src/test/java/io/modelcontextprotocol/json/schema/JsonSchemaValidatorTest.java b/mcp-json-jackson3/src/test/java/io/modelcontextprotocol/json/schema/JsonSchemaValidatorTest.java
index 8919757..05dba4f 100644
--- a/mcp-json-jackson3/src/test/java/io/modelcontextprotocol/json/schema/JsonSchemaValidatorTest.java
+++ b/mcp-json-jackson3/src/test/java/io/modelcontextprotocol/json/schema/JsonSchemaValidatorTest.java
@@ -15,7 +15,7 @@ class JsonSchemaValidatorTest {
@Test
void shouldUseJackson2Mapper() {
- assertThat(McpJsonDefaults.getDefaultJsonSchemaValidator()).isInstanceOf(DefaultJsonSchemaValidator.class);
+ assertThat(McpJsonDefaults.getSchemaValidator()).isInstanceOf(DefaultJsonSchemaValidator.class);
}
}
diff --git a/mcp-spring/mcp-spring-webflux/src/main/java/io/modelcontextprotocol/client/transport/WebClientStreamableHttpTransport.java b/mcp-spring/mcp-spring-webflux/src/main/java/io/modelcontextprotocol/client/transport/WebClientStreamableHttpTransport.java
index e3a7091..18e9d8e 100644
--- a/mcp-spring/mcp-spring-webflux/src/main/java/io/modelcontextprotocol/client/transport/WebClientStreamableHttpTransport.java
+++ b/mcp-spring/mcp-spring-webflux/src/main/java/io/modelcontextprotocol/client/transport/WebClientStreamableHttpTransport.java
@@ -616,9 +616,8 @@ public class WebClientStreamableHttpTransport implements McpClientTransport {
* @return a new instance of {@link WebClientStreamableHttpTransport}
*/
public WebClientStreamableHttpTransport build() {
- return new WebClientStreamableHttpTransport(
- jsonMapper == null ? McpJsonDefaults.getDefaultMcpJsonMapper() : jsonMapper, webClientBuilder,
- endpoint, resumableStreams, openConnectionOnStartup, supportedProtocolVersions);
+ return new WebClientStreamableHttpTransport(jsonMapper == null ? McpJsonDefaults.getMapper() : jsonMapper,
+ webClientBuilder, endpoint, resumableStreams, openConnectionOnStartup, supportedProtocolVersions);
}
}
diff --git a/mcp-spring/mcp-spring-webflux/src/main/java/io/modelcontextprotocol/client/transport/WebFluxSseClientTransport.java b/mcp-spring/mcp-spring-webflux/src/main/java/io/modelcontextprotocol/client/transport/WebFluxSseClientTransport.java
index 3c3a008..304a343 100644
--- a/mcp-spring/mcp-spring-webflux/src/main/java/io/modelcontextprotocol/client/transport/WebFluxSseClientTransport.java
+++ b/mcp-spring/mcp-spring-webflux/src/main/java/io/modelcontextprotocol/client/transport/WebFluxSseClientTransport.java
@@ -405,7 +405,7 @@ public class WebFluxSseClientTransport implements McpClientTransport {
*/
public WebFluxSseClientTransport build() {
return new WebFluxSseClientTransport(webClientBuilder,
- jsonMapper == null ? McpJsonDefaults.getDefaultMcpJsonMapper() : jsonMapper, sseEndpoint);
+ jsonMapper == null ? McpJsonDefaults.getMapper() : jsonMapper, sseEndpoint);
}
}
diff --git a/mcp-spring/mcp-spring-webflux/src/main/java/io/modelcontextprotocol/server/transport/WebFluxSseServerTransportProvider.java b/mcp-spring/mcp-spring-webflux/src/main/java/io/modelcontextprotocol/server/transport/WebFluxSseServerTransportProvider.java
index de2b0e2..e950417 100644
--- a/mcp-spring/mcp-spring-webflux/src/main/java/io/modelcontextprotocol/server/transport/WebFluxSseServerTransportProvider.java
+++ b/mcp-spring/mcp-spring-webflux/src/main/java/io/modelcontextprotocol/server/transport/WebFluxSseServerTransportProvider.java
@@ -562,9 +562,8 @@ public class WebFluxSseServerTransportProvider implements McpServerTransportProv
*/
public WebFluxSseServerTransportProvider build() {
Assert.notNull(messageEndpoint, "Message endpoint must be set");
- return new WebFluxSseServerTransportProvider(
- jsonMapper == null ? McpJsonDefaults.getDefaultMcpJsonMapper() : jsonMapper, baseUrl,
- messageEndpoint, sseEndpoint, keepAliveInterval, contextExtractor, securityValidator);
+ return new WebFluxSseServerTransportProvider(jsonMapper == null ? McpJsonDefaults.getMapper() : jsonMapper,
+ baseUrl, messageEndpoint, sseEndpoint, keepAliveInterval, contextExtractor, securityValidator);
}
}
diff --git a/mcp-spring/mcp-spring-webflux/src/main/java/io/modelcontextprotocol/server/transport/WebFluxStatelessServerTransport.java b/mcp-spring/mcp-spring-webflux/src/main/java/io/modelcontextprotocol/server/transport/WebFluxStatelessServerTransport.java
index 7488217..bbb0493 100644
--- a/mcp-spring/mcp-spring-webflux/src/main/java/io/modelcontextprotocol/server/transport/WebFluxStatelessServerTransport.java
+++ b/mcp-spring/mcp-spring-webflux/src/main/java/io/modelcontextprotocol/server/transport/WebFluxStatelessServerTransport.java
@@ -245,9 +245,8 @@ public class WebFluxStatelessServerTransport implements McpStatelessServerTransp
*/
public WebFluxStatelessServerTransport build() {
Assert.notNull(mcpEndpoint, "Message endpoint must be set");
- return new WebFluxStatelessServerTransport(
- jsonMapper == null ? McpJsonDefaults.getDefaultMcpJsonMapper() : jsonMapper, mcpEndpoint,
- contextExtractor, securityValidator);
+ return new WebFluxStatelessServerTransport(jsonMapper == null ? McpJsonDefaults.getMapper() : jsonMapper,
+ mcpEndpoint, contextExtractor, securityValidator);
}
}
diff --git a/mcp-spring/mcp-spring-webflux/src/main/java/io/modelcontextprotocol/server/transport/WebFluxStreamableServerTransportProvider.java b/mcp-spring/mcp-spring-webflux/src/main/java/io/modelcontextprotocol/server/transport/WebFluxStreamableServerTransportProvider.java
index bb469b9..223c2f0 100644
--- a/mcp-spring/mcp-spring-webflux/src/main/java/io/modelcontextprotocol/server/transport/WebFluxStreamableServerTransportProvider.java
+++ b/mcp-spring/mcp-spring-webflux/src/main/java/io/modelcontextprotocol/server/transport/WebFluxStreamableServerTransportProvider.java
@@ -533,8 +533,8 @@ public class WebFluxStreamableServerTransportProvider implements McpStreamableSe
public WebFluxStreamableServerTransportProvider build() {
Assert.notNull(mcpEndpoint, "Message endpoint must be set");
return new WebFluxStreamableServerTransportProvider(
- jsonMapper == null ? McpJsonDefaults.getDefaultMcpJsonMapper() : jsonMapper, mcpEndpoint,
- contextExtractor, disallowDelete, keepAliveInterval, securityValidator);
+ jsonMapper == null ? McpJsonDefaults.getMapper() : jsonMapper, mcpEndpoint, contextExtractor,
+ disallowDelete, keepAliveInterval, securityValidator);
}
}
diff --git a/mcp-spring/mcp-spring-webflux/src/test/java/io/modelcontextprotocol/security/WebFluxServerTransportSecurityIntegrationTests.java b/mcp-spring/mcp-spring-webflux/src/test/java/io/modelcontextprotocol/security/WebFluxServerTransportSecurityIntegrationTests.java
index 4802b96..3a5fba5 100644
--- a/mcp-spring/mcp-spring-webflux/src/test/java/io/modelcontextprotocol/security/WebFluxServerTransportSecurityIntegrationTests.java
+++ b/mcp-spring/mcp-spring-webflux/src/test/java/io/modelcontextprotocol/security/WebFluxServerTransportSecurityIntegrationTests.java
@@ -221,7 +221,7 @@ public class WebFluxServerTransportSecurityIntegrationTests {
public McpSyncClient createMcpClient(String baseUrl, TestHeaderExchangeFilterFunction exchangeFilterFunction) {
var transport = WebFluxSseClientTransport
.builder(WebClient.builder().baseUrl(baseUrl).filter(exchangeFilterFunction))
- .jsonMapper(McpJsonDefaults.getDefaultMcpJsonMapper())
+ .jsonMapper(McpJsonDefaults.getMapper())
.build();
return McpClient.sync(transport).initializationTimeout(Duration.ofMillis(500)).build();
}
@@ -254,7 +254,7 @@ public class WebFluxServerTransportSecurityIntegrationTests {
public McpSyncClient createMcpClient(String baseUrl, TestHeaderExchangeFilterFunction exchangeFilterFunction) {
var transport = WebClientStreamableHttpTransport
.builder(WebClient.builder().baseUrl(baseUrl).filter(exchangeFilterFunction))
- .jsonMapper(McpJsonDefaults.getDefaultMcpJsonMapper())
+ .jsonMapper(McpJsonDefaults.getMapper())
.openConnectionOnStartup(true)
.build();
return McpClient.sync(transport).initializationTimeout(Duration.ofMillis(500)).build();
@@ -288,7 +288,7 @@ public class WebFluxServerTransportSecurityIntegrationTests {
public McpSyncClient createMcpClient(String baseUrl, TestHeaderExchangeFilterFunction exchangeFilterFunction) {
var transport = WebClientStreamableHttpTransport
.builder(WebClient.builder().baseUrl(baseUrl).filter(exchangeFilterFunction))
- .jsonMapper(McpJsonDefaults.getDefaultMcpJsonMapper())
+ .jsonMapper(McpJsonDefaults.getMapper())
.openConnectionOnStartup(true)
.build();
return McpClient.sync(transport).initializationTimeout(Duration.ofMillis(500)).build();
diff --git a/mcp-spring/mcp-spring-webflux/src/test/java/io/modelcontextprotocol/utils/McpJsonMapperUtils.java b/mcp-spring/mcp-spring-webflux/src/test/java/io/modelcontextprotocol/utils/McpJsonMapperUtils.java
index 0177932..05d7897 100644
--- a/mcp-spring/mcp-spring-webflux/src/test/java/io/modelcontextprotocol/utils/McpJsonMapperUtils.java
+++ b/mcp-spring/mcp-spring-webflux/src/test/java/io/modelcontextprotocol/utils/McpJsonMapperUtils.java
@@ -8,6 +8,6 @@ public final class McpJsonMapperUtils {
private McpJsonMapperUtils() {
}
- public static final McpJsonMapper JSON_MAPPER = McpJsonDefaults.getDefaultMcpJsonMapper();
+ public static final McpJsonMapper JSON_MAPPER = McpJsonDefaults.getMapper();
}
\ No newline at end of file
diff --git a/mcp-spring/mcp-spring-webmvc/src/main/java/io/modelcontextprotocol/server/transport/WebMvcSseServerTransportProvider.java b/mcp-spring/mcp-spring-webmvc/src/main/java/io/modelcontextprotocol/server/transport/WebMvcSseServerTransportProvider.java
index bd6d75c..e1eb673 100644
--- a/mcp-spring/mcp-spring-webmvc/src/main/java/io/modelcontextprotocol/server/transport/WebMvcSseServerTransportProvider.java
+++ b/mcp-spring/mcp-spring-webmvc/src/main/java/io/modelcontextprotocol/server/transport/WebMvcSseServerTransportProvider.java
@@ -600,9 +600,8 @@ public class WebMvcSseServerTransportProvider implements McpServerTransportProvi
if (messageEndpoint == null) {
throw new IllegalStateException("MessageEndpoint must be set");
}
- return new WebMvcSseServerTransportProvider(
- jsonMapper == null ? McpJsonDefaults.getDefaultMcpJsonMapper() : jsonMapper, baseUrl,
- messageEndpoint, sseEndpoint, keepAliveInterval, contextExtractor, securityValidator);
+ return new WebMvcSseServerTransportProvider(jsonMapper == null ? McpJsonDefaults.getMapper() : jsonMapper,
+ baseUrl, messageEndpoint, sseEndpoint, keepAliveInterval, contextExtractor, securityValidator);
}
}
diff --git a/mcp-spring/mcp-spring-webmvc/src/main/java/io/modelcontextprotocol/server/transport/WebMvcStatelessServerTransport.java b/mcp-spring/mcp-spring-webmvc/src/main/java/io/modelcontextprotocol/server/transport/WebMvcStatelessServerTransport.java
index 665d86e..2c37919 100644
--- a/mcp-spring/mcp-spring-webmvc/src/main/java/io/modelcontextprotocol/server/transport/WebMvcStatelessServerTransport.java
+++ b/mcp-spring/mcp-spring-webmvc/src/main/java/io/modelcontextprotocol/server/transport/WebMvcStatelessServerTransport.java
@@ -264,9 +264,8 @@ public class WebMvcStatelessServerTransport implements McpStatelessServerTranspo
*/
public WebMvcStatelessServerTransport build() {
Assert.notNull(mcpEndpoint, "Message endpoint must be set");
- return new WebMvcStatelessServerTransport(
- jsonMapper == null ? McpJsonDefaults.getDefaultMcpJsonMapper() : jsonMapper, mcpEndpoint,
- contextExtractor, securityValidator);
+ return new WebMvcStatelessServerTransport(jsonMapper == null ? McpJsonDefaults.getMapper() : jsonMapper,
+ mcpEndpoint, contextExtractor, securityValidator);
}
}
diff --git a/mcp-spring/mcp-spring-webmvc/src/main/java/io/modelcontextprotocol/server/transport/WebMvcStreamableServerTransportProvider.java b/mcp-spring/mcp-spring-webmvc/src/main/java/io/modelcontextprotocol/server/transport/WebMvcStreamableServerTransportProvider.java
index 4f8216c..4f701a9 100644
--- a/mcp-spring/mcp-spring-webmvc/src/main/java/io/modelcontextprotocol/server/transport/WebMvcStreamableServerTransportProvider.java
+++ b/mcp-spring/mcp-spring-webmvc/src/main/java/io/modelcontextprotocol/server/transport/WebMvcStreamableServerTransportProvider.java
@@ -731,8 +731,8 @@ public class WebMvcStreamableServerTransportProvider implements McpStreamableSer
public WebMvcStreamableServerTransportProvider build() {
Assert.notNull(this.mcpEndpoint, "MCP endpoint must be set");
return new WebMvcStreamableServerTransportProvider(
- jsonMapper == null ? McpJsonDefaults.getDefaultMcpJsonMapper() : jsonMapper, mcpEndpoint,
- disallowDelete, contextExtractor, keepAliveInterval, securityValidator);
+ jsonMapper == null ? McpJsonDefaults.getMapper() : jsonMapper, mcpEndpoint, disallowDelete,
+ contextExtractor, keepAliveInterval, securityValidator);
}
}
diff --git a/mcp-spring/mcp-spring-webmvc/src/test/java/io/modelcontextprotocol/security/ServerTransportSecurityIntegrationTests.java b/mcp-spring/mcp-spring-webmvc/src/test/java/io/modelcontextprotocol/security/ServerTransportSecurityIntegrationTests.java
index 5172323..4b8ea73 100644
--- a/mcp-spring/mcp-spring-webmvc/src/test/java/io/modelcontextprotocol/security/ServerTransportSecurityIntegrationTests.java
+++ b/mcp-spring/mcp-spring-webmvc/src/test/java/io/modelcontextprotocol/security/ServerTransportSecurityIntegrationTests.java
@@ -239,7 +239,7 @@ public class ServerTransportSecurityIntegrationTests {
McpSyncClient createMcpClient(McpSyncHttpClientRequestCustomizer requestCustomizer) {
var transport = HttpClientSseClientTransport.builder(baseUrl)
.httpRequestCustomizer(requestCustomizer)
- .jsonMapper(McpJsonDefaults.getDefaultMcpJsonMapper())
+ .jsonMapper(McpJsonDefaults.getMapper())
.build();
return McpClient.sync(transport).initializationTimeout(Duration.ofMillis(500)).build();
}
@@ -278,7 +278,7 @@ public class ServerTransportSecurityIntegrationTests {
McpSyncClient createMcpClient(McpSyncHttpClientRequestCustomizer requestCustomizer) {
var transport = HttpClientStreamableHttpTransport.builder(baseUrl)
.httpRequestCustomizer(requestCustomizer)
- .jsonMapper(McpJsonDefaults.getDefaultMcpJsonMapper())
+ .jsonMapper(McpJsonDefaults.getMapper())
.openConnectionOnStartup(true)
.build();
return McpClient.sync(transport).initializationTimeout(Duration.ofMillis(500)).build();
@@ -316,7 +316,7 @@ public class ServerTransportSecurityIntegrationTests {
McpSyncClient createMcpClient(McpSyncHttpClientRequestCustomizer requestCustomizer) {
var transport = HttpClientStreamableHttpTransport.builder(baseUrl)
.httpRequestCustomizer(requestCustomizer)
- .jsonMapper(McpJsonDefaults.getDefaultMcpJsonMapper())
+ .jsonMapper(McpJsonDefaults.getMapper())
.openConnectionOnStartup(true)
.build();
return McpClient.sync(transport).initializationTimeout(Duration.ofMillis(500)).build();
diff --git a/mcp-spring/mcp-spring-webmvc/src/test/java/io/modelcontextprotocol/server/transport/WebMvcSseServerTransportProviderTests.java b/mcp-spring/mcp-spring-webmvc/src/test/java/io/modelcontextprotocol/server/transport/WebMvcSseServerTransportProviderTests.java
index 36ea2d3..89fd3d7 100644
--- a/mcp-spring/mcp-spring-webmvc/src/test/java/io/modelcontextprotocol/server/transport/WebMvcSseServerTransportProviderTests.java
+++ b/mcp-spring/mcp-spring-webmvc/src/test/java/io/modelcontextprotocol/server/transport/WebMvcSseServerTransportProviderTests.java
@@ -105,7 +105,7 @@ class WebMvcSseServerTransportProviderTests {
.baseUrl("http://localhost:" + PORT + "/")
.messageEndpoint(MESSAGE_ENDPOINT)
.sseEndpoint(WebMvcSseServerTransportProvider.DEFAULT_SSE_ENDPOINT)
- .jsonMapper(McpJsonDefaults.getDefaultMcpJsonMapper())
+ .jsonMapper(McpJsonDefaults.getMapper())
.contextExtractor(req -> McpTransportContext.EMPTY)
.build();
}
diff --git a/mcp-test/src/main/java/io/modelcontextprotocol/util/McpJsonMapperUtils.java b/mcp-test/src/main/java/io/modelcontextprotocol/util/McpJsonMapperUtils.java
index 45e4a4e..a72fc1d 100644
--- a/mcp-test/src/main/java/io/modelcontextprotocol/util/McpJsonMapperUtils.java
+++ b/mcp-test/src/main/java/io/modelcontextprotocol/util/McpJsonMapperUtils.java
@@ -8,6 +8,6 @@ public final class McpJsonMapperUtils {
private McpJsonMapperUtils() {
}
- public static final McpJsonMapper JSON_MAPPER = McpJsonDefaults.getDefaultMcpJsonMapper();
+ public static final McpJsonMapper JSON_MAPPER = McpJsonDefaults.getMapper();
}
\ No newline at end of file
diff --git a/mcp-test/src/test/java/io/modelcontextprotocol/MockMcpClientTransport.java b/mcp-test/src/test/java/io/modelcontextprotocol/MockMcpClientTransport.java
index 04b0589..f93e760 100644
--- a/mcp-test/src/test/java/io/modelcontextprotocol/MockMcpClientTransport.java
+++ b/mcp-test/src/test/java/io/modelcontextprotocol/MockMcpClientTransport.java
@@ -100,7 +100,7 @@ public class MockMcpClientTransport implements McpClientTransport {
@Override
public T unmarshalFrom(Object data, TypeRef typeRef) {
- return McpJsonDefaults.getDefaultMcpJsonMapper().convertValue(data, typeRef);
+ return McpJsonDefaults.getMapper().convertValue(data, typeRef);
}
}
diff --git a/mcp-test/src/test/java/io/modelcontextprotocol/MockMcpServerTransport.java b/mcp-test/src/test/java/io/modelcontextprotocol/MockMcpServerTransport.java
index 5fefb89..fac2659 100644
--- a/mcp-test/src/test/java/io/modelcontextprotocol/MockMcpServerTransport.java
+++ b/mcp-test/src/test/java/io/modelcontextprotocol/MockMcpServerTransport.java
@@ -68,7 +68,7 @@ public class MockMcpServerTransport implements McpServerTransport {
@Override
public T unmarshalFrom(Object data, TypeRef typeRef) {
- return McpJsonDefaults.getDefaultMcpJsonMapper().convertValue(data, typeRef);
+ return McpJsonDefaults.getMapper().convertValue(data, typeRef);
}
}
diff --git a/mcp-test/src/test/java/io/modelcontextprotocol/server/transport/ServerTransportSecurityIntegrationTests.java b/mcp-test/src/test/java/io/modelcontextprotocol/server/transport/ServerTransportSecurityIntegrationTests.java
index 667915e..10bb305 100644
--- a/mcp-test/src/test/java/io/modelcontextprotocol/server/transport/ServerTransportSecurityIntegrationTests.java
+++ b/mcp-test/src/test/java/io/modelcontextprotocol/server/transport/ServerTransportSecurityIntegrationTests.java
@@ -223,7 +223,7 @@ class ServerTransportSecurityIntegrationTests {
public McpSyncClient createMcpClient(String baseUrl, TestRequestCustomizer requestCustomizer) {
var transport = HttpClientSseClientTransport.builder(baseUrl)
.httpRequestCustomizer(requestCustomizer)
- .jsonMapper(McpJsonDefaults.getDefaultMcpJsonMapper())
+ .jsonMapper(McpJsonDefaults.getMapper())
.build();
return McpClient.sync(transport).initializationTimeout(Duration.ofMillis(500)).build();
}
@@ -256,7 +256,7 @@ class ServerTransportSecurityIntegrationTests {
public McpSyncClient createMcpClient(String baseUrl, TestRequestCustomizer requestCustomizer) {
var transport = HttpClientStreamableHttpTransport.builder(baseUrl)
.httpRequestCustomizer(requestCustomizer)
- .jsonMapper(McpJsonDefaults.getDefaultMcpJsonMapper())
+ .jsonMapper(McpJsonDefaults.getMapper())
.openConnectionOnStartup(true)
.build();
return McpClient.sync(transport).initializationTimeout(Duration.ofMillis(500)).build();
@@ -290,7 +290,7 @@ class ServerTransportSecurityIntegrationTests {
public McpSyncClient createMcpClient(String baseUrl, TestRequestCustomizer requestCustomizer) {
var transport = HttpClientStreamableHttpTransport.builder(baseUrl)
.httpRequestCustomizer(requestCustomizer)
- .jsonMapper(McpJsonDefaults.getDefaultMcpJsonMapper())
+ .jsonMapper(McpJsonDefaults.getMapper())
.openConnectionOnStartup(true)
.build();
return McpClient.sync(transport).initializationTimeout(Duration.ofMillis(500)).build();
diff --git a/mcp-test/src/test/java/io/modelcontextprotocol/server/transport/StdioServerTransportProviderTests.java b/mcp-test/src/test/java/io/modelcontextprotocol/server/transport/StdioServerTransportProviderTests.java
index 996166f..873d48e 100644
--- a/mcp-test/src/test/java/io/modelcontextprotocol/server/transport/StdioServerTransportProviderTests.java
+++ b/mcp-test/src/test/java/io/modelcontextprotocol/server/transport/StdioServerTransportProviderTests.java
@@ -70,7 +70,7 @@ class StdioServerTransportProviderTests {
when(mockSession.closeGracefully()).thenReturn(Mono.empty());
when(mockSession.sendNotification(any(), any())).thenReturn(Mono.empty());
- transportProvider = new StdioServerTransportProvider(McpJsonDefaults.getDefaultMcpJsonMapper(), System.in,
+ transportProvider = new StdioServerTransportProvider(McpJsonDefaults.getMapper(), System.in,
testOutPrintStream);
}
@@ -101,8 +101,7 @@ class StdioServerTransportProviderTests {
String jsonMessage = "{\"jsonrpc\":\"2.0\",\"method\":\"test\",\"params\":{},\"id\":1}\n";
InputStream stream = new ByteArrayInputStream(jsonMessage.getBytes(StandardCharsets.UTF_8));
- transportProvider = new StdioServerTransportProvider(McpJsonDefaults.getDefaultMcpJsonMapper(), stream,
- System.out);
+ transportProvider = new StdioServerTransportProvider(McpJsonDefaults.getMapper(), stream, System.out);
// Set up a real session to capture the message
AtomicReference capturedMessage = new AtomicReference<>();
CountDownLatch messageLatch = new CountDownLatch(1);
@@ -182,7 +181,7 @@ class StdioServerTransportProviderTests {
@Test
void shouldHandleNotificationBeforeSessionFactoryIsSet() {
- transportProvider = new StdioServerTransportProvider(McpJsonDefaults.getDefaultMcpJsonMapper());
+ transportProvider = new StdioServerTransportProvider(McpJsonDefaults.getMapper());
// Send notification before setting session factory
StepVerifier.create(transportProvider.notifyClients("testNotification", Map.of("key", "value")))
.verifyErrorSatisfies(error -> {
@@ -197,8 +196,7 @@ class StdioServerTransportProviderTests {
String jsonMessage = "{invalid json}\n";
InputStream stream = new ByteArrayInputStream(jsonMessage.getBytes(StandardCharsets.UTF_8));
- transportProvider = new StdioServerTransportProvider(McpJsonDefaults.getDefaultMcpJsonMapper(), stream,
- testOutPrintStream);
+ transportProvider = new StdioServerTransportProvider(McpJsonDefaults.getMapper(), stream, testOutPrintStream);
// Set up a session factory
transportProvider.setSessionFactory(sessionFactory);
diff --git a/mcp-test/src/test/java/io/modelcontextprotocol/spec/CompleteCompletionSerializationTest.java b/mcp-test/src/test/java/io/modelcontextprotocol/spec/CompleteCompletionSerializationTest.java
index da5422e..195b6ec 100644
--- a/mcp-test/src/test/java/io/modelcontextprotocol/spec/CompleteCompletionSerializationTest.java
+++ b/mcp-test/src/test/java/io/modelcontextprotocol/spec/CompleteCompletionSerializationTest.java
@@ -11,7 +11,7 @@ class CompleteCompletionSerializationTest {
@Test
void codeCompletionSerialization() throws IOException {
- McpJsonMapper jsonMapper = McpJsonDefaults.getDefaultMcpJsonMapper();
+ McpJsonMapper jsonMapper = McpJsonDefaults.getMapper();
McpSchema.CompleteResult.CompleteCompletion codeComplete = new McpSchema.CompleteResult.CompleteCompletion(
Collections.emptyList(), 0, false);
String json = jsonMapper.writeValueAsString(codeComplete);