ClientCapabilities

data class ClientCapabilities(val sampling: ClientCapabilities.Sampling? = null, val roots: ClientCapabilities.Roots? = null, val elicitation: ClientCapabilities.Elicitation? = null, val tasks: ClientCapabilities.Tasks? = null, val experimental: JsonObject? = null, val extensions: Map<String, JsonObject>? = null)(source)

Capabilities that a client may support.

Known capabilities are defined here, but this is not a closed set: any client can define its own additional capabilities through the experimental field.

The presence of a capability object (non-null value) indicates that the client supports that capability.

Constructors

Link copied to clipboard
constructor(sampling: ClientCapabilities.Sampling? = null, roots: ClientCapabilities.Roots? = null, elicitation: ClientCapabilities.Elicitation? = null, tasks: ClientCapabilities.Tasks? = null, experimental: JsonObject? = null, extensions: Map<String, JsonObject>? = null)
constructor(sampling: JsonObject?, roots: ClientCapabilities.Roots? = null, elicitation: JsonObject? = null, experimental: JsonObject? = null, extensions: Map<String, JsonObject>? = null)

Source-compatibility constructor retaining the older sampling: JsonObject? / elicitation: JsonObject? shapes. Any non-null sampling is converted to an empty Sampling, and any non-null elicitation is converted to an empty Elicitation (sub-capabilities cannot be recovered from the old opaque JsonObject).

Types

Link copied to clipboard
object Companion
Link copied to clipboard
data class Elicitation(val form: JsonObject? = null, val url: JsonObject? = null)

Sub-capabilities for elicitation.

Link copied to clipboard
data class Roots(val listChanged: Boolean? = null)

Indicates that the client supports listing roots.

Link copied to clipboard
data class Sampling(val context: JsonObject? = null, val tools: JsonObject? = null)

sub-capabilities for sampling.

Link copied to clipboard
data class Tasks(val list: JsonObject? = null, val cancel: JsonObject? = null, val requests: ClientCapabilities.Tasks.Requests? = null)

Sub-capabilities for tasks (client side).

Properties

Link copied to clipboard

Present if the client supports elicitation from the server. Use ClientCapabilities.Elicitation to configure form/url mode sub-capabilities.

Link copied to clipboard

Experimental, non-standard capabilities that the client supports. Keys are capability names, values are capability-specific configuration objects.

Link copied to clipboard

Optional extensions that the client supports. Keys are extension identifiers (e.g., "io.modelcontextprotocol/ui"), values are extension-specific settings objects.

Link copied to clipboard

Present if the client supports listing roots.

Link copied to clipboard

Present if the client supports sampling from an LLM. Use ClientCapabilities.Sampling to configure tools/context sub-capabilities.

Link copied to clipboard

Present if the client supports task-augmented requests, listing, or cancellation.