@@ -23,6 +23,7 @@ import io.modelcontextprotocol.kotlin.sdk.TextResourceContents
2323import io.modelcontextprotocol.kotlin.sdk.Tool
2424import io.modelcontextprotocol.kotlin.sdk.server.Server
2525import io.modelcontextprotocol.kotlin.sdk.server.ServerOptions
26+ import io.modelcontextprotocol.kotlin.sdk.server.ServerSession
2627import io.modelcontextprotocol.kotlin.sdk.server.SseServerTransport
2728import io.modelcontextprotocol.kotlin.sdk.server.mcp
2829
@@ -94,33 +95,33 @@ fun configureServer(): Server {
9495}
9596
9697suspend fun runSseMcpServerWithPlainConfiguration (port : Int ) {
97- val servers = ConcurrentMap <String , Server >()
98+ val serverSessions = ConcurrentMap <String , ServerSession >()
9899 println (" Starting sse server on port $port . " )
99100 println (" Use inspector to connect to the http://localhost:$port /sse" )
100101
102+ val server = configureServer()
103+
101104 embeddedServer(CIO , host = " 0.0.0.0" , port = port) {
102105 install(SSE )
103106 routing {
104107 sse(" /sse" ) {
105108 val transport = SseServerTransport (" /message" , this )
106- val server = configureServer()
107109
108110 // For SSE, you can also add prompts/tools/resources if needed:
109111 // server.addTool(...), server.addPrompt(...), server.addResource(...)
110112
111- servers[transport.sessionId] = server
113+ val serverSession = server.connect(transport)
114+ serverSessions[transport.sessionId] = server.connect(transport)
112115
113- server .onClose {
116+ serverSession .onClose {
114117 println (" Server closed" )
115- servers .remove(transport.sessionId)
118+ serverSessions .remove(transport.sessionId)
116119 }
117-
118- server.connect(transport)
119120 }
120121 post(" /message" ) {
121122 println (" Received Message" )
122123 val sessionId: String = call.request.queryParameters[" sessionId" ]!!
123- val transport = servers [sessionId]?.transport as ? SseServerTransport
124+ val transport = serverSessions [sessionId]?.transport as ? SseServerTransport
124125 if (transport == null ) {
125126 call.respond(HttpStatusCode .NotFound , " Session not found" )
126127 return @post
0 commit comments