Find tools
Ranked tool candidates for a task, filtered by capability.
Give StackResolve a task or a query and it returns ranked tools that can do the job. Every
candidate carries its AgentReady Score, so an agent can pick a tool it can
actually adopt and operate. There are two entry points: find_tools_for_task for a
plain-English task, and search_tools for a query plus hard capability filters.
#Find tools for a task
find_tools_for_task takes a plain-English task. One model call parses it into search terms
plus requirements, then the registry is searched and ranked by AgentReady Score.
curl https://api.stackresolve.dev/v1/find-tools \
-H "x-api-key: $STACKRESOLVE_API_KEY" \
-H "content-type: application/json" \
-d '{"task": "send transactional email from an agent"}'taskstringrequiredA plain-English description of the job to be done.
{
"task": "send transactional email from an agent",
"intent": { "searchTerms": "send transactional email", "requirements": {} },
"results": [
{ "slug": "resend", "name": "Resend", "domain": "resend.com", "agentready": 98 }
]
}intentobjectHow the model read your task: the searchTerms it searched for and the hard
requirements it inferred (any of api, mcp, self_serve, openapi, cli).
resultsarrayRanked candidates, highest AgentReady Score first. Each is { slug, name, domain, agentready }.
#Search with requirements
search_tools filters discovery by required capabilities. It is a hard filter: a product
that lacks a required capability is dropped, not just ranked lower.
Supported capability filters: api, mcp, self_serve, openapi, cli.
curl https://api.stackresolve.dev/v1/search \
-H "content-type: application/json" \
-d '{"query": "payments", "requirements": {"api": true, "mcp": true}}'querystringrequiredFree-text query matched against name, slug, and company description or categories.
requirementsobjectOptional hard filters over api, mcp, self_serve, openapi, cli. On REST, nest
them under requirements. On MCP, pass them as flat booleans on the tool input.
[
{ "slug": "paddle", "name": "Paddle", "domain": "paddle.com", "agentready": 83 },
{ "slug": "stripe", "name": "Stripe", "domain": "stripe.com", "agentready": 74 }
]search_tools is a free, unmetered read. find_tools_for_task runs a model call and
is metered as agent_discovery_check. Use search when you already know the requirements;
use find-tools when you have a task in plain language.slug into get_profile for full detail, or
audit for a fresh score. Feed a domain into get_company for
research.