|
4 | 4 |
|
5 | 5 | package io.modelcontextprotocol.server; |
6 | 6 |
|
7 | | -import java.time.Duration; |
8 | | -import java.util.ArrayList; |
9 | | -import java.util.HashMap; |
10 | | -import java.util.List; |
11 | | -import java.util.Map; |
12 | | -import java.util.Optional; |
13 | | -import java.util.UUID; |
14 | | -import java.util.concurrent.ConcurrentHashMap; |
15 | | -import java.util.concurrent.CopyOnWriteArrayList; |
16 | | -import java.util.function.BiFunction; |
17 | | - |
18 | | -import io.modelcontextprotocol.spec.DefaultMcpStreamableServerSessionFactory; |
19 | | -import io.modelcontextprotocol.spec.McpServerTransportProviderBase; |
20 | | -import io.modelcontextprotocol.spec.McpStreamableServerTransportProvider; |
21 | | -import org.slf4j.Logger; |
22 | | -import org.slf4j.LoggerFactory; |
23 | | - |
24 | 7 | import com.fasterxml.jackson.core.type.TypeReference; |
25 | 8 | import com.fasterxml.jackson.databind.ObjectMapper; |
26 | | - |
27 | | -import io.modelcontextprotocol.spec.JsonSchemaValidator; |
28 | | -import io.modelcontextprotocol.spec.McpClientSession; |
29 | | -import io.modelcontextprotocol.spec.McpError; |
30 | | -import io.modelcontextprotocol.spec.McpSchema; |
31 | | -import io.modelcontextprotocol.spec.McpSchema.CallToolResult; |
32 | | -import io.modelcontextprotocol.spec.McpSchema.JSONRPCResponse; |
33 | | -import io.modelcontextprotocol.spec.McpSchema.LoggingLevel; |
34 | | -import io.modelcontextprotocol.spec.McpSchema.LoggingMessageNotification; |
35 | | -import io.modelcontextprotocol.spec.McpSchema.ResourceTemplate; |
36 | | -import io.modelcontextprotocol.spec.McpSchema.SetLevelRequest; |
37 | | -import io.modelcontextprotocol.spec.McpSchema.TextContent; |
38 | | -import io.modelcontextprotocol.spec.McpSchema.Tool; |
39 | | -import io.modelcontextprotocol.spec.McpServerSession; |
40 | | -import io.modelcontextprotocol.spec.McpServerTransportProvider; |
| 9 | +import io.modelcontextprotocol.spec.*; |
| 10 | +import io.modelcontextprotocol.spec.McpSchema.*; |
41 | 11 | import io.modelcontextprotocol.util.Assert; |
42 | 12 | import io.modelcontextprotocol.util.DeafaultMcpUriTemplateManagerFactory; |
43 | 13 | import io.modelcontextprotocol.util.McpUriTemplateManagerFactory; |
44 | 14 | import io.modelcontextprotocol.util.Utils; |
| 15 | +import org.slf4j.Logger; |
| 16 | +import org.slf4j.LoggerFactory; |
45 | 17 | import reactor.core.publisher.Flux; |
46 | 18 | import reactor.core.publisher.Mono; |
47 | 19 |
|
| 20 | +import java.time.Duration; |
| 21 | +import java.util.*; |
| 22 | +import java.util.concurrent.ConcurrentHashMap; |
| 23 | +import java.util.concurrent.CopyOnWriteArrayList; |
| 24 | +import java.util.function.BiFunction; |
| 25 | + |
48 | 26 | /** |
49 | 27 | * The Model Context Protocol (MCP) server implementation that provides asynchronous |
50 | 28 | * communication using Project Reactor's Mono and Flux types. |
@@ -148,9 +126,8 @@ public class McpAsyncServer { |
148 | 126 | Map<String, McpNotificationHandler> notificationHandlers = prepareNotificationHandlers(features); |
149 | 127 |
|
150 | 128 | this.protocolVersions = mcpTransportProvider.protocolVersions(); |
151 | | - |
152 | | - mcpTransportProvider.setSessionFactory(transport -> new McpServerSession(UUID.randomUUID().toString(), |
153 | | - requestTimeout, transport, this::asyncInitializeRequestHandler, requestHandlers, notificationHandlers)); |
| 129 | + mcpTransportProvider.setSessionFactory(new DefaultMcpServerSessionFactory(requestTimeout, |
| 130 | + this::asyncInitializeRequestHandler, requestHandlers, notificationHandlers)); |
154 | 131 | } |
155 | 132 |
|
156 | 133 | McpAsyncServer(McpStreamableServerTransportProvider mcpTransportProvider, ObjectMapper objectMapper, |
|
0 commit comments