An agent with access to 500+ apps cannot load every tool definition into its context. It crowds the window, and the model gets worse at picking the right tool. The Search Tools API lets your agent describe the task in plain language and get back the few tools that fit, ranked by relevance, across every connection enabled in your environment.
Say a user asks your agent to send the Q3 summary to an account owner. The agent calls POST /api/v1/tools:search with that request, the user's identifier and a top_k of 5. The response ranks gmail_send_message first with the user's Gmail account marked ready, and returns slack_send_message with no connected account because the user has not connected Slack yet. The agent sends the email and can offer the user a link to connect Slack.
How it works
- The query takes plain language or keywords, 1 to 256 characters, matched against tool names, descriptions and providers.
- top_k defaults to 10 and goes up to 50. Each result has a relevance score you can compare within one response.
- Pass a user identifier and each result lists that user's connected accounts for the tool's app, marked ready, needs connection or needs reauthorization.
- The Python SDK exposes it as tools.search_tools and the Node.js SDK as tools.searchTools.
We are also testing ways to improve the ranking. Read what we found using Jev as a reranker, or go straight to the Search Tools API reference.

