pub struct McpClientPool { /* private fields */ }Expand description
A pool of MCP stdio clients exposing their union of tools as a single executor.
Implementations§
Source§impl McpClientPool
impl McpClientPool
Sourcepub async fn connect(configs: &[McpServerConfig]) -> Result<Self, RunnerError>
pub async fn connect(configs: &[McpServerConfig]) -> Result<Self, RunnerError>
Connect to every configured MCP server, discover their tools, and build the routing table.
Connection failures for an individual server are fatal: a misconfigured tool server should surface loudly rather than silently degrade the agent.
§Errors
Returns RunnerError::external_service if spawning, initializing, or
listing tools for any configured server fails.
Sourcepub fn declarations(&self) -> &[FunctionDeclaration] ⓘ
pub fn declarations(&self) -> &[FunctionDeclaration] ⓘ
Tool declarations discovered across all connected servers.
Sourcepub fn tool_count(&self) -> usize
pub fn tool_count(&self) -> usize
Number of tools available across all connected servers.
Trait Implementations§
Source§impl McpToolExecutor for McpClientPool
impl McpToolExecutor for McpClientPool
Source§fn execute<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
tool_name: &'life1 str,
arguments: &'life2 Value,
) -> Pin<Box<dyn Future<Output = Result<Value, RunnerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn execute<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
tool_name: &'life1 str,
arguments: &'life2 Value,
) -> Pin<Box<dyn Future<Output = Result<Value, RunnerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Execute a tool call and return the result as JSON Read more
Auto Trait Implementations§
impl !RefUnwindSafe for McpClientPool
impl !UnwindSafe for McpClientPool
impl Freeze for McpClientPool
impl Send for McpClientPool
impl Sync for McpClientPool
impl Unpin for McpClientPool
impl UnsafeUnpin for McpClientPool
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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