pub struct ClientCapabilities {
pub roots: Option<RootsCapability>,
pub sampling: Option<SamplingCapability>,
pub elicitation: Option<ElicitationCapability>,
pub tasks: Option<TasksCapability>,
pub experimental: Option<Value>,
}Expand description
Client capabilities advertised during initialization.
Fields§
§roots: Option<RootsCapability>Roots (file system access) capabilities.
sampling: Option<SamplingCapability>Sampling capabilities.
elicitation: Option<ElicitationCapability>Elicitation capabilities.
tasks: Option<TasksCapability>Task capabilities (2025-11-25): which client-handled requests accept task augmentation.
experimental: Option<Value>Experimental capabilities.
Implementations§
Source§impl ClientCapabilities
impl ClientCapabilities
Sourcepub fn with_roots(self) -> Self
pub fn with_roots(self) -> Self
Enable roots support.
Sourcepub const fn with_roots_and_changes(self) -> Self
pub const fn with_roots_and_changes(self) -> Self
Enable roots support with change notifications.
Sourcepub fn with_sampling(self) -> Self
pub fn with_sampling(self) -> Self
Enable sampling support.
Not const: SamplingCapability now holds Option<serde_json::Value>
sub-capabilities, whose destructor is not const-evaluable.
Sourcepub fn with_sampling_tools(self) -> Self
pub fn with_sampling_tools(self) -> Self
Enable sampling with tool-use support (declares sampling.tools).
Sourcepub fn with_sampling_context(self) -> Self
pub fn with_sampling_context(self) -> Self
Enable sampling with context-inclusion support (declares
sampling.context).
Sourcepub fn with_elicitation(self) -> Self
pub fn with_elicitation(self) -> Self
Enable elicitation support (form mode).
This declares elicitation: {}, which is form-capable (the 2025-06-18
behaviour). Use with_url_elicitation to
additionally declare URL-mode support.
Sourcepub fn with_form_elicitation(self) -> Self
pub fn with_form_elicitation(self) -> Self
Declare form-mode elicitation support explicitly (elicitation.form).
Sourcepub fn with_url_elicitation(self) -> Self
pub fn with_url_elicitation(self) -> Self
Declare URL-mode elicitation support (elicitation.url).
Sourcepub fn with_tasks(self) -> Self
pub fn with_tasks(self) -> Self
Enable task support (tasks/list and tasks/cancel).
This declares the base task operations only; declare which requests
accept task augmentation via
with_task_sampling.
Sourcepub fn with_task_sampling(self) -> Self
pub fn with_task_sampling(self) -> Self
Declare task-augmented sampling/createMessage support
(tasks.requests.sampling.createMessage).
Declare plain sampling support separately via
with_sampling.
Sourcepub fn has_task_sampling(&self) -> bool
pub fn has_task_sampling(&self) -> bool
Check if task-augmented sampling/createMessage is declared.
Sourcepub fn has_form_elicitation(&self) -> bool
pub fn has_form_elicitation(&self) -> bool
Check if form-mode elicitation is supported.
True when elicitation.form is declared, or when elicitation is present
but empty ({}), which is form-capable for backwards compatibility.
Sourcepub fn has_url_elicitation(&self) -> bool
pub fn has_url_elicitation(&self) -> bool
Check if URL-mode elicitation is supported (elicitation.url declared).
Sourcepub const fn has_sampling(&self) -> bool
pub const fn has_sampling(&self) -> bool
Check if sampling is supported.
Sourcepub const fn has_sampling_tools(&self) -> bool
pub const fn has_sampling_tools(&self) -> bool
Whether the client declared tool-use support in sampling
(sampling.tools).
Sourcepub const fn has_sampling_context(&self) -> bool
pub const fn has_sampling_context(&self) -> bool
Whether the client declared context-inclusion support in sampling
(sampling.context).
Sourcepub const fn has_elicitation(&self) -> bool
pub const fn has_elicitation(&self) -> bool
Check if elicitation is supported.
Sourcepub fn with_extensions(self, registry: ExtensionRegistry) -> Self
pub fn with_extensions(self, registry: ExtensionRegistry) -> Self
Set extensions from an extension registry.
This populates the experimental field with extension declarations.
Sourcepub fn has_extension(&self, name: &str) -> bool
pub fn has_extension(&self, name: &str) -> bool
Check if a specific extension is supported.
Sourcepub fn extensions(&self) -> Option<ExtensionRegistry>
pub fn extensions(&self) -> Option<ExtensionRegistry>
Get the extension registry from capabilities.
Trait Implementations§
Source§impl Clone for ClientCapabilities
impl Clone for ClientCapabilities
Source§fn clone(&self) -> ClientCapabilities
fn clone(&self) -> ClientCapabilities
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ClientCapabilities
impl Debug for ClientCapabilities
Source§impl Default for ClientCapabilities
impl Default for ClientCapabilities
Source§fn default() -> ClientCapabilities
fn default() -> ClientCapabilities
Source§impl<'de> Deserialize<'de> for ClientCapabilities
impl<'de> Deserialize<'de> for ClientCapabilities
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for ClientCapabilities
impl RefUnwindSafe for ClientCapabilities
impl Send for ClientCapabilities
impl Sync for ClientCapabilities
impl Unpin for ClientCapabilities
impl UnsafeUnpin for ClientCapabilities
impl UnwindSafe for ClientCapabilities
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more