Skip to content

Commit fdf21f4

Browse files
committed
Revert "Introduce McpServerObjectMapperFactory for consistent ObjectMapper configuration"
This reverts commit 4273328.
1 parent a572009 commit fdf21f4

File tree

6 files changed

+7
-348
lines changed

6 files changed

+7
-348
lines changed

auto-configurations/mcp/spring-ai-autoconfigure-mcp-server-common/src/main/java/org/springframework/ai/mcp/server/common/autoconfigure/McpServerAutoConfiguration.java

Lines changed: 4 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -91,31 +91,12 @@ public class McpServerAutoConfiguration {
9191

9292
private static final LogAccessor logger = new LogAccessor(McpServerAutoConfiguration.class);
9393

94-
/**
95-
* Creates a configured ObjectMapper for MCP server JSON serialization.
96-
* <p>
97-
* This ObjectMapper is specifically configured for MCP protocol compliance with:
98-
* <ul>
99-
* <li>Lenient deserialization that doesn't fail on unknown properties</li>
100-
* <li>Proper handling of empty beans during serialization</li>
101-
* <li>Exclusion of null values from JSON output</li>
102-
* <li>Standard Jackson modules for Java 8, JSR-310, and Kotlin support</li>
103-
* </ul>
104-
* <p>
105-
* This bean can be overridden by providing a custom ObjectMapper bean with the name
106-
* "mcpServerObjectMapper".
107-
* @return configured ObjectMapper instance for MCP server operations
108-
*/
109-
@Bean(name = "mcpServerObjectMapper")
110-
@ConditionalOnMissingBean(name = "mcpServerObjectMapper")
111-
public ObjectMapper mcpServerObjectMapper() {
112-
return McpServerObjectMapperFactory.createObjectMapper();
113-
}
114-
11594
@Bean
11695
@ConditionalOnMissingBean
117-
public McpServerTransportProviderBase stdioServerTransport(ObjectMapper mcpServerObjectMapper) {
118-
return new StdioServerTransportProvider(new JacksonMcpJsonMapper(mcpServerObjectMapper));
96+
public McpServerTransportProviderBase stdioServerTransport(ObjectProvider<ObjectMapper> objectMapperProvider) {
97+
ObjectMapper objectMapper = objectMapperProvider.getIfAvailable(ObjectMapper::new);
98+
99+
return new StdioServerTransportProvider(new JacksonMcpJsonMapper(objectMapper));
119100
}
120101

121102
@Bean

auto-configurations/mcp/spring-ai-autoconfigure-mcp-server-common/src/main/java/org/springframework/ai/mcp/server/common/autoconfigure/McpServerObjectMapperFactory.java

Lines changed: 0 additions & 105 deletions
This file was deleted.

auto-configurations/mcp/spring-ai-autoconfigure-mcp-server-common/src/test/java/org/springframework/ai/mcp/server/common/autoconfigure/McpToolWithStdioIT.java

Lines changed: 0 additions & 214 deletions
This file was deleted.

auto-configurations/mcp/spring-ai-autoconfigure-mcp-server-webmvc/src/main/java/org/springframework/ai/mcp/server/autoconfigure/McpServerSseWebMvcAutoConfiguration.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import io.modelcontextprotocol.spec.McpServerTransportProvider;
2323

2424
import org.springframework.ai.mcp.server.common.autoconfigure.McpServerAutoConfiguration;
25-
import org.springframework.ai.mcp.server.common.autoconfigure.McpServerObjectMapperFactory;
2625
import org.springframework.ai.mcp.server.common.autoconfigure.McpServerStdioDisabledCondition;
2726
import org.springframework.ai.mcp.server.common.autoconfigure.properties.McpServerSseProperties;
2827
import org.springframework.beans.factory.ObjectProvider;
@@ -81,7 +80,7 @@ public WebMvcSseServerTransportProvider webMvcSseServerTransportProvider(
8180
@Qualifier("mcpServerObjectMapper") ObjectProvider<ObjectMapper> objectMapperProvider,
8281
McpServerSseProperties serverProperties) {
8382

84-
ObjectMapper objectMapper = McpServerObjectMapperFactory.getOrCreateObjectMapper(objectMapperProvider);
83+
ObjectMapper objectMapper = objectMapperProvider.getIfAvailable(ObjectMapper::new);
8584

8685
return WebMvcSseServerTransportProvider.builder()
8786
.jsonMapper(new JacksonMcpJsonMapper(objectMapper))

auto-configurations/mcp/spring-ai-autoconfigure-mcp-server-webmvc/src/main/java/org/springframework/ai/mcp/server/autoconfigure/McpServerStatelessWebMvcAutoConfiguration.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import io.modelcontextprotocol.server.transport.WebMvcStatelessServerTransport;
2222
import io.modelcontextprotocol.spec.McpSchema;
2323

24-
import org.springframework.ai.mcp.server.common.autoconfigure.McpServerObjectMapperFactory;
2524
import org.springframework.ai.mcp.server.common.autoconfigure.McpServerStatelessAutoConfiguration;
2625
import org.springframework.ai.mcp.server.common.autoconfigure.McpServerStdioDisabledCondition;
2726
import org.springframework.ai.mcp.server.common.autoconfigure.properties.McpServerStreamableHttpProperties;
@@ -53,7 +52,7 @@ public WebMvcStatelessServerTransport webMvcStatelessServerTransport(
5352
@Qualifier("mcpServerObjectMapper") ObjectProvider<ObjectMapper> objectMapperProvider,
5453
McpServerStreamableHttpProperties serverProperties) {
5554

56-
ObjectMapper objectMapper = McpServerObjectMapperFactory.getOrCreateObjectMapper(objectMapperProvider);
55+
ObjectMapper objectMapper = objectMapperProvider.getIfAvailable(ObjectMapper::new);
5756

5857
return WebMvcStatelessServerTransport.builder()
5958
.jsonMapper(new JacksonMcpJsonMapper(objectMapper))

0 commit comments

Comments
 (0)