Skip to content

Commit cfb5d92

Browse files
adwsinghrhernandez35
authored andcommitted
Handle null protocol version in the request
1 parent 7fe8eda commit cfb5d92

2 files changed

Lines changed: 17 additions & 6 deletions

File tree

mcp/mcp-server/src/main/java/software/amazon/smithy/java/mcp/server/McpServer.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -136,11 +136,13 @@ private void handleRequest(JsonRpcRequest req) {
136136
pv = protocolVersion.identifier();
137137
}
138138
}
139-
140139
proxies.values().forEach(this::initialize);
140+
var builder = InitializeResult.builder();
141+
if (pv != null) {
142+
builder.protocolVersion(pv);
143+
}
141144
writeResponse(req.getId(),
142-
InitializeResult.builder()
143-
.protocolVersion(pv)
145+
builder
144146
.capabilities(Capabilities.builder()
145147
.tools(Tools.builder().listChanged(true).build())
146148
.prompts(Prompts.builder().listChanged(true).build())

mcp/mcp-server/src/test/java/software/amazon/smithy/java/mcp/server/McpServerTest.java

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,18 @@ public void afterEach() {
6363
}
6464

6565
private void initializeWithProtocolVersion(ProtocolVersion protocolVersion) {
66-
write("initialize", Document.of(Map.of("protocolVersion", Document.of(protocolVersion.identifier()))));
66+
final Document pvDoc;
67+
final String expectedPv;
68+
if (protocolVersion == null) {
69+
pvDoc = Document.of(Map.of());
70+
expectedPv = ProtocolVersion.v2024_11_05.INSTANCE.identifier();
71+
} else {
72+
pvDoc = Document.of(Map.of("protocolVersion", Document.of(protocolVersion.identifier())));
73+
expectedPv = protocolVersion.identifier();
74+
}
75+
write("initialize", pvDoc);
6776
var pv = read().getResult().getMember("protocolVersion").asString();
68-
assertEquals(protocolVersion.identifier(), pv);
77+
assertEquals(expectedPv, pv);
6978
}
7079

7180
@Test
@@ -116,7 +125,7 @@ public void validateToolsList() {
116125

117126
server.start();
118127

119-
initializeWithProtocolVersion(ProtocolVersion.v2025_06_18.INSTANCE);
128+
initializeWithProtocolVersion(null);
120129
write("tools/list", Document.of(Map.of()));
121130
var response = read();
122131
var result = response.getResult().asStringMap();

0 commit comments

Comments
 (0)