Struct ToolFilterGroup
pub struct ToolFilterGroup {
pub mode: ToolFilterGroupMode,
pub tools: Vec<String>,
pub keywords: Vec<String>,
}Expand description
A named group of MCP tool patterns with an activation mode.
Each group lists glob patterns for MCP tool names and an optional set of
keywords that trigger inclusion in dynamic mode. MCP tools are named
<server>__<tool> (double-underscore separator, e.g. filesystem__read_file).
Classification is by origin, not name shape: only tools that actually came
from the MCP registry are subject to these groups. Built-in tools AND skill
tools — which share the <x>__<y> naming convention ({skill}__{tool}) —
always pass through and are never affected by tool_filter_groups.
Under [mcp] deferred_loading = true, mode = "always" entries are
pre-activated at assembly time so matching tools are live from the first
turn without a tool_search round-trip.
§Example
[[runtime_profiles.default.tool_filter_groups]]
mode = "always"
tools = ["filesystem__*"]
keywords = []
[[runtime_profiles.default.tool_filter_groups]]
mode = "dynamic"
tools = ["browser__*"]
keywords = ["browse", "website", "url", "search"]Fields§
§mode: ToolFilterGroupModeActivation mode: "always" or "dynamic".
tools: Vec<String>Glob patterns matching MCP tool names (single * wildcard supported).
keywords: Vec<String>Keywords that activate this group in dynamic mode (case-insensitive substring).
Ignored when mode = "always".
Trait Implementations§
Source§impl Clone for ToolFilterGroup
impl Clone for ToolFilterGroup
Source§fn clone(&self) -> ToolFilterGroup
fn clone(&self) -> ToolFilterGroup
1.0.0 (const: unstable) · §fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ToolFilterGroup
impl Debug for ToolFilterGroup
Source§impl<'de> Deserialize<'de> for ToolFilterGroup
impl<'de> Deserialize<'de> for ToolFilterGroup
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<ToolFilterGroup, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<ToolFilterGroup, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for ToolFilterGroup
impl JsonSchema for ToolFilterGroup
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreSource§impl Serialize for ToolFilterGroup
impl Serialize for ToolFilterGroup
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,
Auto Trait Implementations§
impl Freeze for ToolFilterGroup
impl RefUnwindSafe for ToolFilterGroup
impl Send for ToolFilterGroup
impl Sync for ToolFilterGroup
impl Unpin for ToolFilterGroup
impl UnsafeUnpin for ToolFilterGroup
impl UnwindSafe for ToolFilterGroup
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> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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