Skip to content

Commit 675cc73

Browse files
authored
Add support for elicitation (#138)
* feat(client): add support for elicitation Fixes #137 * feat(client): add a convenience method to set the elicitation handler
1 parent 609b52c commit 675cc73

File tree

5 files changed

+320
-5
lines changed

5 files changed

+320
-5
lines changed

api/kotlin-sdk.api

Lines changed: 121 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -167,14 +167,16 @@ public final class io/modelcontextprotocol/kotlin/sdk/CancelledNotification$Comp
167167
public final class io/modelcontextprotocol/kotlin/sdk/ClientCapabilities {
168168
public static final field Companion Lio/modelcontextprotocol/kotlin/sdk/ClientCapabilities$Companion;
169169
public fun <init> ()V
170-
public fun <init> (Lkotlinx/serialization/json/JsonObject;Lkotlinx/serialization/json/JsonObject;Lio/modelcontextprotocol/kotlin/sdk/ClientCapabilities$Roots;)V
171-
public synthetic fun <init> (Lkotlinx/serialization/json/JsonObject;Lkotlinx/serialization/json/JsonObject;Lio/modelcontextprotocol/kotlin/sdk/ClientCapabilities$Roots;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
170+
public fun <init> (Lkotlinx/serialization/json/JsonObject;Lkotlinx/serialization/json/JsonObject;Lio/modelcontextprotocol/kotlin/sdk/ClientCapabilities$Roots;Lkotlinx/serialization/json/JsonObject;)V
171+
public synthetic fun <init> (Lkotlinx/serialization/json/JsonObject;Lkotlinx/serialization/json/JsonObject;Lio/modelcontextprotocol/kotlin/sdk/ClientCapabilities$Roots;Lkotlinx/serialization/json/JsonObject;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
172172
public final fun component1 ()Lkotlinx/serialization/json/JsonObject;
173173
public final fun component2 ()Lkotlinx/serialization/json/JsonObject;
174174
public final fun component3 ()Lio/modelcontextprotocol/kotlin/sdk/ClientCapabilities$Roots;
175-
public final fun copy (Lkotlinx/serialization/json/JsonObject;Lkotlinx/serialization/json/JsonObject;Lio/modelcontextprotocol/kotlin/sdk/ClientCapabilities$Roots;)Lio/modelcontextprotocol/kotlin/sdk/ClientCapabilities;
176-
public static synthetic fun copy$default (Lio/modelcontextprotocol/kotlin/sdk/ClientCapabilities;Lkotlinx/serialization/json/JsonObject;Lkotlinx/serialization/json/JsonObject;Lio/modelcontextprotocol/kotlin/sdk/ClientCapabilities$Roots;ILjava/lang/Object;)Lio/modelcontextprotocol/kotlin/sdk/ClientCapabilities;
175+
public final fun component4 ()Lkotlinx/serialization/json/JsonObject;
176+
public final fun copy (Lkotlinx/serialization/json/JsonObject;Lkotlinx/serialization/json/JsonObject;Lio/modelcontextprotocol/kotlin/sdk/ClientCapabilities$Roots;Lkotlinx/serialization/json/JsonObject;)Lio/modelcontextprotocol/kotlin/sdk/ClientCapabilities;
177+
public static synthetic fun copy$default (Lio/modelcontextprotocol/kotlin/sdk/ClientCapabilities;Lkotlinx/serialization/json/JsonObject;Lkotlinx/serialization/json/JsonObject;Lio/modelcontextprotocol/kotlin/sdk/ClientCapabilities$Roots;Lkotlinx/serialization/json/JsonObject;ILjava/lang/Object;)Lio/modelcontextprotocol/kotlin/sdk/ClientCapabilities;
177178
public fun equals (Ljava/lang/Object;)Z
179+
public final fun getElicitation ()Lkotlinx/serialization/json/JsonObject;
178180
public final fun getExperimental ()Lkotlinx/serialization/json/JsonObject;
179181
public final fun getRoots ()Lio/modelcontextprotocol/kotlin/sdk/ClientCapabilities$Roots;
180182
public final fun getSampling ()Lkotlinx/serialization/json/JsonObject;
@@ -383,6 +385,117 @@ public final class io/modelcontextprotocol/kotlin/sdk/CompleteResult$Completion$
383385
public final fun serializer ()Lkotlinx/serialization/KSerializer;
384386
}
385387

388+
public final class io/modelcontextprotocol/kotlin/sdk/CreateElicitationRequest : io/modelcontextprotocol/kotlin/sdk/ServerRequest, io/modelcontextprotocol/kotlin/sdk/WithMeta {
389+
public static final field Companion Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationRequest$Companion;
390+
public fun <init> (Ljava/lang/String;Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationRequest$RequestedSchema;Lkotlinx/serialization/json/JsonObject;)V
391+
public synthetic fun <init> (Ljava/lang/String;Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationRequest$RequestedSchema;Lkotlinx/serialization/json/JsonObject;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
392+
public final fun component1 ()Ljava/lang/String;
393+
public final fun component2 ()Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationRequest$RequestedSchema;
394+
public final fun component3 ()Lkotlinx/serialization/json/JsonObject;
395+
public final fun copy (Ljava/lang/String;Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationRequest$RequestedSchema;Lkotlinx/serialization/json/JsonObject;)Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationRequest;
396+
public static synthetic fun copy$default (Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationRequest;Ljava/lang/String;Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationRequest$RequestedSchema;Lkotlinx/serialization/json/JsonObject;ILjava/lang/Object;)Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationRequest;
397+
public fun equals (Ljava/lang/Object;)Z
398+
public final fun getMessage ()Ljava/lang/String;
399+
public fun getMethod ()Lio/modelcontextprotocol/kotlin/sdk/Method;
400+
public final fun getRequestedSchema ()Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationRequest$RequestedSchema;
401+
public fun get_meta ()Lkotlinx/serialization/json/JsonObject;
402+
public fun hashCode ()I
403+
public fun toString ()Ljava/lang/String;
404+
}
405+
406+
public final synthetic class io/modelcontextprotocol/kotlin/sdk/CreateElicitationRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
407+
public static final field INSTANCE Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationRequest$$serializer;
408+
public final fun childSerializers ()[Lkotlinx/serialization/KSerializer;
409+
public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationRequest;
410+
public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
411+
public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
412+
public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationRequest;)V
413+
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
414+
public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer;
415+
}
416+
417+
public final class io/modelcontextprotocol/kotlin/sdk/CreateElicitationRequest$Companion {
418+
public final fun serializer ()Lkotlinx/serialization/KSerializer;
419+
}
420+
421+
public final class io/modelcontextprotocol/kotlin/sdk/CreateElicitationRequest$RequestedSchema {
422+
public static final field Companion Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationRequest$RequestedSchema$Companion;
423+
public fun <init> ()V
424+
public fun <init> (Lkotlinx/serialization/json/JsonObject;Ljava/util/List;)V
425+
public synthetic fun <init> (Lkotlinx/serialization/json/JsonObject;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
426+
public final fun component1 ()Lkotlinx/serialization/json/JsonObject;
427+
public final fun component2 ()Ljava/util/List;
428+
public final fun copy (Lkotlinx/serialization/json/JsonObject;Ljava/util/List;)Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationRequest$RequestedSchema;
429+
public static synthetic fun copy$default (Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationRequest$RequestedSchema;Lkotlinx/serialization/json/JsonObject;Ljava/util/List;ILjava/lang/Object;)Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationRequest$RequestedSchema;
430+
public fun equals (Ljava/lang/Object;)Z
431+
public final fun getProperties ()Lkotlinx/serialization/json/JsonObject;
432+
public final fun getRequired ()Ljava/util/List;
433+
public final fun getType ()Ljava/lang/String;
434+
public fun hashCode ()I
435+
public fun toString ()Ljava/lang/String;
436+
}
437+
438+
public final synthetic class io/modelcontextprotocol/kotlin/sdk/CreateElicitationRequest$RequestedSchema$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
439+
public static final field INSTANCE Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationRequest$RequestedSchema$$serializer;
440+
public final fun childSerializers ()[Lkotlinx/serialization/KSerializer;
441+
public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationRequest$RequestedSchema;
442+
public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
443+
public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
444+
public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationRequest$RequestedSchema;)V
445+
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
446+
public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer;
447+
}
448+
449+
public final class io/modelcontextprotocol/kotlin/sdk/CreateElicitationRequest$RequestedSchema$Companion {
450+
public final fun serializer ()Lkotlinx/serialization/KSerializer;
451+
}
452+
453+
public final class io/modelcontextprotocol/kotlin/sdk/CreateElicitationResult : io/modelcontextprotocol/kotlin/sdk/ClientResult {
454+
public static final field Companion Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationResult$Companion;
455+
public fun <init> (Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationResult$Action;Lkotlinx/serialization/json/JsonObject;Lkotlinx/serialization/json/JsonObject;)V
456+
public synthetic fun <init> (Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationResult$Action;Lkotlinx/serialization/json/JsonObject;Lkotlinx/serialization/json/JsonObject;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
457+
public final fun component1 ()Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationResult$Action;
458+
public final fun component2 ()Lkotlinx/serialization/json/JsonObject;
459+
public final fun component3 ()Lkotlinx/serialization/json/JsonObject;
460+
public final fun copy (Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationResult$Action;Lkotlinx/serialization/json/JsonObject;Lkotlinx/serialization/json/JsonObject;)Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationResult;
461+
public static synthetic fun copy$default (Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationResult;Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationResult$Action;Lkotlinx/serialization/json/JsonObject;Lkotlinx/serialization/json/JsonObject;ILjava/lang/Object;)Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationResult;
462+
public fun equals (Ljava/lang/Object;)Z
463+
public final fun getAction ()Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationResult$Action;
464+
public final fun getContent ()Lkotlinx/serialization/json/JsonObject;
465+
public fun get_meta ()Lkotlinx/serialization/json/JsonObject;
466+
public fun hashCode ()I
467+
public fun toString ()Ljava/lang/String;
468+
}
469+
470+
public final synthetic class io/modelcontextprotocol/kotlin/sdk/CreateElicitationResult$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
471+
public static final field INSTANCE Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationResult$$serializer;
472+
public final fun childSerializers ()[Lkotlinx/serialization/KSerializer;
473+
public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationResult;
474+
public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
475+
public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
476+
public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationResult;)V
477+
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
478+
public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer;
479+
}
480+
481+
public final class io/modelcontextprotocol/kotlin/sdk/CreateElicitationResult$Action : java/lang/Enum {
482+
public static final field Companion Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationResult$Action$Companion;
483+
public static final field accept Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationResult$Action;
484+
public static final field cancel Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationResult$Action;
485+
public static final field decline Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationResult$Action;
486+
public static fun getEntries ()Lkotlin/enums/EnumEntries;
487+
public static fun valueOf (Ljava/lang/String;)Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationResult$Action;
488+
public static fun values ()[Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationResult$Action;
489+
}
490+
491+
public final class io/modelcontextprotocol/kotlin/sdk/CreateElicitationResult$Action$Companion {
492+
public final fun serializer ()Lkotlinx/serialization/KSerializer;
493+
}
494+
495+
public final class io/modelcontextprotocol/kotlin/sdk/CreateElicitationResult$Companion {
496+
public final fun serializer ()Lkotlinx/serialization/KSerializer;
497+
}
498+
386499
public final class io/modelcontextprotocol/kotlin/sdk/CreateMessageRequest : io/modelcontextprotocol/kotlin/sdk/ServerRequest, io/modelcontextprotocol/kotlin/sdk/WithMeta {
387500
public static final field Companion Lio/modelcontextprotocol/kotlin/sdk/CreateMessageRequest$Companion;
388501
public fun <init> (Ljava/util/List;Ljava/lang/String;Lio/modelcontextprotocol/kotlin/sdk/CreateMessageRequest$IncludeContext;Ljava/lang/Double;ILjava/util/List;Lkotlinx/serialization/json/JsonObject;Lio/modelcontextprotocol/kotlin/sdk/ModelPreferences;Lkotlinx/serialization/json/JsonObject;)V
@@ -1381,6 +1494,7 @@ public final class io/modelcontextprotocol/kotlin/sdk/Method$Custom$Companion {
13811494
public final class io/modelcontextprotocol/kotlin/sdk/Method$Defined : java/lang/Enum, io/modelcontextprotocol/kotlin/sdk/Method {
13821495
public static final field Companion Lio/modelcontextprotocol/kotlin/sdk/Method$Defined$Companion;
13831496
public static final field CompletionComplete Lio/modelcontextprotocol/kotlin/sdk/Method$Defined;
1497+
public static final field ElicitationCreate Lio/modelcontextprotocol/kotlin/sdk/Method$Defined;
13841498
public static final field Initialize Lio/modelcontextprotocol/kotlin/sdk/Method$Defined;
13851499
public static final field LoggingSetLevel Lio/modelcontextprotocol/kotlin/sdk/Method$Defined;
13861500
public static final field NotificationsCancelled Lio/modelcontextprotocol/kotlin/sdk/Method$Defined;
@@ -2758,6 +2872,7 @@ public class io/modelcontextprotocol/kotlin/sdk/client/Client : io/modelcontextp
27582872
public final fun removeRoot (Ljava/lang/String;)Z
27592873
public final fun removeRoots (Ljava/util/List;)I
27602874
public final fun sendRootsListChanged (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
2875+
public final fun setElicitationHandler (Lkotlin/jvm/functions/Function1;)V
27612876
public final fun setLoggingLevel (Lio/modelcontextprotocol/kotlin/sdk/LoggingLevel;Lio/modelcontextprotocol/kotlin/sdk/shared/RequestOptions;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
27622877
public static synthetic fun setLoggingLevel$default (Lio/modelcontextprotocol/kotlin/sdk/client/Client;Lio/modelcontextprotocol/kotlin/sdk/LoggingLevel;Lio/modelcontextprotocol/kotlin/sdk/shared/RequestOptions;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
27632878
public final fun subscribeResource (Lio/modelcontextprotocol/kotlin/sdk/SubscribeRequest;Lio/modelcontextprotocol/kotlin/sdk/shared/RequestOptions;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
@@ -2868,6 +2983,8 @@ public class io/modelcontextprotocol/kotlin/sdk/server/Server : io/modelcontextp
28682983
protected fun assertCapabilityForMethod (Lio/modelcontextprotocol/kotlin/sdk/Method;)V
28692984
protected fun assertNotificationCapability (Lio/modelcontextprotocol/kotlin/sdk/Method;)V
28702985
public fun assertRequestHandlerCapability (Lio/modelcontextprotocol/kotlin/sdk/Method;)V
2986+
public final fun createElicitation (Ljava/lang/String;Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationRequest$RequestedSchema;Lio/modelcontextprotocol/kotlin/sdk/shared/RequestOptions;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
2987+
public static synthetic fun createElicitation$default (Lio/modelcontextprotocol/kotlin/sdk/server/Server;Ljava/lang/String;Lio/modelcontextprotocol/kotlin/sdk/CreateElicitationRequest$RequestedSchema;Lio/modelcontextprotocol/kotlin/sdk/shared/RequestOptions;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
28712988
public final fun createMessage (Lio/modelcontextprotocol/kotlin/sdk/CreateMessageRequest;Lio/modelcontextprotocol/kotlin/sdk/shared/RequestOptions;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
28722989
public static synthetic fun createMessage$default (Lio/modelcontextprotocol/kotlin/sdk/server/Server;Lio/modelcontextprotocol/kotlin/sdk/CreateMessageRequest;Lio/modelcontextprotocol/kotlin/sdk/shared/RequestOptions;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
28732990
public final fun getClientCapabilities ()Lio/modelcontextprotocol/kotlin/sdk/ClientCapabilities;

src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/client/Client.kt

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ import io.modelcontextprotocol.kotlin.sdk.ClientCapabilities
88
import io.modelcontextprotocol.kotlin.sdk.CompatibilityCallToolResult
99
import io.modelcontextprotocol.kotlin.sdk.CompleteRequest
1010
import io.modelcontextprotocol.kotlin.sdk.CompleteResult
11+
import io.modelcontextprotocol.kotlin.sdk.CreateElicitationRequest
12+
import io.modelcontextprotocol.kotlin.sdk.CreateElicitationResult
1113
import io.modelcontextprotocol.kotlin.sdk.EmptyRequestResult
1214
import io.modelcontextprotocol.kotlin.sdk.GetPromptRequest
1315
import io.modelcontextprotocol.kotlin.sdk.GetPromptResult
@@ -262,6 +264,14 @@ public open class Client(
262264
}
263265
}
264266

267+
Method.Defined.ElicitationCreate -> {
268+
if (capabilities.elicitation == null) {
269+
throw IllegalStateException(
270+
"Client does not support elicitation capability (required for $method)"
271+
)
272+
}
273+
}
274+
265275
Method.Defined.Ping -> {
266276
// No capability required
267277
}
@@ -571,6 +581,24 @@ public open class Client(
571581
notification(RootsListChangedNotification())
572582
}
573583

584+
/**
585+
* Sets the elicitation handler.
586+
*
587+
* @param handler The elicitation handler.
588+
* @throws IllegalStateException if the client does not support elicitation.
589+
*/
590+
public fun setElicitationHandler(handler: (CreateElicitationRequest) -> CreateElicitationResult) {
591+
if (capabilities.elicitation == null) {
592+
logger.error { "Failed to set elicitation handler: Client does not support elicitation" }
593+
throw IllegalStateException("Client does not support elicitation.")
594+
}
595+
logger.info { "Setting the elicitation handler" }
596+
597+
setRequestHandler<CreateElicitationRequest>(Method.Defined.ElicitationCreate) { request, _ ->
598+
handler(request)
599+
}
600+
}
601+
574602
// --- Internal Handlers ---
575603

576604
private suspend fun handleListRoots(): ListRootsResult {

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ import io.github.oshai.kotlinlogging.KotlinLogging
44
import io.modelcontextprotocol.kotlin.sdk.CallToolRequest
55
import io.modelcontextprotocol.kotlin.sdk.CallToolResult
66
import io.modelcontextprotocol.kotlin.sdk.ClientCapabilities
7+
import io.modelcontextprotocol.kotlin.sdk.CreateElicitationRequest
8+
import io.modelcontextprotocol.kotlin.sdk.CreateElicitationRequest.RequestedSchema
9+
import io.modelcontextprotocol.kotlin.sdk.CreateElicitationResult
710
import io.modelcontextprotocol.kotlin.sdk.CreateMessageRequest
811
import io.modelcontextprotocol.kotlin.sdk.CreateMessageResult
912
import io.modelcontextprotocol.kotlin.sdk.EmptyJsonObject
@@ -525,6 +528,15 @@ public open class Server(
525528
return request<ListRootsResult>(ListRootsRequest(params), options)
526529
}
527530

531+
public suspend fun createElicitation(
532+
message: String,
533+
requestedSchema: RequestedSchema,
534+
options: RequestOptions? = null
535+
): CreateElicitationResult {
536+
logger.debug { "Creating elicitation with message: $message" }
537+
return request(CreateElicitationRequest(message, requestedSchema), options)
538+
}
539+
528540
/**
529541
* Sends a logging message notification to the client.
530542
*
@@ -666,6 +678,12 @@ public open class Server(
666678
}
667679
}
668680

681+
"elicitation/create" -> {
682+
if (clientCapabilities?.elicitation == null) {
683+
throw IllegalStateException("Client does not support elicitation (required for ${method.value})")
684+
}
685+
}
686+
669687
"ping" -> {
670688
// No specific capability required
671689
}

0 commit comments

Comments
 (0)