Skip to main content
GET
JavaScript
One query, searched across everything an agent variation can be assigned: individual tools, whole tool sets, and other agents. Despite the name, the response has three buckets.
The agents bucket is there because an agent can be assigned to a variation as a sub-agent, which makes it a tool from the calling agent’s point of view.

Matching is a case-insensitive name prefix

All three buckets match a prefix of the resource name, folding case.
Prefix-only is the thing to design around. Half-remembering a tool as FakeGenerator finds nothing, because the name starts Generate.
A query containing a space matches nothing. Faker MCP is the exact, full name of a tool set and returns zero results, and even Faker M returns zero, while Faker returns it. Search on a single word.
An empty query returns everything in the workspace, which is a reasonable way to populate a picker on first render. Results are scoped to live tool sets. A tool whose tool set was deleted or archived no longer appears, so what you get back is assignable. A tool result does not carry its parent tool set, though: info holds only a signature. Group results by tool set and you have to cross-reference.

What it is for

The intended flow is assignment. You are building a variation, you want to hand it a capability, and you do not remember whether that capability is one tool, a whole tool set, or a sub-agent.
addAssignment takes one target, a union whose type discriminator is the same three-way choice this endpoint returns. That symmetry is the whole design.
This endpoint has nothing to do with tool_search, the tool an agent gets under progressive discovery. That one loads tools into a running objective by exact name. This one is for you, at configuration time.

Create a tool set

Where the tools this endpoint finds come from.

Agents and variations

Assigning a tool, a tool set, or a sub-agent to a variation.

Delegate to sub-agents

Why agents appear in a tool search.

Preventing tool bloat

The other tool_search, the one the agent calls.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

workspaceId
string
required

NOTE: query is runtime-required (buf.validate min_len), but gnostic does not propagate message-level schema required to GET query parameters — overlay.yaml marks the parameter required instead.

Example:

"workspace_01HXKD2E5NQM3T9AYWCF133E3Q"

Query Parameters

query
string
required

Response

OK

tools
object[]
toolSets
object[]
agents
object[]