Skip to content

Commit 1c5e549

Browse files
authored
Refactor onCloseCallback to onClose and update related usages across the codebase (#62)
1 parent 0f3adfd commit 1c5e549

File tree

5 files changed

+13
-24
lines changed

5 files changed

+13
-24
lines changed

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

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,11 @@ import io.modelcontextprotocol.kotlin.sdk.PromptMessage
1414
import io.modelcontextprotocol.kotlin.sdk.Role
1515
import io.modelcontextprotocol.kotlin.sdk.ServerCapabilities
1616
import io.modelcontextprotocol.kotlin.sdk.Tool
17-
import io.modelcontextprotocol.kotlin.sdk.server.MCP
18-
import io.modelcontextprotocol.kotlin.sdk.server.SSEServerTransport
1917
import io.modelcontextprotocol.kotlin.sdk.server.Server
2018
import io.modelcontextprotocol.kotlin.sdk.server.ServerOptions
19+
import io.modelcontextprotocol.kotlin.sdk.server.SseServerTransport
2120
import io.modelcontextprotocol.kotlin.sdk.server.StdioServerTransport
22-
import kotlinx.coroutines.CompletableDeferred
21+
import io.modelcontextprotocol.kotlin.sdk.server.mcp
2322
import kotlinx.coroutines.Job
2423
import kotlinx.coroutines.runBlocking
2524
import kotlinx.io.asSink
@@ -48,8 +47,6 @@ fun main(args: Array<String>) {
4847
}
4948

5049
fun configureServer(): Server {
51-
val def = CompletableDeferred<Unit>()
52-
5350
val server = Server(
5451
Implementation(
5552
name = "mcp-kotlin test server",
@@ -61,10 +58,7 @@ fun configureServer(): Server {
6158
resources = ServerCapabilities.Resources(subscribe = true, listChanged = true),
6259
tools = ServerCapabilities.Tools(listChanged = true),
6360
)
64-
),
65-
onCloseCallback = {
66-
def.complete(Unit)
67-
}
61+
)
6862
)
6963

7064
server.addPrompt(
@@ -129,7 +123,7 @@ fun runMcpServerUsingStdio() {
129123
runBlocking {
130124
server.connect(transport)
131125
val done = Job()
132-
server.onCloseCallback = {
126+
server.onClose {
133127
done.complete()
134128
}
135129
done.join()
@@ -146,15 +140,15 @@ fun runSseMcpServerWithPlainConfiguration(port: Int): Unit = runBlocking {
146140
install(SSE)
147141
routing {
148142
sse("/sse") {
149-
val transport = SSEServerTransport("/message", this)
143+
val transport = SseServerTransport("/message", this)
150144
val server = configureServer()
151145

152146
// For SSE, you can also add prompts/tools/resources if needed:
153147
// server.addTool(...), server.addPrompt(...), server.addResource(...)
154148

155149
servers[transport.sessionId] = server
156150

157-
server.onCloseCallback = {
151+
server.onClose {
158152
println("Server closed")
159153
servers.remove(transport.sessionId)
160154
}
@@ -164,7 +158,7 @@ fun runSseMcpServerWithPlainConfiguration(port: Int): Unit = runBlocking {
164158
post("/message") {
165159
println("Received Message")
166160
val sessionId: String = call.request.queryParameters["sessionId"]!!
167-
val transport = servers[sessionId]?.transport as? SSEServerTransport
161+
val transport = servers[sessionId]?.transport as? SseServerTransport
168162
if (transport == null) {
169163
call.respond(HttpStatusCode.NotFound, "Session not found")
170164
return@post
@@ -189,8 +183,8 @@ fun runSseMcpServerUsingKtorPlugin(port: Int): Unit = runBlocking {
189183
println("Use inspector to connect to the http://localhost:$port/sse")
190184

191185
embeddedServer(CIO, host = "0.0.0.0", port = port) {
192-
MCP {
193-
return@MCP configureServer()
186+
mcp {
187+
return@mcp configureServer()
194188
}
195189
}.start(wait = true)
196190
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ fun `run mcp server`() {
121121
runBlocking {
122122
server.connect(transport)
123123
val done = Job()
124-
server.onCloseCallback = {
124+
server.onClose {
125125
done.complete()
126126
}
127127
done.join()

src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/server/Server.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ public class ServerOptions(
3030
*
3131
* @param serverInfo Information about this server implementation (name, version).
3232
* @param options Configuration options for the server.
33-
* @param onCloseCallback A callback invoked when the server connection closes.
3433
*/
3534
public open class Server(
3635
private val serverInfo: Implementation,
@@ -127,7 +126,6 @@ public open class Server(
127126

128127
/**
129128
* Called when the server connection is closing.
130-
* Invokes [onCloseCallback] if set.
131129
*/
132130
override fun onClose() {
133131
logger.info { "Server connection closing" }

src/jvmTest/kotlin/InMemoryTransport.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import io.modelcontextprotocol.kotlin.sdk.JSONRPCMessage
22
import io.modelcontextprotocol.kotlin.sdk.shared.AbstractTransport
3-
import io.modelcontextprotocol.kotlin.sdk.shared.Transport
43

54
/**
65
* In-memory transport for creating clients and servers that talk to each other within the same process.

src/jvmTest/kotlin/client/InMemoryTransportTest.kt

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -96,11 +96,9 @@ class InMemoryTransportTest {
9696
clientTransport.close()
9797

9898
assertThrows<IllegalStateException> {
99-
runBlocking {
100-
clientTransport.send(
101-
InitializedNotification().toJSON()
102-
)
103-
}
99+
clientTransport.send(
100+
InitializedNotification().toJSON()
101+
)
104102
}
105103
}
106104
}

0 commit comments

Comments
 (0)