|
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