From e46a0e7d95badeb8c005c1b535d771947caf151b Mon Sep 17 00:00:00 2001 From: "Artem.Bukhonov" Date: Thu, 17 Jul 2025 21:31:32 +0200 Subject: [PATCH 1/2] Add ServerSSESession as a receiver for mcp {} dsl --- .../kotlin/sdk/server/KtorServer.kt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/kotlin-sdk-server/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/server/KtorServer.kt b/kotlin-sdk-server/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/server/KtorServer.kt index 056c7854..260ef967 100644 --- a/kotlin-sdk-server/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/server/KtorServer.kt +++ b/kotlin-sdk-server/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/server/KtorServer.kt @@ -19,7 +19,7 @@ import io.ktor.utils.io.KtorDsl private val logger = KotlinLogging.logger {} @KtorDsl -public fun Routing.mcp(path: String, block: () -> Server) { +public fun Routing.mcp(path: String, block: ServerSSESession.() -> Server) { route(path) { mcp(block) } @@ -29,7 +29,7 @@ public fun Routing.mcp(path: String, block: () -> Server) { * Configures the Ktor Application to handle Model Context Protocol (MCP) over Server-Sent Events (SSE). */ @KtorDsl -public fun Routing.mcp(block: () -> Server) { +public fun Routing.mcp(block: ServerSSESession.() -> Server) { val transports = ConcurrentMap() sse { @@ -43,12 +43,12 @@ public fun Routing.mcp(block: () -> Server) { @Suppress("FunctionName") @Deprecated("Use mcp() instead", ReplaceWith("mcp(block)"), DeprecationLevel.WARNING) -public fun Application.MCP(block: () -> Server) { +public fun Application.MCP(block: ServerSSESession.() -> Server) { mcp(block) } @KtorDsl -public fun Application.mcp(block: () -> Server) { +public fun Application.mcp(block: ServerSSESession.() -> Server) { val transports = ConcurrentMap() install(SSE) @@ -67,7 +67,7 @@ public fun Application.mcp(block: () -> Server) { private suspend fun ServerSSESession.mcpSseEndpoint( postEndpoint: String, transports: ConcurrentMap, - block: () -> Server, + block: ServerSSESession.() -> Server, ) { val transport = mcpSseTransport(postEndpoint, transports) From 9bbe5ac99c40f884842b1008473e0e9b0f5a9867 Mon Sep 17 00:00:00 2001 From: devcrocod Date: Mon, 4 Aug 2025 12:36:29 +0200 Subject: [PATCH 2/2] update api --- kotlin-sdk-server/api/kotlin-sdk-server.api | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/kotlin-sdk-server/api/kotlin-sdk-server.api b/kotlin-sdk-server/api/kotlin-sdk-server.api index cd64a75e..7e2ed4e1 100644 --- a/kotlin-sdk-server/api/kotlin-sdk-server.api +++ b/kotlin-sdk-server/api/kotlin-sdk-server.api @@ -3,10 +3,10 @@ public final class io/modelcontextprotocol/kotlin/sdk/LibVersionKt { } public final class io/modelcontextprotocol/kotlin/sdk/server/KtorServerKt { - public static final fun MCP (Lio/ktor/server/application/Application;Lkotlin/jvm/functions/Function0;)V - public static final fun mcp (Lio/ktor/server/application/Application;Lkotlin/jvm/functions/Function0;)V - public static final fun mcp (Lio/ktor/server/routing/Routing;Ljava/lang/String;Lkotlin/jvm/functions/Function0;)V - public static final fun mcp (Lio/ktor/server/routing/Routing;Lkotlin/jvm/functions/Function0;)V + public static final fun MCP (Lio/ktor/server/application/Application;Lkotlin/jvm/functions/Function1;)V + public static final fun mcp (Lio/ktor/server/application/Application;Lkotlin/jvm/functions/Function1;)V + public static final fun mcp (Lio/ktor/server/routing/Routing;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V + public static final fun mcp (Lio/ktor/server/routing/Routing;Lkotlin/jvm/functions/Function1;)V } public final class io/modelcontextprotocol/kotlin/sdk/server/RegisteredPrompt {