|
1 | 1 | import com.surrus.common.di.initKoin |
2 | 2 | import com.surrus.common.repository.PeopleInSpaceRepository |
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 | 7 | import io.modelcontextprotocol.kotlin.sdk.server.Server |
12 | 8 | import io.modelcontextprotocol.kotlin.sdk.server.ServerOptions |
13 | | -import io.modelcontextprotocol.kotlin.sdk.server.SseServerTransport |
14 | 9 | import io.modelcontextprotocol.kotlin.sdk.server.StdioServerTransport |
| 10 | +import io.modelcontextprotocol.kotlin.sdk.server.mcp |
15 | 11 | import kotlinx.coroutines.Job |
16 | 12 | import kotlinx.coroutines.runBlocking |
17 | 13 | import kotlinx.io.asSink |
@@ -86,33 +82,10 @@ fun `run mcp server using stdio`() { |
86 | 82 | * @param port The port number on which the SSE server should be started. |
87 | 83 | */ |
88 | 84 | fun `run sse mcp server`(port: Int): Unit = runBlocking { |
89 | | - val servers = ConcurrentMap<String, Server>() |
90 | | - |
91 | 85 | val server = configureServer() |
92 | 86 | embeddedServer(CIO, host = "0.0.0.0", port = port) { |
93 | | - install(SSE) |
94 | | - routing { |
95 | | - sse("/sse") { |
96 | | - val transport = SseServerTransport("/message", this) |
97 | | - |
98 | | - servers[transport.sessionId] = server |
99 | | - |
100 | | - server.onClose { |
101 | | - servers.remove(transport.sessionId) |
102 | | - } |
103 | | - |
104 | | - server.connect(transport) |
105 | | - } |
106 | | - post("/message") { |
107 | | - val sessionId: String = call.request.queryParameters["sessionId"]!! |
108 | | - val transport = servers[sessionId]?.transport as? SseServerTransport |
109 | | - if (transport == null) { |
110 | | - call.respond("Session not found", null) |
111 | | - return@post |
112 | | - } |
113 | | - |
114 | | - transport.handlePostMessage(call) |
115 | | - } |
| 87 | + mcp { |
| 88 | + server |
116 | 89 | } |
117 | 90 | }.start(wait = true) |
118 | 91 | } |
0 commit comments