pub struct ToolAnnotations {
pub title: Option<String>,
pub read_only_hint: Option<bool>,
pub destructive_hint: Option<bool>,
pub idempotent_hint: Option<bool>,
pub open_world_hint: Option<bool>,
}
Expand description
Tool-specific annotations (2025-06-18 Schema Compliance)
NOTE: all properties in ToolAnnotations are hints.
They are not guaranteed to provide a faithful description of
tool behavior (including descriptive properties like title
).
Clients should never make tool use decisions based on ToolAnnotations received from untrusted servers.
Fields§
§title: Option<String>
A human-readable title for the tool
read_only_hint: Option<bool>
If true, the tool does not modify its environment Default: false
destructive_hint: Option<bool>
If true, the tool may perform destructive updates to its environment
If false, the tool performs only additive updates
(This property is meaningful only when readOnlyHint == false
)
Default: true
idempotent_hint: Option<bool>
If true, calling the tool repeatedly with the same arguments
will have no additional effect on its environment
(This property is meaningful only when readOnlyHint == false
)
Default: false
open_world_hint: Option<bool>
If true, this tool may interact with an “open world” of external entities If false, the tool’s domain of interaction is closed For example, the world of a web search tool is open, whereas that of a memory tool is not Default: true
Implementations§
Source§impl ToolAnnotations
impl ToolAnnotations
Sourcepub fn with_title<S: Into<String>>(self, title: S) -> Self
pub fn with_title<S: Into<String>>(self, title: S) -> Self
Set the human-readable title for the tool
Sourcepub fn destructive(self) -> Self
pub fn destructive(self) -> Self
Mark tool as destructive (may perform destructive updates)
Sourcepub fn idempotent(self) -> Self
pub fn idempotent(self) -> Self
Mark tool as idempotent (same input produces same result)
Sourcepub fn open_world(self) -> Self
pub fn open_world(self) -> Self
Mark tool as interacting with open world of external entities
Sourcepub fn closed_world(self) -> Self
pub fn closed_world(self) -> Self
Mark tool as interacting with closed world (limited domain)
Source§impl ToolAnnotations
impl ToolAnnotations
Sourcepub fn from_enhanced_metadata(
metadata: &EnhancedToolMetadata,
title_override: Option<String>,
) -> Self
pub fn from_enhanced_metadata( metadata: &EnhancedToolMetadata, title_override: Option<String>, ) -> Self
Create ToolAnnotations from enhanced metadata with explicit title override
Sourcepub fn from_behavior_hints(hints: &ToolBehaviorHints) -> Self
pub fn from_behavior_hints(hints: &ToolBehaviorHints) -> Self
Create minimal ToolAnnotations from behavior hints
Trait Implementations§
Source§impl Clone for ToolAnnotations
impl Clone for ToolAnnotations
Source§fn clone(&self) -> ToolAnnotations
fn clone(&self) -> ToolAnnotations
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more