|
1 | 1 | import dev.johnoreilly.climatetrace.data.ClimateTraceRepository |
2 | 2 | import dev.johnoreilly.climatetrace.di.initKoin |
3 | | -import io.ktor.server.application.* |
4 | 3 | import io.ktor.server.cio.* |
5 | 4 | import io.ktor.server.engine.* |
6 | | -import io.ktor.server.routing.* |
7 | | -import io.ktor.server.sse.* |
8 | | -import io.ktor.util.collections.* |
9 | 5 | import io.ktor.utils.io.streams.* |
10 | 6 | import io.modelcontextprotocol.kotlin.sdk.* |
11 | | -import io.modelcontextprotocol.kotlin.sdk.server.Server |
12 | | -import io.modelcontextprotocol.kotlin.sdk.server.ServerOptions |
13 | | -import io.modelcontextprotocol.kotlin.sdk.server.SseServerTransport |
14 | | -import io.modelcontextprotocol.kotlin.sdk.server.StdioServerTransport |
| 7 | +import io.modelcontextprotocol.kotlin.sdk.server.* |
15 | 8 | import kotlinx.coroutines.Job |
16 | 9 | import kotlinx.coroutines.runBlocking |
17 | 10 | import kotlinx.io.asSink |
@@ -118,33 +111,10 @@ fun `run mcp server using stdio`() { |
118 | 111 | * @param port The port number on which the SSE server should be started. |
119 | 112 | */ |
120 | 113 | fun `run sse mcp server`(port: Int): Unit = runBlocking { |
121 | | - val servers = ConcurrentMap<String, Server>() |
122 | | - |
123 | 114 | val server = configureServer() |
124 | 115 | embeddedServer(CIO, host = "0.0.0.0", port = port) { |
125 | | - install(SSE) |
126 | | - routing { |
127 | | - sse("/sse") { |
128 | | - val transport = SseServerTransport("/message", this) |
129 | | - |
130 | | - servers[transport.sessionId] = server |
131 | | - |
132 | | - server.onClose { |
133 | | - servers.remove(transport.sessionId) |
134 | | - } |
135 | | - |
136 | | - server.connect(transport) |
137 | | - } |
138 | | - post("/message") { |
139 | | - val sessionId: String = call.request.queryParameters["sessionId"]!! |
140 | | - val transport = servers[sessionId]?.transport as? SseServerTransport |
141 | | - if (transport == null) { |
142 | | - call.respond("Session not found", null) |
143 | | - return@post |
144 | | - } |
145 | | - |
146 | | - transport.handlePostMessage(call) |
147 | | - } |
| 116 | + mcp { |
| 117 | + server |
148 | 118 | } |
149 | 119 | }.start(wait = true) |
150 | 120 | } |
0 commit comments