Skip to content

Commit cc2a8e7

Browse files
committed
Rename Client and Server to McpClient and McpServer
Add configurer for McpServer
1 parent 458a49a commit cc2a8e7

File tree

26 files changed

+274
-171
lines changed

26 files changed

+274
-171
lines changed

kotlin-sdk-client/api/kotlin-sdk-client.api

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,51 @@ public final class io/modelcontextprotocol/kotlin/sdk/client/KtorClientKt {
5757
public static synthetic fun mcpSseTransport-5_5nbZA$default (Lio/ktor/client/HttpClient;Ljava/lang/String;Lkotlin/time/Duration;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lio/modelcontextprotocol/kotlin/sdk/client/SseClientTransport;
5858
}
5959

60+
public class io/modelcontextprotocol/kotlin/sdk/client/McpClient : io/modelcontextprotocol/kotlin/sdk/shared/Protocol {
61+
public fun <init> (Lio/modelcontextprotocol/kotlin/sdk/Implementation;Lio/modelcontextprotocol/kotlin/sdk/client/ClientOptions;)V
62+
public synthetic fun <init> (Lio/modelcontextprotocol/kotlin/sdk/Implementation;Lio/modelcontextprotocol/kotlin/sdk/client/ClientOptions;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
63+
public final fun addRoot (Ljava/lang/String;Ljava/lang/String;)V
64+
public final fun addRoots (Ljava/util/List;)V
65+
protected final fun assertCapability (Ljava/lang/String;Ljava/lang/String;)V
66+
protected fun assertCapabilityForMethod (Lio/modelcontextprotocol/kotlin/sdk/Method;)V
67+
protected fun assertNotificationCapability (Lio/modelcontextprotocol/kotlin/sdk/Method;)V
68+
public fun assertRequestHandlerCapability (Lio/modelcontextprotocol/kotlin/sdk/Method;)V
69+
public final fun callTool (Lio/modelcontextprotocol/kotlin/sdk/CallToolRequest;ZLio/modelcontextprotocol/kotlin/sdk/shared/RequestOptions;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
70+
public final fun callTool (Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;ZLio/modelcontextprotocol/kotlin/sdk/shared/RequestOptions;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
71+
public static synthetic fun callTool$default (Lio/modelcontextprotocol/kotlin/sdk/client/McpClient;Lio/modelcontextprotocol/kotlin/sdk/CallToolRequest;ZLio/modelcontextprotocol/kotlin/sdk/shared/RequestOptions;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
72+
public static synthetic fun callTool$default (Lio/modelcontextprotocol/kotlin/sdk/client/McpClient;Ljava/lang/String;Ljava/util/Map;Ljava/util/Map;ZLio/modelcontextprotocol/kotlin/sdk/shared/RequestOptions;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
73+
public final fun complete (Lio/modelcontextprotocol/kotlin/sdk/CompleteRequest;Lio/modelcontextprotocol/kotlin/sdk/shared/RequestOptions;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
74+
public static synthetic fun complete$default (Lio/modelcontextprotocol/kotlin/sdk/client/McpClient;Lio/modelcontextprotocol/kotlin/sdk/CompleteRequest;Lio/modelcontextprotocol/kotlin/sdk/shared/RequestOptions;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
75+
public fun connect (Lio/modelcontextprotocol/kotlin/sdk/shared/Transport;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
76+
public final fun getPrompt (Lio/modelcontextprotocol/kotlin/sdk/GetPromptRequest;Lio/modelcontextprotocol/kotlin/sdk/shared/RequestOptions;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
77+
public static synthetic fun getPrompt$default (Lio/modelcontextprotocol/kotlin/sdk/client/McpClient;Lio/modelcontextprotocol/kotlin/sdk/GetPromptRequest;Lio/modelcontextprotocol/kotlin/sdk/shared/RequestOptions;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
78+
public final fun getServerCapabilities ()Lio/modelcontextprotocol/kotlin/sdk/ServerCapabilities;
79+
public final fun getServerInstructions ()Ljava/lang/String;
80+
public final fun getServerVersion ()Lio/modelcontextprotocol/kotlin/sdk/Implementation;
81+
public final fun listPrompts (Lio/modelcontextprotocol/kotlin/sdk/ListPromptsRequest;Lio/modelcontextprotocol/kotlin/sdk/shared/RequestOptions;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
82+
public static synthetic fun listPrompts$default (Lio/modelcontextprotocol/kotlin/sdk/client/McpClient;Lio/modelcontextprotocol/kotlin/sdk/ListPromptsRequest;Lio/modelcontextprotocol/kotlin/sdk/shared/RequestOptions;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
83+
public final fun listResourceTemplates (Lio/modelcontextprotocol/kotlin/sdk/ListResourceTemplatesRequest;Lio/modelcontextprotocol/kotlin/sdk/shared/RequestOptions;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
84+
public static synthetic fun listResourceTemplates$default (Lio/modelcontextprotocol/kotlin/sdk/client/McpClient;Lio/modelcontextprotocol/kotlin/sdk/ListResourceTemplatesRequest;Lio/modelcontextprotocol/kotlin/sdk/shared/RequestOptions;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
85+
public final fun listResources (Lio/modelcontextprotocol/kotlin/sdk/ListResourcesRequest;Lio/modelcontextprotocol/kotlin/sdk/shared/RequestOptions;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
86+
public static synthetic fun listResources$default (Lio/modelcontextprotocol/kotlin/sdk/client/McpClient;Lio/modelcontextprotocol/kotlin/sdk/ListResourcesRequest;Lio/modelcontextprotocol/kotlin/sdk/shared/RequestOptions;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
87+
public final fun listTools (Lio/modelcontextprotocol/kotlin/sdk/ListToolsRequest;Lio/modelcontextprotocol/kotlin/sdk/shared/RequestOptions;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
88+
public static synthetic fun listTools$default (Lio/modelcontextprotocol/kotlin/sdk/client/McpClient;Lio/modelcontextprotocol/kotlin/sdk/ListToolsRequest;Lio/modelcontextprotocol/kotlin/sdk/shared/RequestOptions;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
89+
public final fun ping (Lio/modelcontextprotocol/kotlin/sdk/shared/RequestOptions;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
90+
public static synthetic fun ping$default (Lio/modelcontextprotocol/kotlin/sdk/client/McpClient;Lio/modelcontextprotocol/kotlin/sdk/shared/RequestOptions;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
91+
public final fun readResource (Lio/modelcontextprotocol/kotlin/sdk/ReadResourceRequest;Lio/modelcontextprotocol/kotlin/sdk/shared/RequestOptions;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
92+
public static synthetic fun readResource$default (Lio/modelcontextprotocol/kotlin/sdk/client/McpClient;Lio/modelcontextprotocol/kotlin/sdk/ReadResourceRequest;Lio/modelcontextprotocol/kotlin/sdk/shared/RequestOptions;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
93+
public final fun removeRoot (Ljava/lang/String;)Z
94+
public final fun removeRoots (Ljava/util/List;)I
95+
public final fun sendRootsListChanged (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
96+
public final fun setElicitationHandler (Lkotlin/jvm/functions/Function1;)V
97+
public final fun setLoggingLevel (Lio/modelcontextprotocol/kotlin/sdk/LoggingLevel;Lio/modelcontextprotocol/kotlin/sdk/shared/RequestOptions;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
98+
public static synthetic fun setLoggingLevel$default (Lio/modelcontextprotocol/kotlin/sdk/client/McpClient;Lio/modelcontextprotocol/kotlin/sdk/LoggingLevel;Lio/modelcontextprotocol/kotlin/sdk/shared/RequestOptions;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
99+
public final fun subscribeResource (Lio/modelcontextprotocol/kotlin/sdk/SubscribeRequest;Lio/modelcontextprotocol/kotlin/sdk/shared/RequestOptions;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
100+
public static synthetic fun subscribeResource$default (Lio/modelcontextprotocol/kotlin/sdk/client/McpClient;Lio/modelcontextprotocol/kotlin/sdk/SubscribeRequest;Lio/modelcontextprotocol/kotlin/sdk/shared/RequestOptions;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
101+
public final fun unsubscribeResource (Lio/modelcontextprotocol/kotlin/sdk/UnsubscribeRequest;Lio/modelcontextprotocol/kotlin/sdk/shared/RequestOptions;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
102+
public static synthetic fun unsubscribeResource$default (Lio/modelcontextprotocol/kotlin/sdk/client/McpClient;Lio/modelcontextprotocol/kotlin/sdk/UnsubscribeRequest;Lio/modelcontextprotocol/kotlin/sdk/shared/RequestOptions;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
103+
}
104+
60105
public final class io/modelcontextprotocol/kotlin/sdk/client/SseClientTransport : io/modelcontextprotocol/kotlin/sdk/shared/AbstractTransport {
61106
public synthetic fun <init> (Lio/ktor/client/HttpClient;Ljava/lang/String;Lkotlin/time/Duration;Lkotlin/jvm/functions/Function1;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
62107
public synthetic fun <init> (Lio/ktor/client/HttpClient;Ljava/lang/String;Lkotlin/time/Duration;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/internal/DefaultConstructorMarker;)V

kotlin-sdk-client/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/client/KtorClient.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,15 @@ public fun HttpClient.mcpSseTransport(
2727
* @param urlString Optional URL of the MCP server.
2828
* @param reconnectionTime Optional duration to wait before attempting to reconnect.
2929
* @param requestBuilder Optional lambda to configure the HTTP request.
30-
* @return A connected [Client] ready for MCP communication.
30+
* @return A connected [McpClient] ready for MCP communication.
3131
*/
3232
public suspend fun HttpClient.mcpSse(
3333
urlString: String? = null,
3434
reconnectionTime: Duration? = null,
3535
requestBuilder: HttpRequestBuilder.() -> Unit = {},
36-
): Client {
36+
): McpClient {
3737
val transport = mcpSseTransport(urlString, reconnectionTime, requestBuilder)
38-
val client = Client(
38+
val client = McpClient(
3939
Implementation(
4040
name = IMPLEMENTATION_NAME,
4141
version = LIB_VERSION,
Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,9 @@ import kotlin.coroutines.cancellation.CancellationException
6262

6363
private val logger = KotlinLogging.logger {}
6464

65+
@Deprecated("Use McpClient", ReplaceWith("McpClient"), DeprecationLevel.WARNING)
66+
public typealias Client = McpClient
67+
6568
/**
6669
* Options for configuring the MCP client.
6770
*
@@ -84,7 +87,7 @@ public class ClientOptions(
8487
* @param clientInfo Information about the client implementation (name, version).
8588
* @param options Configuration options for this client.
8689
*/
87-
public open class Client(private val clientInfo: Implementation, options: ClientOptions = ClientOptions()) :
90+
public open class McpClient(private val clientInfo: Implementation, options: ClientOptions = ClientOptions()) :
8891
Protocol(options) {
8992

9093
/**

kotlin-sdk-client/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/client/StreamableHttpMcpKtorClientExtensions.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,15 @@ public fun HttpClient.mcpStreamableHttpTransport(
2828
* @param url URL of the MCP server.
2929
* @param reconnectionTime Optional duration to wait before attempting to reconnect.
3030
* @param requestBuilder Optional lambda to configure the HTTP request.
31-
* @return A connected [Client] ready for MCP communication.
31+
* @return A connected [McpClient] ready for MCP communication.
3232
*/
3333
public suspend fun HttpClient.mcpStreamableHttp(
3434
url: String,
3535
reconnectionTime: Duration? = null,
3636
requestBuilder: HttpRequestBuilder.() -> Unit = {},
37-
): Client {
37+
): McpClient {
3838
val transport = mcpStreamableHttpTransport(url, reconnectionTime, requestBuilder)
39-
val client = Client(Implementation(name = IMPLEMENTATION_NAME, version = LIB_VERSION))
39+
val client = McpClient(Implementation(name = IMPLEMENTATION_NAME, version = LIB_VERSION))
4040
client.connect(transport)
4141
return client
4242
}

kotlin-sdk-client/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/client/WebSocketMcpKtorClientExtensions.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,14 @@ public fun HttpClient.mcpWebSocketTransport(
2626
*
2727
* @param urlString Optional URL of the MCP server.
2828
* @param requestBuilder Optional lambda to configure the HTTP request.
29-
* @return A connected [Client] ready for MCP communication.
29+
* @return A connected [McpClient] ready for MCP communication.
3030
*/
3131
public suspend fun HttpClient.mcpWebSocket(
3232
urlString: String? = null,
3333
requestBuilder: HttpRequestBuilder.() -> Unit = {},
34-
): Client {
34+
): McpClient {
3535
val transport = mcpWebSocketTransport(urlString, requestBuilder)
36-
val client = Client(
36+
val client = McpClient(
3737
Implementation(
3838
name = IMPLEMENTATION_NAME,
3939
version = LIB_VERSION,

kotlin-sdk-client/src/commonTest/kotlin/io/modelcontextprotocol/kotlin/sdk/client/ClientMetaParameterTest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,14 @@ import kotlin.test.assertTrue
2525
*/
2626
class ClientMetaParameterTest {
2727

28-
private lateinit var client: Client
28+
private lateinit var client: McpClient
2929
private lateinit var mockTransport: MockTransport
3030
private val clientInfo = Implementation("test-client", "1.0.0")
3131

3232
@BeforeTest
3333
fun setup() = runTest {
3434
mockTransport = MockTransport()
35-
client = Client(clientInfo = clientInfo)
35+
client = McpClient(clientInfo = clientInfo)
3636
mockTransport.setupInitializationResponse()
3737
client.connect(mockTransport)
3838
}

kotlin-sdk-client/src/commonTest/kotlin/io/modelcontextprotocol/kotlin/sdk/client/StreamableHttpClientTransportTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -397,7 +397,7 @@ class StreamableHttpClientTransportTest {
397397
)
398398
}
399399

400-
val client = Client(
400+
val client = McpClient(
401401
clientInfo = Implementation(
402402
name = "test-client",
403403
version = "1.0",

kotlin-sdk-client/src/jvmTest/kotlin/io/modelcontextprotocol/kotlin/sdk/client/AbstractStreamableHttpClientTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ internal abstract class AbstractStreamableHttpClientTest {
1919
mockMcp.checkForUnmatchedRequests()
2020
}
2121

22-
protected suspend fun connect(client: Client) {
22+
protected suspend fun connect(client: McpClient) {
2323
client.connect(
2424
StreamableHttpClientTransport(
2525
url = mockMcp.url,

kotlin-sdk-client/src/jvmTest/kotlin/io/modelcontextprotocol/kotlin/sdk/client/StreamableHttpClientTest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ internal class StreamableHttpClientTest : AbstractStreamableHttpClientTest() {
3434

3535
@Test
3636
fun `test streamableHttpClient`() = runBlocking {
37-
val client = Client(
37+
val client = McpClient(
3838
clientInfo = Implementation(
3939
name = "client1",
4040
version = "1.0.0",
@@ -173,7 +173,7 @@ internal class StreamableHttpClientTest : AbstractStreamableHttpClientTest() {
173173
private suspend fun checkSupportNonStreamingResponse(contentType: ContentType, statusCode: HttpStatusCode) {
174174
val sessionId = "SID_${Uuid.random().toHexString()}"
175175
val clientName = "client-${Uuid.random().toHexString()}"
176-
val client = Client(
176+
val client = McpClient(
177177
clientInfo = Implementation(name = clientName, version = "1.0.0"),
178178
options = ClientOptions(
179179
capabilities = ClientCapabilities(),

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

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,41 @@ public final class io/modelcontextprotocol/kotlin/sdk/server/KtorServerKt {
55
public static final fun mcp (Lio/ktor/server/routing/Routing;Lkotlin/jvm/functions/Function1;)V
66
}
77

8+
public class io/modelcontextprotocol/kotlin/sdk/server/McpServer {
9+
public fun <init> (Lio/modelcontextprotocol/kotlin/sdk/Implementation;Lio/modelcontextprotocol/kotlin/sdk/server/ServerOptions;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V
10+
public synthetic fun <init> (Lio/modelcontextprotocol/kotlin/sdk/Implementation;Lio/modelcontextprotocol/kotlin/sdk/server/ServerOptions;Ljava/lang/String;Lkotlin/jvm/functions/Function1;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
11+
public fun <init> (Lio/modelcontextprotocol/kotlin/sdk/Implementation;Lio/modelcontextprotocol/kotlin/sdk/server/ServerOptions;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function1;)V
12+
public synthetic fun <init> (Lio/modelcontextprotocol/kotlin/sdk/Implementation;Lio/modelcontextprotocol/kotlin/sdk/server/ServerOptions;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function1;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
13+
public final fun addPrompt (Lio/modelcontextprotocol/kotlin/sdk/Prompt;Lkotlin/jvm/functions/Function2;)V
14+
public final fun addPrompt (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lkotlin/jvm/functions/Function2;)V
15+
public static synthetic fun addPrompt$default (Lio/modelcontextprotocol/kotlin/sdk/server/McpServer;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)V
16+
public final fun addPrompts (Ljava/util/List;)V
17+
public final fun addResource (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function2;)V
18+
public static synthetic fun addResource$default (Lio/modelcontextprotocol/kotlin/sdk/server/McpServer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)V
19+
public final fun addResources (Ljava/util/List;)V
20+
public final fun addTool (Lio/modelcontextprotocol/kotlin/sdk/Tool;Lkotlin/jvm/functions/Function2;)V
21+
public final fun addTool (Ljava/lang/String;Ljava/lang/String;Lio/modelcontextprotocol/kotlin/sdk/Tool$Input;Ljava/lang/String;Lio/modelcontextprotocol/kotlin/sdk/Tool$Output;Lio/modelcontextprotocol/kotlin/sdk/ToolAnnotations;Lkotlin/jvm/functions/Function2;)V
22+
public static synthetic fun addTool$default (Lio/modelcontextprotocol/kotlin/sdk/server/McpServer;Ljava/lang/String;Ljava/lang/String;Lio/modelcontextprotocol/kotlin/sdk/Tool$Input;Ljava/lang/String;Lio/modelcontextprotocol/kotlin/sdk/Tool$Output;Lio/modelcontextprotocol/kotlin/sdk/ToolAnnotations;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)V
23+
public final fun addTools (Ljava/util/List;)V
24+
public final fun close (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
25+
public final fun connect (Lio/modelcontextprotocol/kotlin/sdk/shared/Transport;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
26+
protected final fun getInstructionsProvider ()Lkotlin/jvm/functions/Function0;
27+
protected final fun getOptions ()Lio/modelcontextprotocol/kotlin/sdk/server/ServerOptions;
28+
public final fun getPrompts ()Ljava/util/Map;
29+
public final fun getResources ()Ljava/util/Map;
30+
protected final fun getServerInfo ()Lio/modelcontextprotocol/kotlin/sdk/Implementation;
31+
public final fun getTools ()Ljava/util/Map;
32+
public final fun onClose (Lkotlin/jvm/functions/Function0;)V
33+
public final fun onConnect (Lkotlin/jvm/functions/Function0;)V
34+
public final fun onInitialized (Lkotlin/jvm/functions/Function0;)V
35+
public final fun removePrompt (Ljava/lang/String;)Z
36+
public final fun removePrompts (Ljava/util/List;)I
37+
public final fun removeResource (Ljava/lang/String;)Z
38+
public final fun removeResources (Ljava/util/List;)I
39+
public final fun removeTool (Ljava/lang/String;)Z
40+
public final fun removeTools (Ljava/util/List;)I
41+
}
42+
843
public final class io/modelcontextprotocol/kotlin/sdk/server/RegisteredPrompt {
944
public fun <init> (Lio/modelcontextprotocol/kotlin/sdk/Prompt;Lkotlin/jvm/functions/Function2;)V
1045
public final fun component1 ()Lio/modelcontextprotocol/kotlin/sdk/Prompt;

0 commit comments

Comments
 (0)