fix: ensure ssePath for common uses /mcp/sse/common

This commit is contained in:
jade
2026-07-15 23:10:32 +09:00
parent 0323ce4f2c
commit d70a81ee43

View File

@@ -61,8 +61,8 @@ public class DynamicMcpServerManager {
return categoryServers.computeIfAbsent(safeCategory, key -> { return categoryServers.computeIfAbsent(safeCategory, key -> {
log.info("Creating dynamic MCP Server for category: {}", key); log.info("Creating dynamic MCP Server for category: {}", key);
String ssePath = "common".equals(key) ? "/mcp/sse" : "/mcp/sse/" + key; String ssePath = "/mcp/sse/" + key;
String msgPath = "common".equals(key) ? "/mcp/message" : "/mcp/message/" + key; String msgPath = "/mcp/message/" + key;
WebMvcSseServerTransportProvider transport = WebMvcSseServerTransportProvider.builder() WebMvcSseServerTransportProvider transport = WebMvcSseServerTransportProvider.builder()
.sseEndpoint(ssePath) .sseEndpoint(ssePath)
@@ -116,12 +116,16 @@ public class DynamicMcpServerManager {
public RouterFunction<ServerResponse> getDynamicRouter() { public RouterFunction<ServerResponse> getDynamicRouter() {
return request -> { return request -> {
for (WebMvcSseServerTransportProvider transport : categoryTransports.values()) { log.info("[DynamicMcpRouter] Incoming request path: {}, method: {}", request.path(), request.method());
for (Map.Entry<String, WebMvcSseServerTransportProvider> entry : categoryTransports.entrySet()) {
WebMvcSseServerTransportProvider transport = entry.getValue();
Optional<HandlerFunction<ServerResponse>> handler = transport.getRouterFunction().route(request); Optional<HandlerFunction<ServerResponse>> handler = transport.getRouterFunction().route(request);
if (handler.isPresent()) { if (handler.isPresent()) {
log.info("[DynamicMcpRouter] Matched handler for key: {}", entry.getKey());
return handler; return handler;
} }
} }
log.info("[DynamicMcpRouter] No handler matched for path: {}", request.path());
return Optional.empty(); return Optional.empty();
}; };
} }