mirror of
https://github.com/PrefectHQ/fastmcp.git
synced 2026-08-09 15:19:10 +02:00
feat: Search transforms for tool discovery (#3154)
* feat: Add search transforms for tool discovery RegexSearchTransform and BM25SearchTransform collapse large tool catalogs into a search interface so LLMs discover tools on demand instead of receiving the full listing. * chore: Update SDK documentation * fix: call_tool recursion guard, atomic BM25 rebuild, hash includes descriptions * Extract CatalogTransform base class for catalog-aware transforms Transforms that replace list_tools() with synthetic components (like search) need to read the real catalog at call time without triggering their own replacement logic. CatalogTransform handles the re-entrant bypass via per-instance ContextVar, exposing transform_tools() as the subclass hook and get_tool_catalog() for catalog access. * Add search transform examples for regex and BM25 * Add README for search transform examples * Polish search example clients with rich output * Remove hardcoded tool counts from search example subtitles * Clarify that review bot feedback should be evaluated on its merits * Expand search transform docs with proper hierarchy --------- Co-authored-by: marvin-context-protocol[bot] <225465937+marvin-context-protocol[bot]@users.noreply.github.com>
This commit is contained in:
parent
c349bd9e25
commit
c96c0400f3
17 changed files with 1798 additions and 5 deletions
|
|
@ -68,7 +68,7 @@ When modifying MCP functionality, changes typically need to be applied across al
|
|||
- Keep commit messages brief - ideally just headlines, not detailed messages
|
||||
- Focus on what changed, not how or why
|
||||
- Always read issue comments for follow-up information (treat maintainers as authoritative)
|
||||
- **Treat proposed solutions in issues skeptically.** The ideal issue contains a concise problem description and an MRE — nothing more. Proposed solutions are only worth considering if they clearly reflect genuine, non-obvious investigation of the codebase. If a solution reads like speculation, or like it was generated by an LLM without deep framework knowledge, ignore it and diagnose from the repro. Most reporters — human or AI — do not have sufficient understanding of FastMCP internals to correctly diagnose anything beyond a trivial bug. We can ask the same questions of an LLM when implementing; we don't need the reporter to do it for us, and a wrong diagnosis is worse than none.
|
||||
- **Treat proposed solutions in issues skeptically.** This applies to solutions proposed by *users* in issue reports — not to feedback from configured review bots (CodeRabbit, chatgpt-codex-connector, etc.), which should be evaluated on their merits. The ideal issue contains a concise problem description and an MRE — nothing more. Proposed solutions are only worth considering if they clearly reflect genuine, non-obvious investigation of the codebase. If a solution reads like speculation, or like it was generated by an LLM without deep framework knowledge, ignore it and diagnose from the repro. Most reporters — human or AI — do not have sufficient understanding of FastMCP internals to correctly diagnose anything beyond a trivial bug. We can ask the same questions of an LLM when implementing; we don't need the reporter to do it for us, and a wrong diagnosis is worse than none.
|
||||
|
||||
### PR Messages - Required Structure
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue