Skip to content

Commit ce85a7a

Browse files
committed
feat(server): Add requestTimeout field to McpServerInfo
1 parent 2f62e0b commit ce85a7a

File tree

4 files changed

+30
-10
lines changed

4 files changed

+30
-10
lines changed

src/main/java/com/github/codeboyzhou/mcp/declarative/McpServers.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,14 @@
1616
import io.modelcontextprotocol.spec.McpServerTransportProvider;
1717
import org.reflections.Reflections;
1818

19+
import java.time.Duration;
20+
1921
public class McpServers {
2022

2123
private static final McpServers INSTANCE = new McpServers();
2224

2325
private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
2426

25-
private static final String DEFAULT_MESSAGE_ENDPOINT = "/message";
26-
27-
private static final int DEFAULT_HTTP_SERVER_PORT = 8080;
28-
2927
private static Reflections reflections;
3028

3129
public static McpServers run(Class<?> applicationMainClass, String[] args) {
@@ -46,18 +44,20 @@ private static String determineBasePackage(McpComponentScan scan, Class<?> appli
4644
return applicationMainClass.getPackageName();
4745
}
4846

47+
@Deprecated(since = "0.4.0")
4948
public void startSyncStdioServer(String name, String version, String instructions) {
49+
McpServerInfo serverInfo = McpServerInfo.builder().name(name).version(version)
50+
.instructions(instructions).requestTimeout(Duration.ofSeconds(10)).build();
51+
startSyncStdioServer(serverInfo);
52+
}
53+
54+
public void startSyncStdioServer(McpServerInfo serverInfo) {
5055
McpServerFactory<McpSyncServer> factory = new McpSyncServerFactory();
51-
McpServerInfo serverInfo = McpServerInfo.builder().name(name).version(version).instructions(instructions).build();
5256
McpServerTransportProvider transportProvider = new StdioServerTransportProvider();
5357
McpSyncServer server = factory.create(serverInfo, transportProvider);
5458
McpServerComponentRegisters.registerAllTo(server, reflections);
5559
}
5660

57-
public void startSyncStdioServer(McpServerInfo serverInfo) {
58-
startSyncStdioServer(serverInfo.name(), serverInfo.version(), serverInfo.instructions());
59-
}
60-
6161
public void startSyncSseServer(McpSseServerInfo serverInfo, McpHttpServerStatusListener<McpSyncServer> listener) {
6262
McpServerFactory<McpSyncServer> factory = new McpSyncServerFactory();
6363
HttpServletSseServerTransportProvider transportProvider = new HttpServletSseServerTransportProvider(

src/main/java/com/github/codeboyzhou/mcp/declarative/server/McpServerInfo.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.github.codeboyzhou.mcp.declarative.server;
22

3+
import java.time.Duration;
4+
35
public class McpServerInfo {
46

57
private final String name;
@@ -8,10 +10,13 @@ public class McpServerInfo {
810

911
private final String instructions;
1012

13+
private final Duration requestTimeout;
14+
1115
protected McpServerInfo(Builder<?> builder) {
1216
this.name = builder.name;
1317
this.version = builder.version;
1418
this.instructions = builder.instructions;
19+
this.requestTimeout = builder.requestTimeout;
1520
}
1621

1722
public static Builder<?> builder() {
@@ -30,6 +35,10 @@ public String instructions() {
3035
return instructions;
3136
}
3237

38+
public Duration requestTimeout() {
39+
return requestTimeout;
40+
}
41+
3342
@SuppressWarnings("unchecked")
3443
public static class Builder<T extends Builder<T>> {
3544

@@ -39,6 +48,8 @@ public static class Builder<T extends Builder<T>> {
3948

4049
protected String instructions;
4150

51+
protected Duration requestTimeout;
52+
4253
protected T self() {
4354
return (T) this;
4455
}
@@ -62,6 +73,11 @@ public T instructions(String instructions) {
6273
return self();
6374
}
6475

76+
public T requestTimeout(Duration requestTimeout) {
77+
this.requestTimeout = requestTimeout;
78+
return self();
79+
}
80+
6581
}
6682

6783
}

src/main/java/com/github/codeboyzhou/mcp/declarative/server/McpSyncServerFactory.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ public McpSyncServer create(McpServerInfo serverInfo, McpServerTransportProvider
1212
.instructions(serverInfo.instructions())
1313
.capabilities(configureServerCapabilities())
1414
.serverInfo(serverInfo.name(), serverInfo.version())
15+
.requestTimeout(serverInfo.requestTimeout())
1516
.build();
1617
}
17-
18+
1819
}

src/test/java/com/github/codeboyzhou/mcp/declarative/McpServersTest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import org.reflections.scanners.Scanners;
1717

1818
import java.lang.reflect.Field;
19+
import java.time.Duration;
1920
import java.util.Map;
2021
import java.util.Set;
2122

@@ -57,6 +58,7 @@ void testStartSyncStdioServer() {
5758
McpServers servers = McpServers.run(TestMcpComponentScanIsNull.class, EMPTY_ARGS);
5859
McpServerInfo serverInfo = McpServerInfo.builder()
5960
.instructions("test-mcp-sync-stdio-server-instructions")
61+
.requestTimeout(Duration.ofSeconds(10))
6062
.name("test-mcp-sync-stdio-server")
6163
.version("1.0.0")
6264
.build();
@@ -71,6 +73,7 @@ void testStartSyncSseServer() {
7173
assertDoesNotThrow(() -> {
7274
McpSseServerInfo serverInfo = McpSseServerInfo.builder()
7375
.instructions("test-mcp-sync-sse-server-instructions")
76+
.requestTimeout(Duration.ofSeconds(10))
7477
.baseUrl("http://127.0.0.1:8080")
7578
.messageEndpoint("/message")
7679
.sseEndpoint("/sse")

0 commit comments

Comments
 (0)