Skip to content

Commit ce240f6

Browse files
committed
fix(server): Start McpHttpServer in a dedicated thread for avoid blocking main thread
1 parent c9e4e6d commit ce240f6

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

src/main/java/com/github/codeboyzhou/mcp/declarative/server/factory/McpHttpSseServerFactory.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
package com.github.codeboyzhou.mcp.declarative.server.factory;
22

3+
import com.github.codeboyzhou.mcp.declarative.common.NamedThreadFactory;
34
import com.github.codeboyzhou.mcp.declarative.server.McpHttpServer;
45
import com.github.codeboyzhou.mcp.declarative.server.McpSseServerInfo;
56
import com.github.codeboyzhou.mcp.declarative.util.JsonHelper;
67
import io.modelcontextprotocol.server.McpAsyncServer;
78
import io.modelcontextprotocol.server.McpServer;
89
import io.modelcontextprotocol.server.transport.HttpServletSseServerTransportProvider;
910

11+
import java.util.concurrent.Executors;
12+
1013
public class McpHttpSseServerFactory extends AbstractMcpServerFactory<HttpServletSseServerTransportProvider, McpSseServerInfo> {
1114

1215
@Override
@@ -27,7 +30,8 @@ public McpAsyncServer create(McpSseServerInfo serverInfo) {
2730
.requestTimeout(serverInfo.requestTimeout())
2831
.build();
2932
McpHttpServer httpServer = new McpHttpServer(transportProvider, serverInfo.port());
30-
httpServer.start();
33+
NamedThreadFactory threadFactory = new NamedThreadFactory(McpHttpServer.class.getSimpleName());
34+
Executors.newSingleThreadExecutor(threadFactory).execute(httpServer::start);
3135
return server;
3236
}
3337

0 commit comments

Comments
 (0)