Skip to main content

Tool Search

tool_search lets the model find eligible tools that are registered with deferred/Codemode exposure but are not active in its current declarations. This keeps an indirect catalog available without including every schema in each request. Search does not execute the matched tools.

Enable discovery​

tool_search is registered inactive by default. Select it explicitly, for example:

anyy --tools '+tool_search'
anyy --resume SESSION_ID --tools '+codemode,+tool_search'

An existing Session must be idle with no pending input for an explicit selection change. The + rules start from Profile defaults and do not write configuration or incrementally edit the resumed Session's current active list. See conversation selection.

MCP deferred exposure can also auto-activate tool search under the current selection rules. Explicit exclusions and parent restrictions take precedence. Codemode and tool search are independent; disabling Codemode does not disable a permitted active tool_search. There is no separate tool-search Dashboard configuration form.

Search and use a result​

Ask Anyy for the capability you need, such as:

Find the configured documentation-search tool. Inspect its inputs, then use it to find the release notes.

The model tool accepts:

{"query":"documentation search","limit":3}

query is a required nonblank string. limit is an optional positive integer and defaults to 8. Search ranks the eligible catalog using names, descriptions, input schemas and namespace metadata. Use specific task words or the server name; no matching tool is a normal result.

Matching inactive tools are added to the Session's active names, preserving the existing names. The result identifies the loaded tools (also in details.loaded). Their declarations are available to the next model request, after the search result returns to the loop. An already prepared request does not acquire a new schema in place. The model can then issue a valid call using the returned declaration; all ordinary scope, authentication and validation checks still apply.

Only inactive deferred/Codemode tools are searched. Active tools, direct-only tools, hidden tools and model-only declarations are excluded. Search cannot resurrect a disabled server, create an unregistered tool or widen parent access. A server can be configured but not yet have a usable live catalog; inspect its connection when nothing relevant appears.

Relationship to Codemode​

MechanismWhat changes
Model tool_searchLoads matches as active declarations for the next request
Codemode searchTools(query, options)Searches the current script-callable snapshot without activating declarations
Codemode describeTool(name)Reads one current declaration without calling it

A callable MCP tool can therefore be used inside Codemode without first becoming a direct model declaration. Use the names and schemas returned by discovery, since remote names may be sanitized or collision-suffixed. See Codemode and MCP exposure.

If search finds nothing​

Check the same Profile, server enablement and readiness, exposure/ordered toolExposure, current Session exclusions and parent restrictions. A tool already active should be called through its existing declaration instead of searched again. A hidden tool requires an intentional configuration change; changing a search query does not expose it.