Bounded, request-scoped tool discovery middleware.
Tool search deliberately has no index or cross-request snapshot. It exposes two compiled synthetic tools while the shared operation pipeline remains the source of truth for provider pagination, transforms, visibility, authorization, version selection, and final tool execution.
Summary
Types
@type t() :: %FastestMCP.Middleware.ToolSearch{ call_tool_name: String.t(), injection: struct(), max_results: pos_integer(), max_scan: pos_integer(), middleware: (FastestMCP.Operation.t(), (FastestMCP.Operation.t() -> any()) -> any()), pinned: [String.t()], search_tool_name: String.t() }