Skip to main content
Glama

Search Tools

search_tools
Read-onlyIdempotent

Find enabled UniFi management tools by natural-language intent, filter by family or read/write type, and browse matches to locate the right API action before using it.

Instructions

Find enabled tools by intent, ranked over names, descriptions and parameter schemas.

Default returns ten matches. Choose any positive limit, or null for every match; no tool or search result is hard-capped. Empty query browses tools. Use describe_tool for the exact schema, then call_read_tool or call_write_tool.

Args: query: Natural language intent, for example "camera recordings"; empty browses all tools. family: Optional exact family slug from list_tool_families, for example "protect". writes: Optional filter: true for mutations, false for reads, null for both. limit: Number of results (default 10); any positive integer or null for every match. Enabled families (tool counts): carrier: 11; clients: 14; connector: 5; devices: 34; firewall: 32; hotspot: 4; innerspace: 32; mobility: 8; network: 347; protect: 227; site_manager: 19; statistics: 14; vpn: 39.

Input Schema

NameRequiredDescriptionDefault
limitNoNumber of results (default 10); any positive integer or null for every match.
queryYesNatural language intent, for example "camera recordings"; empty browses all tools.
familyNoOptional exact family slug from list_tool_families, for example "protect".
writesNoOptional filter: true for mutations, false for reads, null for both.

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.7.0

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds genuinely new behavior: default of ten matches, no hard cap on results, and that an empty query browses rather than errors. It does not describe result ordering stability or pagination beyond the limit, which keeps it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The key behavior and the sibling routing are front-loaded in the first sentences. The trailing Args section duplicates the schema descriptions nearly verbatim, which is redundant but not harmful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. For a four-parameter search tool, the description covers intent, filtering, limits, browsing, and the follow-up call path, leaving nothing an agent needs missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema: the family parameter is tied to list_tool_families slugs, writes is framed as mutations vs reads vs both, and limit is clarified as any positive integer or null for all matches. The Args block largely restates the schema, limiting the added value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Find enabled tools by intent') plus the ranking basis (names, descriptions, parameter schemas). It is clearly distinguishable from siblings like describe_tool and call_read_tool, which the description itself names.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent: use describe_tool for the exact schema, then call_read_tool or call_write_tool. It also explains the empty-query browse case and that family slugs come from list_tool_families, leaving little to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.