pub struct ToolDiscovery { /* private fields */ }Expand description
Tool discovery service for progressive disclosure of MCP tools.
Implementations§
Source§impl ToolDiscovery
impl ToolDiscovery
Sourcepub fn new(mcp_client: Arc<dyn McpToolExecutor>) -> Self
pub fn new(mcp_client: Arc<dyn McpToolExecutor>) -> Self
Create a new tool discovery service.
Sourcepub async fn search_tools(
&self,
keyword: &str,
detail_level: DetailLevel,
) -> Result<Vec<ToolDiscoveryResult>>
pub async fn search_tools( &self, keyword: &str, detail_level: DetailLevel, ) -> Result<Vec<ToolDiscoveryResult>>
Search for tools by keyword with configurable detail level.
This implements progressive disclosure: agents can search with low detail to find relevant tools, then request full schemas only for tools they intend to use.
Follows AGENTS.md guidelines: limits results to 5 items with overflow indication.
Sourcepub async fn get_tool_detail(
&self,
tool_name: &str,
) -> Result<Option<ToolDiscoveryResult>>
pub async fn get_tool_detail( &self, tool_name: &str, ) -> Result<Option<ToolDiscoveryResult>>
Get detailed information about a specific tool.
Auto Trait Implementations§
impl !RefUnwindSafe for ToolDiscovery
impl !UnwindSafe for ToolDiscovery
impl Freeze for ToolDiscovery
impl Send for ToolDiscovery
impl Sync for ToolDiscovery
impl Unpin for ToolDiscovery
impl UnsafeUnpin for ToolDiscovery
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> 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> 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