Conversation
- Add comprehensive analysis of native tool calling mechanisms and limitations of tool search - Compare server, proxy, client, and model-provided tool search approaches - Detail tool blindness, lookup latency, prompt caching impact, and lessons from Skills
|
I think this is a great review of the problem space, but the suggested solution space seems inconsistent with those problems - as I read it, there are a few existing ways to do tool search and they're all flawed because tool search itself is hard to do well:
The suggested solution space inherits several of the same problems, however:
If we're looking to carve out a tractable solution space, I think we need to narrow the problem space as well - we can effectively distill a few interrelated constraints inherent to progressive disclosure from this document, irrespective of if we use tool search or some other mechanism:
Presenting a strong solution to progressive disclosure in MCP will likely mean accepting these constraints and working within them, rather than discovering some way to work around them entirely. This will mean inheriting at least some of the problems tool search has today while hopefully mitigating others. I think the way the document currently frames the solutions doesn't clearly emphasize the underlying constraints imposed by inference economics (it does mention them, it just doesn't center them as themes), so it's unclear how any of the suggested solutions might actually be better or worse than tool search in the end. The information is great, it just feels directionless when zoomed-out because the throughline is a bit weak. Anyways my meta-suggestion here is honestly to rework the exploration of the solution space significantly (everything from "We can learn a lot from Skills" onwards; everything before that is mostly fine) and put something roughly along the lines of the underlying constraints I have above in between the problem and solution sections - not to say that what I have above is necessarily the precise set of constraints to discuss, but it's something to start with at least. |
|
Thanks for the thorough review, @LucaButBoring. As we've discussed on Discord, OpenAI supports I’ve tightened the doc to address the broader feedback:
The Skills example now illustrates a possible grouping mechanism for MCP primitives, with its remaining limitations called out. |
There was a problem hiding this comment.
Note
Copilot was unable to run its full agentic suite in this review.
Copilot review overview
Review effort: Lite
Findings: 1
Open (2)
What changed in this PR
Adds a new documentation page explaining why tool search/progressive discovery is difficult to integrate cleanly with native tool calling and prompt caching across MCP and major model providers.
Changes:
- Document tradeoffs of server/proxy/client/provider-hosted tool search approaches and their impact on native tool calling.
- Add a provider support matrix plus discussion of mid-conversation tool registration.
- Describe practical limitations (tool blindness, repeated searches) and relate them to Skills/CLI-style grouping.
| File | Description |
|---|---|
| docs/limits-of-tool-search.md | New doc detailing limitations and patterns for tool search and progressive tool discovery with MCP and provider tool-calling APIs. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| | API or platform | Deferred tool search | Scope and limitations | | ||
| | :---- | :---- | :---- | | ||
| | OpenAI Responses API | Native | GPT-5.4 and later; hosted and client-executed search. ([OpenAI](https://developers.openai.com/api/docs/guides/tools-tool-search)) | | ||
| | Azure OpenAI Responses API | Native | GPT-5.4 and later on a supported deployment; hosted and client-executed search. ([Microsoft](https://learn.microsoft.com/en-us/azure/foundry/openai/how-to/tool-search)) | |
| `get_build_logs` never becomes a native tool. Its schema is data returned by | ||
| `search_tools`, while the actual native call is the weakly typed `execute_tool`. | ||
| The model provider can validate only the generic executor's schema, not the | ||
| arguments of the discovered tool. |


Analysis of why Tool Search is not sufficient progressive discovery (from @SamMorrowDrums, @helloeve, and myself).