pub struct McpClient {
pub name: String,
/* private fields */
}Expand description
An active connection to a single MCP server.
Fields§
§name: StringServer name (from config).
Implementations§
Source§impl McpClient
impl McpClient
Sourcepub async fn connect(entry: &McpServerEntry) -> Result<Self>
pub async fn connect(entry: &McpServerEntry) -> Result<Self>
Connect to an MCP server, perform the initialize handshake, and discover tools.
Sourcepub async fn call_tool(
&self,
tool_name: &str,
arguments: Value,
) -> Result<ToolsCallResult>
pub async fn call_tool( &self, tool_name: &str, arguments: Value, ) -> Result<ToolsCallResult>
Invoke a tool on this server via tools/call.
Sourcepub async fn get_tools(&self) -> Vec<Tool>
pub async fn get_tools(&self) -> Vec<Tool>
Get the list of discovered tools (cached from the last tools/list).
Sourcepub async fn refresh_tools(&self) -> Result<Vec<Tool>>
pub async fn refresh_tools(&self) -> Result<Vec<Tool>>
Refresh the tool list from the server.
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for McpClient
impl !RefUnwindSafe for McpClient
impl Send for McpClient
impl Sync for McpClient
impl Unpin for McpClient
impl !UnwindSafe for McpClient
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<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§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>
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§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].