ClientCapabilities

Struct ClientCapabilities 

Source
pub struct ClientCapabilities {
    pub tools: bool,
    pub prompts: bool,
    pub resources: bool,
    pub sampling: bool,
}
Expand description

Client capability configuration

Defines the capabilities that this client supports when connecting to MCP servers. These capabilities are sent during the initialization handshake to negotiate which features will be available during the session.

§Examples

use turbomcp_client::ClientCapabilities;

let capabilities = ClientCapabilities {
    tools: true,
    prompts: true,
    resources: true,
    sampling: false,
};

Fields§

§tools: bool

Whether the client supports tool calling

§prompts: bool

Whether the client supports prompts

§resources: bool

Whether the client supports resources

§sampling: bool

Whether the client supports sampling

Implementations§

Source§

impl ClientCapabilities

Source

pub fn all() -> Self

All capabilities enabled (tools, prompts, resources, sampling)

This is the most comprehensive configuration, enabling full MCP protocol support.

§Example
use turbomcp_client::ClientCapabilities;

let capabilities = ClientCapabilities::all();
assert!(capabilities.tools);
assert!(capabilities.prompts);
assert!(capabilities.resources);
assert!(capabilities.sampling);
Source

pub fn core() -> Self

Core capabilities without sampling (tools, prompts, resources)

This is the recommended default for most applications. It enables all standard MCP features except server-initiated sampling requests.

§Example
use turbomcp_client::ClientCapabilities;

let capabilities = ClientCapabilities::core();
assert!(capabilities.tools);
assert!(capabilities.prompts);
assert!(capabilities.resources);
assert!(!capabilities.sampling);
Source

pub fn minimal() -> Self

Minimal capabilities (tools only)

Use this for simple tool-calling clients that don’t need prompts, resources, or sampling support.

§Example
use turbomcp_client::ClientCapabilities;

let capabilities = ClientCapabilities::minimal();
assert!(capabilities.tools);
assert!(!capabilities.prompts);
assert!(!capabilities.resources);
assert!(!capabilities.sampling);
Source

pub fn only_tools() -> Self

Only tools enabled

Same as minimal(), provided for clarity.

Source

pub fn only_resources() -> Self

Only resources enabled

Use this for resource-focused clients that don’t need tools or prompts.

§Example
use turbomcp_client::ClientCapabilities;

let capabilities = ClientCapabilities::only_resources();
assert!(!capabilities.tools);
assert!(!capabilities.prompts);
assert!(capabilities.resources);
Source

pub fn only_prompts() -> Self

Only prompts enabled

Use this for prompt-focused clients that don’t need tools or resources.

§Example
use turbomcp_client::ClientCapabilities;

let capabilities = ClientCapabilities::only_prompts();
assert!(!capabilities.tools);
assert!(capabilities.prompts);
assert!(!capabilities.resources);
Source

pub fn only_sampling() -> Self

Only sampling enabled

Use this for clients that exclusively handle server-initiated sampling requests.

Trait Implementations§

Source§

impl Clone for ClientCapabilities

Source§

fn clone(&self) -> ClientCapabilities

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ClientCapabilities

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for ClientCapabilities

Source§

fn default() -> ClientCapabilities

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more