pub struct ToolEntry {
pub name: String,
pub family: String,
pub loaded: bool,
pub callable_now: bool,
pub examples: Vec<ToolExample>,
}Expand description
v0.7.0 A3 — per-tool entry in the capabilities-v3 tools array.
loaded mirrors Profile::loads(name) — true when the active
profile would advertise this tool in tools/list.
callable_now is the AND of loaded with the
[mcp.allowlist] per-agent gate. When the allowlist is disabled
(no [mcp.allowlist] table or empty table), callable_now == loaded. When the allowlist is active and the requesting agent
has no entry granting the tool’s family, callable_now == false
even though loaded == true.
LLMs that cache the v3 manifest can use this to skip a doomed JSON-RPC call rather than discover -32601 the hard way.
Fields§
§name: StringFully-qualified MCP tool name (e.g., memory_store).
family: StringFamily the tool belongs to. Always one of the eight canonical
family names (core, lifecycle, graph, etc.) or
"always_on" for the memory_capabilities bootstrap which
doesn’t sit in any single family from a registration standpoint.
loaded: boolWhether the active profile’s family set includes this tool’s
family (i.e., it appears in tools/list).
callable_now: boolloaded && agent_can_call(agent_id, family). When the
[mcp.allowlist] is disabled, callable_now == loaded.
examples: Vec<ToolExample>v0.7.0 issue #803 — 0-2 worked examples for the tool.
skip_serializing_if = "Vec::is_empty" strips the field
for any tool without curated examples.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for ToolEntry
impl<'de> Deserialize<'de> for ToolEntry
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>,
impl Eq for ToolEntry
impl StructuralPartialEq for ToolEntry
Auto Trait Implementations§
impl Freeze for ToolEntry
impl RefUnwindSafe for ToolEntry
impl Send for ToolEntry
impl Sync for ToolEntry
impl Unpin for ToolEntry
impl UnsafeUnpin for ToolEntry
impl UnwindSafe for ToolEntry
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.impl<T> ErasedDestructor for Twhere
T: 'static,
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>
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>
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 more