Skip to content

Commit ba70e3c

Browse files
authored
Merge pull request #143 from joreilly/mcp_server_cleanup
mcp server config cleanup
2 parents 804fe96 + c73b3e1 commit ba70e3c

File tree

1 file changed

+3
-33
lines changed

1 file changed

+3
-33
lines changed

mcp-server/src/main/kotlin/server.kt

Lines changed: 3 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,10 @@
11
import dev.johnoreilly.climatetrace.data.ClimateTraceRepository
22
import dev.johnoreilly.climatetrace.di.initKoin
3-
import io.ktor.server.application.*
43
import io.ktor.server.cio.*
54
import io.ktor.server.engine.*
6-
import io.ktor.server.routing.*
7-
import io.ktor.server.sse.*
8-
import io.ktor.util.collections.*
95
import io.ktor.utils.io.streams.*
106
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.*
158
import kotlinx.coroutines.Job
169
import kotlinx.coroutines.runBlocking
1710
import kotlinx.io.asSink
@@ -118,33 +111,10 @@ fun `run mcp server using stdio`() {
118111
* @param port The port number on which the SSE server should be started.
119112
*/
120113
fun `run sse mcp server`(port: Int): Unit = runBlocking {
121-
val servers = ConcurrentMap<String, Server>()
122-
123114
val server = configureServer()
124115
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
148118
}
149119
}.start(wait = true)
150120
}

0 commit comments

Comments
 (0)