Skip to content

Commit 8446c42

Browse files
committed
Allow setting a version in McpService and McpServer
1 parent 8bcb480 commit 8446c42

File tree

2 files changed

+31
-6
lines changed

2 files changed

+31
-6
lines changed

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

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ public final class McpServerBuilder {
2525
Map<String, Service> services = new HashMap<>();
2626
List<McpServerProxy> proxyList = new ArrayList<>();
2727
String name;
28+
String version;
2829
ToolFilter toolFilter = (server, tool) -> true;
2930
McpService mcpService;
3031

@@ -51,15 +52,25 @@ public McpServerBuilder name(String name) {
5152
return this;
5253
}
5354

55+
public McpServerBuilder version(String version) {
56+
this.version = version;
57+
return this;
58+
}
59+
5460
public Server build() {
5561
validate();
5662
// Create McpService before building McpServer
57-
this.mcpService = McpService.builder()
63+
var builder = McpService.builder()
5864
.services(services)
5965
.proxyList(proxyList)
6066
.name(name != null ? name : "mcp-server")
61-
.toolFilter(toolFilter)
62-
.build();
67+
.toolFilter(toolFilter);
68+
69+
if (version != null) {
70+
builder.version(version);
71+
}
72+
73+
this.mcpService = builder.build();
6374
return new McpServer(this);
6475
}
6576

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

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,17 +74,25 @@ public final class McpService {
7474
private final Map<String, Prompt> prompts;
7575
private final PromptProcessor promptProcessor;
7676
private final String name;
77+
private final String version;
7778
private final Map<String, McpServerProxy> proxies;
7879
private final Map<String, Service> services;
7980
private final AtomicReference<JsonRpcRequest> initializeRequest = new AtomicReference<>();
8081
private final ToolFilter toolFilter;
8182

82-
McpService(Map<String, Service> services, List<McpServerProxy> proxyList, String name, ToolFilter toolFilter) {
83+
McpService(
84+
Map<String, Service> services,
85+
List<McpServerProxy> proxyList,
86+
String name,
87+
String version,
88+
ToolFilter toolFilter
89+
) {
8390
this.services = services;
8491
this.tools = createTools(services);
8592
this.prompts = PromptLoader.loadPrompts(services.values());
8693
this.promptProcessor = new PromptProcessor();
8794
this.name = name;
95+
this.version = version;
8896
this.proxies = proxyList.stream().collect(Collectors.toMap(McpServerProxy::name, p -> p));
8997
this.toolFilter = toolFilter;
9098
}
@@ -142,7 +150,7 @@ private JsonRpcResponse handleInitialize(JsonRpcRequest req) {
142150
.build())
143151
.serverInfo(ServerInfo.builder()
144152
.name(name)
145-
.version("1.0.0")
153+
.version(version)
146154
.build())
147155
.build();
148156

@@ -594,6 +602,7 @@ public static class Builder {
594602
private Map<String, Service> services = new HashMap<>();
595603
private List<McpServerProxy> proxyList = new ArrayList<>();
596604
private String name = "mcp-server";
605+
private String version = "1.0.0";
597606
private ToolFilter toolFilter = (serverId, toolName) -> true;
598607

599608
public Builder services(Map<String, Service> services) {
@@ -611,13 +620,18 @@ public Builder name(String name) {
611620
return this;
612621
}
613622

623+
public Builder version(String version) {
624+
this.version = version;
625+
return this;
626+
}
627+
614628
public Builder toolFilter(ToolFilter toolFilter) {
615629
this.toolFilter = toolFilter;
616630
return this;
617631
}
618632

619633
public McpService build() {
620-
return new McpService(services, proxyList, name, toolFilter);
634+
return new McpService(services, proxyList, name, version, toolFilter);
621635
}
622636
}
623637
}

0 commit comments

Comments
 (0)