pub struct CompositeToolConfig {
pub name: String,
pub description: String,
pub tools: Vec<String>,
pub strategy: CompositeStrategy,
}Expand description
Configuration for a composite tool that fans out to multiple backend tools.
Composite tools appear in ListTools responses alongside regular tools.
When called, the proxy dispatches the request to every tool in tools
concurrently (for parallel strategy) and aggregates all results.
§Example
[[composite_tools]]
name = "search_all"
description = "Search across all knowledge sources"
tools = ["github/search", "jira/search", "docs/search"]
strategy = "parallel"Fields§
§name: StringName of the composite tool as it appears to MCP clients.
description: StringHuman-readable description of the composite tool.
tools: Vec<String>Fully-qualified backend tool names to fan out to (e.g. "github/search").
strategy: CompositeStrategyExecution strategy (default: parallel).
Trait Implementations§
Source§impl Clone for CompositeToolConfig
impl Clone for CompositeToolConfig
Source§fn clone(&self) -> CompositeToolConfig
fn clone(&self) -> CompositeToolConfig
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for CompositeToolConfig
impl Debug for CompositeToolConfig
Source§impl<'de> Deserialize<'de> for CompositeToolConfig
impl<'de> Deserialize<'de> for CompositeToolConfig
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>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for CompositeToolConfig
impl RefUnwindSafe for CompositeToolConfig
impl Send for CompositeToolConfig
impl Sync for CompositeToolConfig
impl Unpin for CompositeToolConfig
impl UnsafeUnpin for CompositeToolConfig
impl UnwindSafe for CompositeToolConfig
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 more