Skip to content

Commit 8159bcb

Browse files
authored
feat: add MCP protocol version 2025-06-18 support for streamable-http and stateless transports (#558)
- Set MCP_2025_06_18 as upper supported protocol version for streamable-http and stateless transport - Update LATEST_PROTOCOL_VERSION constant to reflect new upper bound - Update test expectations for new protocol version usage Signed-off-by: Christian Tzolov <[email protected]>
1 parent 8ac7eae commit 8159bcb

File tree

8 files changed

+16
-11
lines changed

8 files changed

+16
-11
lines changed

mcp-core/src/main/java/io/modelcontextprotocol/client/transport/HttpClientStreamableHttpTransport.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ public class HttpClientStreamableHttpTransport implements McpClientTransport {
7777

7878
private static final Logger logger = LoggerFactory.getLogger(HttpClientStreamableHttpTransport.class);
7979

80-
private static final String MCP_PROTOCOL_VERSION = ProtocolVersions.MCP_2025_03_26;
80+
private static final String MCP_PROTOCOL_VERSION = ProtocolVersions.MCP_2025_06_18;
8181

8282
private static final String DEFAULT_ENDPOINT = "/mcp";
8383

@@ -140,7 +140,8 @@ private HttpClientStreamableHttpTransport(McpJsonMapper jsonMapper, HttpClient h
140140

141141
@Override
142142
public List<String> protocolVersions() {
143-
return List.of(ProtocolVersions.MCP_2024_11_05, ProtocolVersions.MCP_2025_03_26);
143+
return List.of(ProtocolVersions.MCP_2024_11_05, ProtocolVersions.MCP_2025_03_26,
144+
ProtocolVersions.MCP_2025_06_18);
144145
}
145146

146147
public static Builder builder(String baseUri) {

mcp-core/src/main/java/io/modelcontextprotocol/server/transport/HttpServletStreamableServerTransportProvider.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,8 @@ private HttpServletStreamableServerTransportProvider(McpJsonMapper jsonMapper, S
156156

157157
@Override
158158
public List<String> protocolVersions() {
159-
return List.of(ProtocolVersions.MCP_2024_11_05, ProtocolVersions.MCP_2025_03_26);
159+
return List.of(ProtocolVersions.MCP_2024_11_05, ProtocolVersions.MCP_2025_03_26,
160+
ProtocolVersions.MCP_2025_06_18);
160161
}
161162

162163
@Override

mcp-core/src/main/java/io/modelcontextprotocol/spec/McpSchema.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ private McpSchema() {
4444
}
4545

4646
@Deprecated
47-
public static final String LATEST_PROTOCOL_VERSION = ProtocolVersions.MCP_2025_03_26;
47+
public static final String LATEST_PROTOCOL_VERSION = ProtocolVersions.MCP_2025_06_18;
4848

4949
public static final String JSONRPC_VERSION = "2.0";
5050

mcp-core/src/main/java/io/modelcontextprotocol/spec/McpStatelessServerTransport.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ default void close() {
2929
Mono<Void> closeGracefully();
3030

3131
default List<String> protocolVersions() {
32-
return List.of(ProtocolVersions.MCP_2025_03_26);
32+
return List.of(ProtocolVersions.MCP_2025_03_26, ProtocolVersions.MCP_2025_06_18);
3333
}
3434

3535
}

mcp-core/src/test/java/io/modelcontextprotocol/client/transport/HttpClientStreamableHttpTransportTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ void testRequestCustomizer() throws URISyntaxException {
9090

9191
// Verify the customizer was called
9292
verify(mockRequestCustomizer, atLeastOnce()).customize(any(), eq("POST"), eq(uri), eq(
93-
"{\"jsonrpc\":\"2.0\",\"method\":\"initialize\",\"id\":\"test-id\",\"params\":{\"protocolVersion\":\"2025-03-26\",\"capabilities\":{\"roots\":{\"listChanged\":true}},\"clientInfo\":{\"name\":\"Spring AI MCP Client\",\"version\":\"0.3.1\"}}}"),
93+
"{\"jsonrpc\":\"2.0\",\"method\":\"initialize\",\"id\":\"test-id\",\"params\":{\"protocolVersion\":\"2025-06-18\",\"capabilities\":{\"roots\":{\"listChanged\":true}},\"clientInfo\":{\"name\":\"Spring AI MCP Client\",\"version\":\"0.3.1\"}}}"),
9494
eq(context));
9595
});
9696
}
@@ -120,7 +120,7 @@ void testAsyncRequestCustomizer() throws URISyntaxException {
120120

121121
// Verify the customizer was called
122122
verify(mockRequestCustomizer, atLeastOnce()).customize(any(), eq("POST"), eq(uri), eq(
123-
"{\"jsonrpc\":\"2.0\",\"method\":\"initialize\",\"id\":\"test-id\",\"params\":{\"protocolVersion\":\"2025-03-26\",\"capabilities\":{\"roots\":{\"listChanged\":true}},\"clientInfo\":{\"name\":\"Spring AI MCP Client\",\"version\":\"0.3.1\"}}}"),
123+
"{\"jsonrpc\":\"2.0\",\"method\":\"initialize\",\"id\":\"test-id\",\"params\":{\"protocolVersion\":\"2025-06-18\",\"capabilities\":{\"roots\":{\"listChanged\":true}},\"clientInfo\":{\"name\":\"Spring AI MCP Client\",\"version\":\"0.3.1\"}}}"),
124124
eq(context));
125125
});
126126
}

mcp-spring/mcp-spring-webflux/src/main/java/io/modelcontextprotocol/client/transport/WebClientStreamableHttpTransport.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ public class WebClientStreamableHttpTransport implements McpClientTransport {
7575

7676
private static final Logger logger = LoggerFactory.getLogger(WebClientStreamableHttpTransport.class);
7777

78-
private static final String MCP_PROTOCOL_VERSION = ProtocolVersions.MCP_2025_03_26;
78+
private static final String MCP_PROTOCOL_VERSION = ProtocolVersions.MCP_2025_06_18;
7979

8080
private static final String DEFAULT_ENDPOINT = "/mcp";
8181

@@ -116,7 +116,8 @@ private WebClientStreamableHttpTransport(McpJsonMapper jsonMapper, WebClient.Bui
116116

117117
@Override
118118
public List<String> protocolVersions() {
119-
return List.of(ProtocolVersions.MCP_2024_11_05, ProtocolVersions.MCP_2025_03_26);
119+
return List.of(ProtocolVersions.MCP_2024_11_05, ProtocolVersions.MCP_2025_03_26,
120+
ProtocolVersions.MCP_2025_06_18);
120121
}
121122

122123
/**

mcp-spring/mcp-spring-webflux/src/main/java/io/modelcontextprotocol/server/transport/WebFluxStreamableServerTransportProvider.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,8 @@ private WebFluxStreamableServerTransportProvider(McpJsonMapper jsonMapper, Strin
9797

9898
@Override
9999
public List<String> protocolVersions() {
100-
return List.of(ProtocolVersions.MCP_2024_11_05, ProtocolVersions.MCP_2025_03_26);
100+
return List.of(ProtocolVersions.MCP_2024_11_05, ProtocolVersions.MCP_2025_03_26,
101+
ProtocolVersions.MCP_2025_06_18);
101102
}
102103

103104
@Override

mcp-spring/mcp-spring-webmvc/src/main/java/io/modelcontextprotocol/server/transport/WebMvcStreamableServerTransportProvider.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,8 @@ private WebMvcStreamableServerTransportProvider(McpJsonMapper jsonMapper, String
143143

144144
@Override
145145
public List<String> protocolVersions() {
146-
return List.of(ProtocolVersions.MCP_2024_11_05, ProtocolVersions.MCP_2025_03_26);
146+
return List.of(ProtocolVersions.MCP_2024_11_05, ProtocolVersions.MCP_2025_03_26,
147+
ProtocolVersions.MCP_2025_06_18);
147148
}
148149

149150
@Override

0 commit comments

Comments
 (0)