pub struct Tool {
pub name: String,
pub title: Option<String>,
pub description: Option<String>,
pub input_schema: ToolSchema,
pub output_schema: Option<ToolSchema>,
pub annotations: Option<ToolAnnotations>,
pub meta: Option<HashMap<String, Value>>,
}Expand description
Core MCP protocol types, errors, and specification compliance Tool definition
Fields§
§name: StringThe tool’s name - used as identifier when calling
title: Option<String>Intended for UI and end-user contexts — optimized to be human-readable and easily understood, even by those unfamiliar with domain-specific terminology.
description: Option<String>Optional human-readable description
input_schema: ToolSchemaJSON Schema for input parameters
output_schema: Option<ToolSchema>Optional JSON Schema for output results
annotations: Option<ToolAnnotations>Optional annotations for client hints
meta: Option<HashMap<String, Value>>Implementations§
Source§impl Tool
impl Tool
pub fn new(name: impl Into<String>, input_schema: ToolSchema) -> Tool
pub fn with_title(self, title: impl Into<String>) -> Tool
pub fn with_description(self, description: impl Into<String>) -> Tool
pub fn with_output_schema(self, output_schema: ToolSchema) -> Tool
pub fn with_annotations(self, annotations: ToolAnnotations) -> Tool
pub fn with_meta(self, meta: HashMap<String, Value>) -> Tool
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Tool
impl<'de> Deserialize<'de> for Tool
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<Tool, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<Tool, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl HasAnnotations for Tool
impl HasAnnotations for Tool
fn annotations(&self) -> Option<&ToolAnnotations>
Source§impl HasBaseMetadata for Tool
impl HasBaseMetadata for Tool
Source§impl HasDescription for Tool
impl HasDescription for Tool
fn description(&self) -> Option<&str>
Source§impl HasInputSchema for Tool
impl HasInputSchema for Tool
fn input_schema(&self) -> &ToolSchema
Source§impl HasOutputSchema for Tool
impl HasOutputSchema for Tool
fn output_schema(&self) -> Option<&ToolSchema>
Source§impl Serialize for Tool
impl Serialize for Tool
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
Auto Trait Implementations§
impl Freeze for Tool
impl RefUnwindSafe for Tool
impl Send for Tool
impl Sync for Tool
impl Unpin for Tool
impl UnwindSafe for Tool
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreCreates a shared type from an unshared type.