Skip to content

Commit e50925e

Browse files
authored
Merge pull request #415 from mikepenz/feature/use_ktor_mcp_server
Use `mcp` configuration function from `mcp` sdk
2 parents 21ac239 + 2416685 commit e50925e

File tree

1 file changed

+3
-30
lines changed

1 file changed

+3
-30
lines changed

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

Lines changed: 3 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,13 @@
11
import com.surrus.common.di.initKoin
22
import com.surrus.common.repository.PeopleInSpaceRepository
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.*
117
import io.modelcontextprotocol.kotlin.sdk.server.Server
128
import io.modelcontextprotocol.kotlin.sdk.server.ServerOptions
13-
import io.modelcontextprotocol.kotlin.sdk.server.SseServerTransport
149
import io.modelcontextprotocol.kotlin.sdk.server.StdioServerTransport
10+
import io.modelcontextprotocol.kotlin.sdk.server.mcp
1511
import kotlinx.coroutines.Job
1612
import kotlinx.coroutines.runBlocking
1713
import kotlinx.io.asSink
@@ -86,33 +82,10 @@ fun `run mcp server using stdio`() {
8682
* @param port The port number on which the SSE server should be started.
8783
*/
8884
fun `run sse mcp server`(port: Int): Unit = runBlocking {
89-
val servers = ConcurrentMap<String, Server>()
90-
9185
val server = configureServer()
9286
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
11689
}
11790
}.start(wait = true)
11891
}

0 commit comments

Comments
 (0)