Skip to content

Commit fd306c3

Browse files
tiginamariakpavlov
authored andcommitted
Update examples
1 parent 2de96a5 commit fd306c3

File tree

3 files changed

+15
-10
lines changed

3 files changed

+15
-10
lines changed

kotlin-sdk-server/api/kotlin-sdk-server.api

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
public final class io/modelcontextprotocol/kotlin/sdk/LibVersionKt {
2+
public static final field LIB_VERSION Ljava/lang/String;
3+
}
4+
15
public final class io/modelcontextprotocol/kotlin/sdk/server/KtorServerKt {
26
public static final fun MCP (Lio/ktor/server/application/Application;Lkotlin/jvm/functions/Function1;)V
37
public static final fun mcp (Lio/ktor/server/application/Application;Lkotlin/jvm/functions/Function1;)V

samples/kotlin-mcp-server/src/commonMain/kotlin/server.kt

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import io.modelcontextprotocol.kotlin.sdk.TextResourceContents
2323
import io.modelcontextprotocol.kotlin.sdk.Tool
2424
import io.modelcontextprotocol.kotlin.sdk.server.Server
2525
import io.modelcontextprotocol.kotlin.sdk.server.ServerOptions
26+
import io.modelcontextprotocol.kotlin.sdk.server.ServerSession
2627
import io.modelcontextprotocol.kotlin.sdk.server.SseServerTransport
2728
import io.modelcontextprotocol.kotlin.sdk.server.mcp
2829

@@ -94,33 +95,33 @@ fun configureServer(): Server {
9495
}
9596

9697
suspend fun runSseMcpServerWithPlainConfiguration(port: Int) {
97-
val servers = ConcurrentMap<String, Server>()
98+
val serverSessions = ConcurrentMap<String, ServerSession>()
9899
println("Starting sse server on port $port. ")
99100
println("Use inspector to connect to the http://localhost:$port/sse")
100101

102+
val server = configureServer()
103+
101104
embeddedServer(CIO, host = "0.0.0.0", port = port) {
102105
install(SSE)
103106
routing {
104107
sse("/sse") {
105108
val transport = SseServerTransport("/message", this)
106-
val server = configureServer()
107109

108110
// For SSE, you can also add prompts/tools/resources if needed:
109111
// server.addTool(...), server.addPrompt(...), server.addResource(...)
110112

111-
servers[transport.sessionId] = server
113+
val serverSession = server.connect(transport)
114+
serverSessions[transport.sessionId] = server.connect(transport)
112115

113-
server.onClose {
116+
serverSession.onClose {
114117
println("Server closed")
115-
servers.remove(transport.sessionId)
118+
serverSessions.remove(transport.sessionId)
116119
}
117-
118-
server.connect(transport)
119120
}
120121
post("/message") {
121122
println("Received Message")
122123
val sessionId: String = call.request.queryParameters["sessionId"]!!
123-
val transport = servers[sessionId]?.transport as? SseServerTransport
124+
val transport = serverSessions[sessionId]?.transport as? SseServerTransport
124125
if (transport == null) {
125126
call.respond(HttpStatusCode.NotFound, "Session not found")
126127
return@post

samples/weather-stdio-server/src/main/kotlin/io/modelcontextprotocol/sample/server/McpWeatherServer.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,9 +114,9 @@ fun `run mcp server`() {
114114
)
115115

116116
runBlocking {
117-
server.connect(transport)
117+
val session = server.connect(transport)
118118
val done = Job()
119-
server.onClose {
119+
session.onClose {
120120
done.complete()
121121
}
122122
done.join()

0 commit comments

Comments
 (0)