Skip to main content
Glama
owine

UniFi Network MCP Server

by owine

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v2.11.2

  • Disambiguation5/5

    Each tool targets a distinct resource and action (get vs list). For example, unifi_get_device retrieves full configuration while unifi_get_device_statistics retrieves live metrics, and unifi_list_devices provides a summary view. There is no ambiguity between tools.

    Naming Consistency5/5

    All tools follow the consistent pattern 'unifi_<verb>_<resource>' with verbs only 'get' and 'list'. This makes the toolset predictable and easy to navigate.

    Tool Count3/5

    41 tools is high for an MCP server, well above the typical 3-15 range. However, the domain (UniFi network management) is complex and each tool covers a distinct resource, so the count is borderline but not excessive.

    Completeness2/5

    The server only provides read operations (get and list); there are no create, update, or delete tools. This severely limits its usefulness for management tasks, making it incomplete for a full lifecycle.

  • Average 4.1/5 across 41 of 41 tools scored. Lowest: 3.2/5.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 93 commits in the last 12 weeks
    • Last stable release on
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is passing
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior3/5

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

    Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds that the response includes 'full match criteria and action,' which provides some insight into the output but does not disclose other behavioral traits like authorization needs or performance characteristics. This adds moderate value.

    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 description is a single, well-structured sentence that efficiently conveys the tool's purpose and a key aspect of its output. It is front-loaded and contains no unnecessary words. However, it is very brief and could benefit from slightly more context.

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

    Completeness3/5

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

    Given the low complexity (2 simple parameters), the presence of an output schema, and annotations covering safety, the description is minimally adequate. However, it lacks usage guidance and does not elaborate on the 'full match criteria and action' phrase, so it is not fully self-sufficient.

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

    Parameters3/5

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

    Schema coverage is 100% with descriptions for both parameters (siteId, firewallPolicyId). The description does not add any additional meaning or format details beyond the schema, so the baseline score of 3 is appropriate.

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

    Purpose4/5

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

    The description clearly states the action ('Get') and resource ('firewall policy by ID'), and adds specificity with 'full match criteria and action.' This differentiates it from list tools and other get tools by resource type, though it does not explicitly contrast with sibling tools.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives (e.g., listing policies with unifi_list_firewall_policies). The description simply states what it does without contextualizing its usage, leaving the agent to infer.

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

  • Behavior3/5

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

    Annotations already declare readOnlyHint=true and destructiveHint=false, indicating a safe read operation. The description adds return format details but does not disclose additional behaviors such as pagination (though limit/offset are in the schema) or authentication requirements. It does not contradict annotations.

    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 description is concise with two sentences: one for the action and one summarizing the return structure. It is front-loaded and efficient, though it could briefly mention usage context without adding length.

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

    Completeness4/5

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

    Given the presence of an output schema and 100% parameter coverage, the description is fairly complete. It explains the resource and return shape. However, it lacks mention of pagination or any prerequisites, which would enhance completeness.

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

    Parameters3/5

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

    The input schema has 100% description coverage for all four parameters (siteId, limit, offset, filter). The tool description does not add any parameter-level meaning beyond what the schema already provides, so the baseline score of 3 is appropriate.

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

    Purpose4/5

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

    The description clearly states the tool lists LAGs (Link Aggregation Groups) at a site, with a specific verb and resource. It also outlines the return fields, helping the agent understand what the output looks like. However, it does not explicitly differentiate from the sibling tool unifi_get_lag, which retrieves a single LAG.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives like unifi_get_lag or unifi_list_switch_stacks. It simply states the action without context for selection.

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

  • Behavior3/5

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

    Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds that policies are 'served by the gateway' and lists return fields, which provides some behavioral context but omits details like rate limits or full output format.

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

    Conciseness5/5

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

    The description is a single sentence followed by a list of fields. It is extremely concise, front-loaded with the core action, and contains no superfluous information.

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

    Completeness4/5

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

    Given the presence of annotations and an output schema, the description is adequate. It lists key return fields, which helps the agent understand expected output. A minor gap is the lack of explanation for filter parameter usage.

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

    Parameters3/5

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

    The input schema has 100% description coverage for all parameters. The description does not add any extra meaning beyond the schema definitions, so it meets the baseline for this dimension.

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

    Purpose4/5

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

    The description clearly states the tool lists DNS policies at a site, with a specific verb and resource. It lists return fields but does not explicitly differentiate from siblings like unifi_get_dns_policy, though the naming convention suggests the distinction.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives, nor are there any prerequisites or context for usage. The description is purely functional.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint=true, and the description confirms a read operation. It adds useful behavioral context by noting that 'Rules higher in the list win', which explains evaluation order. No contradictions.

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

    Conciseness5/5

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

    Two sentences, front-loaded with action, and no unnecessary words. Every sentence adds value: verb, resource, return format, and ordering semantics.

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

    Completeness4/5

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

    Given the presence of an output schema (as indicated by context signals), the description sufficiently covers the operation. It mentions the return format and ordering rule. Could be more complete by noting that the site must have ACL rules, but overall adequate for a read-only tool with one parameter.

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

    Parameters3/5

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

    Schema coverage is 100% with the parameter 'siteId' described as 'Site ID'. The description does not add further semantics beyond what the schema provides, so it meets the baseline of 3.

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

    Purpose4/5

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

    Description clearly states 'Get the evaluation order of user-defined ACL rules' with a specific verb and resource. It also mentions the return format. However, it does not explicitly differentiate from sibling tools like unifi_get_acl_rule or unifi_list_acl_rules, though context implies differentiation.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives such as unifi_list_acl_rules or unifi_get_firewall_policy_ordering. The description does not mention prerequisites or conditions, leaving the agent to infer usage context.

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

  • Behavior3/5

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

    Annotations already mark the tool as readOnlyHint=true and destructiveHint=false, so the description adds only minor context by noting that the response contains the 'full items array'. No mention of rate limits, permissions, or other behavioral traits beyond what is implied by 'Get'.

    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 description is a single, front-loaded sentence with no extraneous words. It efficiently conveys the essential action and scope, though it could be slightly expanded to include usage hints without sacrificing conciseness.

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

    Completeness3/5

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

    Given the tool's simplicity, two required parameters, and presence of an output schema, the description is adequate but lacks context about when to use this vs. other list tools. It does not explain what a traffic matching list is or how the ID relates to other operations, leaving gaps for a new agent.

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

    Parameters3/5

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

    The input schema covers 100% of parameters with clear descriptions for `siteId` and `trafficMatchingListId`. The description does not add any additional semantic value beyond what the schema already provides, so it meets the baseline without improvement.

    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?

    The description clearly states the action ('Get') and the resource ('a specific traffic matching list by ID'), distinguishing it from sibling tools like `unifi_list_traffic_matching_lists`, which retrieves all lists. The mention of '(full items array)' further clarifies the scope of the returned data.

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

    Usage Guidelines3/5

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

    The description implies usage when you have a specific ID, but it does not explicitly contrast with list tools or explain when not to use it. No context is provided for prerequisites or alternatives, making it minimally adequate.

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

  • Behavior3/5

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

    Annotations already declare readOnlyHint and destructiveHint. The description adds specific return fields and context about profile usage, which provides moderate behavioral transparency beyond annotations.

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

    Conciseness5/5

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

    The description is concise, two sentences, front-loaded with the primary action and context. No wasted words.

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

    Completeness4/5

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

    Given the presence of an output schema, the description still adds value by summarizing return fields and usage context. It could mention pagination or filtering options, but is mostly complete.

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

    Parameters3/5

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

    Schema coverage is 100%, so the description does not need to elaborate on parameters. It adds no extra meaning beyond the schema, resulting in a baseline score of 3.

    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?

    The description clearly states the tool lists RADIUS profiles with specific use contexts (WiFi WPA-Enterprise, switch 802.1X, VPN), and specifies the returned fields (id, name, metadata). This distinguishes it from sibling list/get tools for other resources.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives. Since no sibling for getting a single RADIUS profile exists, the description could still benefit from stating it's the primary listing method.

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

  • Behavior3/5

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

    Annotations already declare readOnlyHint=true and destructiveHint=false, so safety profile is covered. Description adds value by specifying that the tool returns the LAG type (with possible values LOCAL/SWITCH_STACK/MULTI_CHASSIS) and member ports. This is additional behavioral context beyond the schema, but no further operational details (e.g., error handling, consistency guarantees) are provided.

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

    Conciseness5/5

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

    Single sentence of 17 words, no unnecessary information. Every word serves a purpose: verb, resource, output details. Extremely concise while being informative.

    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?

    For a simple read-only tool with two straightforward parameters, full annotations, and an output schema, the description is complete. It tells the agent what the tool does and what information it returns. No critical gaps for correct invocation.

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

    Parameters3/5

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

    Schema coverage is 100% with descriptions for both parameters ('LAG ID' and 'Site ID'). The description does not add extra semantic meaning to the parameters beyond what is in the schema. Baseline score of 3 applies since schema is complete.

    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?

    Description clearly states the action ('Get full details of a LAG') and specifies the resource ('a LAG'). It includes specific details about the output (type with enum values and member ports), which distinguishes it from sibling list tools like unifi_list_lags. The singular 'a LAG' implies it operates on a specific LAG, making purpose unambiguous.

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

    Usage Guidelines2/5

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

    Description provides no guidance on when to use this tool versus alternatives. It does not mention the need for a siteId or lagId, nor contrasts with unifi_list_lags (which lists LAGs) or other get tools. No context on prerequisites, typical use cases, or when not to use.

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

  • Behavior3/5

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

    Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds that the tool returns 'beforeSystemDefined[] and afterSystemDefined[] arrays', which is behavioral context. However, it does not disclose any additional traits like authentication needs, rate limits, or what happens if the pair doesn't exist.

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

    Conciseness5/5

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

    The description is two sentences, front-loads the purpose, and includes return structure. Every sentence adds value with no wasted words.

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

    Completeness4/5

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

    Given the tool's simplicity (3 required params, read-only, output schema exists), the description adequately explains what the tool returns and the ordering. It could mention that it only applies to user-defined policies, but it does. Minor omission: no description of what happens when no policies exist.

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

    Parameters3/5

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

    The input schema has 100% coverage with brief descriptions for all three parameters. The description does not add any extra meaning, such as format, constraints, or examples. Since schema coverage is high, baseline 3 is appropriate.

    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?

    The description states a specific verb ('Get') and resource ('evaluation order of user-defined firewall policies') with a clear scope ('for a specific (source zone, destination zone) pair'). This differentiates it from sibling tools like unifi_list_firewall_policies which list all policies, and unifi_get_firewall_policy which gets a single policy.

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

    Usage Guidelines3/5

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

    The description implies usage by stating what the tool does, but it does not explicitly say when to use this tool versus alternatives like unifi_list_firewall_policies or unifi_get_firewall_policy. There is no guidance on prerequisites or exclusions.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that ACLs apply earlier in the path than firewall policies, providing behavioral context beyond annotations. No contradictions.

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

    Conciseness5/5

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

    Two sentences with high density: first sentence states purpose and differentiation, second lists return fields and adds path context. No wasted words, front-loaded.

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

    Completeness4/5

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

    Output schema exists, so return values are covered. The description provides purpose, differentiation, and path ordering. With 4 well-documented parameters and output schema, it is complete enough for agent selection.

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

    Parameters3/5

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

    Schema description coverage is 100%, all parameters have descriptions. The description does not add extra meaning beyond the schema; baseline 3 is appropriate.

    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?

    The description clearly states it lists ACL rules for switch/AP-level access control, distinguishing from zone-based firewall policies. It specifies the resource and scope, and differentiates from sibling tools like unifi_list_firewall_policies.

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

    Usage Guidelines2/5

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

    No explicit guidance on when to use this tool vs alternatives. The mention of 'distinct from zone-based firewall policies' hints at differentiation but doesn't advise on when to choose this over other list tools like unifi_get_acl_rule.

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

  • Behavior4/5

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

    Annotations already indicate read-only and non-destructive. Description adds meaning by listing return fields and clarifying activatedAt semantics. No contradictions.

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

    Conciseness5/5

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

    Two sentences, no wasted words, front-loaded with purpose and return fields. Efficient.

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

    Completeness4/5

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

    Given output schema exists, description is complete: lists return fields, filter usage, and site context. Adequate for a list tool.

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

    Parameters3/5

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

    Schema covers all parameters with descriptions. Description adds only a filter example, not significantly more meaning. Baseline 3.

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

    Purpose4/5

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

    Describes listing vouchers at a site with specific return fields. Implicitly distinguishes from sibling get_voucher by using 'list' vs 'get', but does not explicitly differentiate.

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

    Usage Guidelines3/5

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

    Provides one concrete usage example with filter, but lacks guidance on when not to use this tool or alternatives beyond the sibling list.

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

  • Behavior3/5

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

    Annotations declare readOnlyHint=true and destructiveHint=false, so the description need not repeat. It adds context about tag purpose and return fields but does not disclose additional behavioral traits like performance or limits beyond what annotations provide.

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

    Conciseness5/5

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

    Two sentences cover action, purpose, and return fields with no superfluous text. Efficient and front-loaded with the core function.

    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?

    Given the simple list operation with pagination parameters and an output schema, the description sufficiently covers the tool's behavior. It adds useful context on tag purpose and return structure.

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

    Parameters3/5

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

    All 4 parameters have schema descriptions (100% coverage), so the description adds minimal extra meaning. It provides overall context but no details about the parameters beyond the schema.

    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?

    The description clearly states the tool lists device tags at a site and explains the purpose of tags for selective WiFi broadcast. It specifies the return fields (id, name, deviceIds[]), making it distinct from sibling listing tools.

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

    Usage Guidelines3/5

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

    The description does not explicitly state when to use this tool versus alternatives or provide exclusions. While the context of tag usage is given, there is no guidance on when not to use it or how it complements other tools.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds useful context by stating 'same fields as the list entry', informing the agent about output consistency. No additional behavioral details needed for a simple read operation.

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

    Conciseness5/5

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

    The description is a single sentence, front-loaded with the action, and contains no superfluous information. It is optimally concise.

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

    Completeness4/5

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

    Given the tool's simplicity, high schema coverage, and presence of an output schema, the description is nearly complete. It could briefly mention that the output matches list entries, which it does. No major gaps.

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

    Parameters3/5

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

    Schema coverage is 100% with clear descriptions for both parameters (Site ID, Firewall zone ID). The description adds no new meaning beyond what the schema provides, which is adequate for a simple get-by-ID tool.

    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?

    The description clearly states the action (Get), resource (firewall zone), and method (by ID). It also differentiates from list tools by noting 'same fields as the list entry', making the purpose unambiguous.

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

    Usage Guidelines3/5

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

    Usage is implied: use when you need a single zone by ID, while list tools for all zones. However, no explicit when-not or alternative guidance is provided, leaving some ambiguity.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint=true and destructiveHint=false, so the tool is known as a safe read operation. The description adds context about the content of the details (peer switches and member LAGs), which goes beyond the annotations and informs the agent of what to expect.

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

    Conciseness5/5

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

    The description is a single, clear sentence with no unnecessary words. It is front-loaded with the verb and resource, and every word adds value.

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

    Completeness4/5

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

    Given that an output schema exists to document return values, the description is adequate. It specifies what the tool returns (full details, peer switches, member LAGs), which is complete enough for an agent to understand its purpose. Minor omission: no mention of prerequisites like the domain existing, but that is implicit.

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

    Parameters3/5

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

    Schema description coverage is 100%, with each parameter having a basic description (Site ID, MC-LAG Domain ID). The tool description does not add any additional meaning or nuance beyond what the schema already provides, so baseline score of 3 is appropriate.

    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?

    The description clearly states the tool retrieves full details of an MC-LAG Domain, including peer switches and member LAGs. It distinguishes from sibling tool unifi_list_mc_lag_domains, which lists domains rather than retrieving details.

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

    Usage Guidelines3/5

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

    The description implies usage when full details of a specific domain are needed, but it does not explicitly mention when not to use it or suggest alternatives like unifi_list_mc_lag_domains for listing domains first. Usage context is only implied.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds behavioral context by specifying exact return fields, confirming it is a read-only list operation. No contradictions.

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

    Conciseness5/5

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

    Single sentence concisely conveys purpose and return fields. Front-loaded with action and resource. No redundant information.

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

    Completeness4/5

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

    Given the tool is a simple list operation with an output schema (context signals indicate true) and complete schema coverage, the description provides sufficient context. Could mention pagination or default limits but not essential.

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

    Parameters3/5

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

    Input schema covers all 4 parameters with full descriptions (100% coverage). The description does not add parameter-level details beyond the schema, but it clarifies output structure, which aids tool selection. Baseline 3 is appropriate.

    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?

    The description clearly states the tool lists MC-LAG domains, explains what MC-LAG is, and lists key return fields (id, name, peers, lags, metadata.origin). It differentiates from sibling tools like unifi_get_mc_lag_domain by being a list operation.

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

    Usage Guidelines3/5

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

    The description implies usage for listing all MC-LAG domains but does not explicitly state when to use this vs. the single-domain get tool or other list tools. No clear when-not-to-use or alternative suggestions.

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

  • Behavior3/5

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

    Annotations already declare readOnlyHint=true and destructiveHint=false, indicating safe read-only behavior. The description adds that the tool returns 'full match criteria and action', which provides some behavioral context beyond the annotations.

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

    Conciseness5/5

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

    The description is a single, concise sentence that front-loads the verb and resource, with a parenthetical clarifying the output. No unnecessary words.

    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?

    This is a simple get-by-ID tool. The description, annotations, and output schema (not shown) provide sufficient context for the agent to use it correctly. No gaps identified.

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

    Parameters3/5

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

    Schema coverage is 100% with clear descriptions for both parameters ('Site ID' and 'ACL rule ID'). The description does not add further meaning to the parameters beyond what the schema already provides.

    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?

    The description uses a specific verb 'Get' and resource 'ACL rule', and clarifies the return includes 'full match criteria and action'. It distinguishes from siblings like 'unifi_list_acl_rules' and 'unifi_get_acl_rule_ordering' by focusing on a single rule by ID.

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

    Usage Guidelines4/5

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

    The description clearly states the tool is for retrieving a specific ACL rule by ID, implying use when the ID is known. It does not explicitly state when not to use it or provide alternatives, but the sibling list tool provides contrast.

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

  • Behavior3/5

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

    Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that the return fields match the list entry, which is useful but limited. No contradictions.

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

    Conciseness5/5

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

    Extremely concise single sentence, front-loaded with the key action. No wasted words.

    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?

    For a simple get-by-ID tool with annotations and output schema, the description is fully adequate. It mentions that fields match the list entry, which is helpful context.

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

    Parameters3/5

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

    Schema coverage is 100% with descriptions for both parameters. The description adds no extra semantics beyond 'by ID', so baseline 3 is appropriate.

    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?

    The description clearly states 'Get a specific DNS policy by ID', which is a specific verb+resource. It distinguishes from sibling list endpoints like unifi_list_dns_policies by targeting a single record.

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

    Usage Guidelines4/5

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

    The description implicitly indicates use when a specific ID is known, but lacks explicit when-not or alternative guidance. Given the name and context, an agent can infer the appropriate usage.

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

  • Behavior3/5

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

    Annotations already provide readOnlyHint=true and destructiveHint=false, indicating safe read behavior. The description adds minor value by clarifying return structure consistency with list entries, but no additional behavioral traits beyond annotations.

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

    Conciseness5/5

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

    One sentence conveying essential purpose and a key behavioral note. No wasted words; perfectly concise.

    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?

    Given the tool's simplicity, presence of output schema, and comprehensive annotations, the description provides all necessary context alongside structured fields.

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

    Parameters3/5

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

    Input schema has 100% description coverage, with each parameter already described ('Site ID', 'Voucher ID'). The description adds no new meaning beyond the schema, so baseline score of 3 applies.

    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?

    Description states 'Get a specific hotspot voucher by ID' – a clear verb+resource pair. Also notes 'same fields as the list entry' to distinguish from listing endpoints, effectively differentiating from unifi_list_vouchers.

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

    Usage Guidelines4/5

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

    Implicitly guides using this when a specific voucher ID is known, contrasting with list tools. However, no explicit 'when not to use' or direct mention of sibling alternatives.

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

  • Behavior4/5

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

    Annotations indicate read-only and non-destructive. Description adds detailed return fields and encoding of protocols/ports, providing behavioral context beyond annotations.

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

    Conciseness5/5

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

    Concise one-paragraph description with front-loaded purpose, structured return field list, and no unnecessary words.

    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?

    Despite output schema existing, description provides comprehensive return field list and key nuance about trafficFilter, making it complete for agent understanding.

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

    Parameters3/5

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

    Schema coverage 100% so baseline 3. Description does not enhance parameter understanding, but schema already adequately documents parameters.

    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?

    Clearly states 'List firewall policies (zone-based rules) at a site.' with specific verb and resource, and distinguishes from siblings by referencing zone-based nature and related tools like unifi_get_firewall_policy_ordering.

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

    Usage Guidelines3/5

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

    No explicit when/when-not instructions. Implies usage for listing policies and mentions ordering from another tool, but lacks alternatives or constraints.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds value by specifying return fields (id, type, name, enabled, metadata.origin). No side effects are mentioned, but annotations cover safety.

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

    Conciseness5/5

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

    The description is two concise sentences: one for purpose and VPN types, one for return fields. No unnecessary words, front-loaded with key information.

    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?

    Given an output schema exists and the tool is a simple list operation, the description covers what it does and what it returns. It is complete for the tool's complexity.

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

    Parameters3/5

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

    Schema description coverage is 100%, so baseline is 3. The description does not add extra meaning to parameters beyond what the schema provides (e.g., limit, filter, offset, siteId). It focuses on return fields instead.

    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?

    The description clearly states the tool lists VPN servers at a site, specifying VPN types (WireGuard, OpenVPN, L2TP, Teleport) and return fields. This distinguishes it from siblings like unifi_list_vpn_tunnels by focusing on roaming/client-access VPNs.

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

    Usage Guidelines3/5

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

    The description implies usage for listing VPN servers but does not explicitly state when to use this tool versus alternatives like unifi_list_vpn_tunnels. No when-not or exclusionary guidance is provided.

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

  • Behavior4/5

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

    Annotations already indicate read-only and non-destructive behavior. The description adds that the output shape mirrors that of 'unifi_list_clients', providing valuable behavioral context about return consistency. No contradictions with annotations.

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

    Conciseness5/5

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

    The description is a single sentence that conveys all essential information without any redundancy. It is appropriately sized and front-loaded.

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

    Completeness4/5

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

    The description, combined with annotations and schema, provides sufficient context for a simple get-by-ID tool. The mention of 'connected client' adds slight ambiguity (vs. all clients), but overall it is complete enough given the tool's simplicity and existing structured data.

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

    Parameters3/5

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

    Schema coverage is 100% with both 'siteId' and 'clientId' described. The description does not add additional meaning beyond the schema, so it effectively meets the baseline for parameter semantics.

    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?

    The description clearly states the verb 'Get', the resource 'specific connected client', and the identifier 'by ID'. It also distinguishes from the sibling tool 'unifi_list_clients' by noting the same shape, making the purpose unambiguous.

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

    Usage Guidelines4/5

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

    The description implies usage when a single client's details are needed by ID, and the mention of 'same shape as unifi_list_clients entries' indirectly contrasts with listing. However, it lacks explicit when-not-to-use or alternative scenarios, which would elevate clarity.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds value by detailing that the tool returns additional optional fields like clientFilteringPolicy and blackoutScheduleConfiguration. This goes beyond the annotations, providing useful behavioral context without contradiction.

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

    Conciseness5/5

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

    The description is a single, well-formed sentence that front-loads the primary action and then lists specific fields. Every word adds value; there is no redundancy or filler. It is maximally concise while conveying essential information.

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

    Completeness4/5

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

    Given the low complexity (2 required parameters, 100% schema coverage, and an output schema present), the description is complete in explaining what extra fields are provided relative to the list tool. It could mention error handling, but the presence of an output schema reduces the need for that. Overall, it adequately covers the tool's context.

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

    Parameters3/5

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

    The input schema has 100% coverage, with both parameters (siteId, wifiBroadcastId) having clear descriptions. The description does not add new semantic information about the parameters themselves; it focuses on the output scope. Hence, baseline score of 3 is appropriate.

    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?

    The description clearly specifies the verb 'Get', the resource 'full configuration for a WiFi broadcast (SSID)', and distinguishes itself from list tools by emphasizing it includes optional fields not returned by unifi_list_wifi. It also lists specific fields, leaving no ambiguity about what the tool does.

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

    Usage Guidelines4/5

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

    The description explicitly states that this tool returns optional fields not always returned by the list counterpart, guiding the agent to use this when full configuration is needed. Although it doesn't explicitly mention when not to use it, the context is clear enough to differentiate from the sibling list tool.

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

  • Behavior4/5

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

    Annotations already indicate readOnlyHint=true and destructiveHint=false, so the description adds value by specifying the return fields (id, type, name, items). This provides behavioral context beyond the annotations.

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

    Conciseness5/5

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

    The description is very concise with two sentences: the first states the purpose and resource, the second gives a specific use case. No unnecessary words.

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

    Completeness4/5

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

    Given the presence of an output schema (not shown but indicated), the description provides key return fields and a usage hint. It is sufficiently complete for a list operation with readOnlyHint annotation.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the description does not need to add much for parameters. It does not elaborate on the parameters beyond what the schema provides, which is adequate. Baseline score of 3 is appropriate.

    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?

    The description clearly states the verb 'List' and the resource 'traffic matching lists at a site', with a concise definition of what they are (named collections of ports or IPs reused in firewall/ACL rules). This distinguishes it from sibling tools like unifi_get_traffic_matching_list which retrieves a single list.

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

    Usage Guidelines4/5

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

    The description includes an explicit use case: 'finding the matching-list ID to reference from a firewall policy'. While it doesn't explicitly state when not to use it, the context is clear enough, and the sibling unifi_get_traffic_matching_list provides an alternative for single-list retrieval.

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

  • Behavior3/5

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

    Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that it returns 'tunnel definitions per row' and notes the schema is not rendered, but does not elaborate on other behavioral aspects like permissions or error states.

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

    Conciseness5/5

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

    Three sentences with no redundancy. The first sentence states the purpose and types, the second notes the return format issue, and the third points to a sibling. Front-loaded and efficient.

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

    Completeness4/5

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

    For a list tool with good annotations and output schema, the description covers the main purpose, types, and alternative. It acknowledges the incomplete output schema documentation. Lacks explicit mention of pagination (but that's in schema) and permissions, but overall sufficient.

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

    Parameters3/5

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

    Schema coverage is 100% with descriptions for all parameters. The description does not add any additional meaning beyond what's already in the schema.

    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?

    The description clearly states the tool lists site-to-site VPN tunnels (IPsec, WireGuard, OpenVPN site-to-site) at a site, and distinguishes from roaming client VPN servers by pointing to a specific sibling tool.

    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 tells when to use this tool (list site-to-site VPN tunnels) and when to use the alternative (unifi_list_vpn_servers for roaming clients).

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

  • Behavior4/5

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

    Annotations already indicate readOnly and non-destructive. Description adds that the return is referenceResources, providing useful behavioral context beyond annotations.

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

    Conciseness5/5

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

    Two efficient sentences that front-load the purpose, include examples, and explain the return format. No wasted words.

    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?

    With good annotations, full schema coverage, and output schema mentioned, the description is complete for a reference-listing tool.

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

    Parameters3/5

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

    Schema coverage is 100%, so parameters are well-documented. Description does not add extra meaning to siteId or networkId beyond what schema provides.

    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?

    The description clearly states the tool gets all objects referencing a network, with examples (WiFi broadcasts, firewall zones), and distinguishes it from siblings like unifi_get_network and unifi_list_networks.

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

    Usage Guidelines4/5

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

    Explicitly says to use before deleting a network to find dependencies. Does not mention when not to use or alternatives, but context is clear given sibling tools.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint=true and destructiveHint=false, so the description's addition of 'full details' and 'stacking topology' is helpful but not critical. No contradictions.

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

    Conciseness5/5

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

    Two concise sentences with no wasted words. Everything serves a purpose.

    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?

    Given the tool's simplicity (get by ID, 2 required params) and the presence of an output schema, the description is fully adequate. It states what the tool does and how it differs from the list version.

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

    Parameters3/5

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

    Schema coverage is 100%, and both parameters are described in the schema. The description adds no additional meaning beyond what the schema provides.

    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?

    The description clearly states the verb 'Get' and the resource 'Switch Stack', specifies it returns 'full details including all members and stacking topology', and explicitly distinguishes from the list tool by noting 'same fields as the list response but for a single stack'.

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

    Usage Guidelines4/5

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

    The description implies when to use this tool (single stack) versus the list tool (multiple stacks). It does not explicitly exclude other scenarios or name alternative tools, but the context is clear enough.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds value by detailing the return format (code, name) and mentions the global scope, but does not discuss edge cases or parameter behavior beyond schema.

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

    Conciseness5/5

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

    Two sentences: first states action and context, second specifies return values and usage. No wasted words, front-loaded with the main purpose.

    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?

    The description covers the tool's purpose, return format, and how to use the output. Combined with full schema coverage and readOnly annotations, there are no gaps for this simple listing tool.

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

    Parameters3/5

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

    Schema coverage is 100% with parameter descriptions. The description does not add new parameter-level details but reinforces the purpose (e.g., 'global' implies limit/filter/offset act on a global list). Baseline 3 is appropriate.

    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?

    The description clearly states the tool lists countries/regions for geo-IP firewall rules, specifies return fields (code, name), and distinguishes it from sibling tools that list other Unifi entities like devices or policies.

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

    Usage Guidelines4/5

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

    The description guides the agent to use the returned code when building firewall policies that match by country. While it doesn't explicitly state when not to use it, the context is clear enough for a list lookup tool.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint=true and destructiveHint=false, consistent with 'list'. The description adds context by specifying return fields (id, name) and noting the data is 'global', which implies no site-specific filtering. No contradictions.

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

    Conciseness5/5

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

    The description is a single, clear sentence plus a brief 'Returns:' note. No unnecessary words, front-loaded with purpose and key differentiator.

    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?

    For a simple list tool with a well-defined schema and output schema, the description adequately covers purpose, differentiation, and return format. It is complete given the tool's simplicity.

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

    Parameters3/5

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

    The input schema has 100% description coverage for its three parameters (limit, filter, offset). The tool description does not add any additional parameter semantics beyond what the schema provides.

    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?

    The description clearly states the tool lists DPI applications (specific apps like 'Netflix', 'Zoom') and explicitly distinguishes it from the sibling 'unifi_list_dpi_categories' by noting it is 'more granular'. The verb 'list' and resource 'DPI applications' are specific.

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

    Usage Guidelines4/5

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

    The description includes a direct comparison with 'unifi_list_dpi_categories', indicating when to prefer this tool for finer-grained application details. However, it does not elaborate on other alternatives or when not to use it.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds useful behavioral context: global scope and return fields (id numeric, name). No contradictions.

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

    Conciseness5/5

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

    The description is exceptionally concise: two short sentences covering purpose, scope, examples, return fields, and usage. No wasted words.

    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?

    Given the tool's simplicity (list with optional pagination), the description is complete. It explains what is returned, global scope, and how to use the results. Output schema existence is mentioned but not needed for clarity.

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

    Parameters3/5

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

    Input schema has 100% coverage with descriptions for all three parameters (limit, filter, offset). The description does not add parameter-specific information beyond the schema, so baseline 3 is appropriate.

    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?

    The description clearly states the tool lists DPI categories, specifies global scope, gives examples ('Streaming', 'Social Networks'), and mentions return fields. It distinguishes from sibling tools like unifi_list_dpi_applications by focusing on categories.

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

    Usage Guidelines4/5

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

    The description provides a concrete use case: 'Use the category id when building firewall policies that match by category.' This gives clear context, but lacks explicit exclusions or when to use alternatives.

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

  • Behavior4/5

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

    The description discloses return fields (id, name, members[], lags[], metadata.origin) and explains the concept of switch stacks. Annotations already indicate read-only behavior, so the description adds useful context beyond that.

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

    Conciseness5/5

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

    Two sentences, front-loaded with purpose, no wasted words. Efficient and informative.

    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?

    For a list tool with good annotations and output schema, the description is complete: it explains what the tool returns, when to use it, and how it relates to other tools.

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

    Parameters3/5

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

    Input schema covers all parameters with descriptions, so baseline is 3. The tool description does not add additional semantics for parameters beyond what is in the schema.

    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?

    The description clearly states the action ('List'), the resource ('Switch Stacks'), and the context ('at a site'). It differentiates from sibling tools like unifi_get_device by explaining that individual member configs/stats come from that tool.

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

    Usage Guidelines4/5

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

    The description provides explicit guidance on when to use this tool ('Use for: identifying stacked switches') and points to an alternative for member details ('still come from unifi_get_device'). It does not list exclusions but the context is clear.

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

  • Behavior4/5

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

    Annotations indicate readOnlyHint=true and destructiveHint=false, but the description adds valuable context: it returns only id and name, not live link status or throughput rates, and mentions version verification against 10.5.43. This goes beyond annotations.

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

    Conciseness5/5

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

    The description is extremely concise: two sentences. First sentence states purpose and output; second sentence gives usage guidance and a version note. No redundant words, front-loaded with key information.

    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?

    Given the presence of an output schema and annotations, the description adequately covers purpose, param hint (siteId), and limitations. It mentions what is returned and the absence of live data, making it complete for a simple list tool.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the schema already documents all three parameters (limit, offset, siteId) with descriptions. The tool description adds no additional parameter-level detail, meeting the baseline.

    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?

    The description clearly states the verb 'List', resource 'WAN interface definitions', and scope 'at a site'. It distinguishes from sibling list tools by specifying the exact resource and return fields. No ambiguity.

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

    Usage Guidelines4/5

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

    The description provides explicit use cases: 'WAN inventory, multi-WAN topology.' However, it does not mention when not to use this tool or suggest alternatives. Siblings do not include other WAN list tools, so the guidance is clear but lacking exclusions.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint=true and destructiveHint=false, indicating a safe read operation. The description adds valuable behavioral context: it specifies that the tool returns 'latest live statistics', documents the exact fields returned, and discloses an API limitation (no per-switch-port counters). No contradictions with annotations.

    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 description is well-structured with the purpose first, then a list of return values, a note about limitations, and usage guidance. Every sentence adds value, though it could be slightly more concise (e.g., the note about API version could be integrated).

    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?

    Given the presence of an output schema (not shown but indicated) and annotations, the description is complete. It covers the tool's purpose, return fields, limitations (port stats unavailable), and contextual use cases, leaving no critical gaps.

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

    Parameters3/5

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

    Schema coverage is 100% with clear descriptions for siteId and deviceId. The description does not add additional parameter semantics beyond the schema, which is acceptable given the straightforward parameters. A baseline of 3 is appropriate.

    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?

    The description uses a specific verb ('Get') and resource ('latest live statistics for a device'), and distinguishes itself from the sibling tool unifi_get_device by stating that the latter is for config (channel, power, port assignment).

    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 states when to use this tool ('device health and AP radio metrics') and when to use the alternative ('For config... use unifi_get_device'). Also notes that port-level live stats are unavailable, guiding the agent away from incorrect usage.

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

  • Behavior5/5

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

    Annotations show readOnlyHint and destructiveHint already. The description adds that the schema is minimal, does not expose signal strength/channel/per-port binding, and notes version verification, providing transparency beyond annotations without contradiction.

    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 description is well-structured with key info upfront (action, returned fields, limitations). It is moderately concise; each sentence adds value, though it could be slightly tighter.

    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?

    Given the presence of an output schema, the description appropriately lists key fields and explains limitations (no signal strength, no historical data). It is complete for a list tool with clear scope.

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

    Parameters3/5

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

    Schema coverage is 100% with descriptions for all parameters. The description adds minimal extra meaning beyond schema (e.g., default limit), so baseline score of 3 is appropriate.

    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?

    The description clearly states 'List currently connected clients at a site', specifying the verb, resource, and scope. It also lists key returned fields, distinguishing it from sibling list tools for other resources.

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

    Usage Guidelines4/5

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

    It explicitly states 'Use for: who's online right now' and clarifies that disconnected/historical clients are not included, guiding appropriate usage. It does not explicitly name alternative tools but context implies differentiation.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint=true, so the tool is safe. The description adds valuable context: it returns only applicationVersion and notes verification against a specific version. No contradictions.

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

    Conciseness5/5

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

    The description is concise, using three sentences to convey purpose, return value, version note, and usage hint. No wasted words, and it is front-loaded.

    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?

    Given zero parameters and an existing output schema, the description adequately covers everything needed: it states the return value (applicationVersion) and provides a usage hint. Complete for a simple info tool.

    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?

    There are no parameters, so the schema coverage is 100%. The description correctly does not need to add parameter information. Baseline for 0 parameters is 4.

    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?

    The description clearly states the tool gets UniFi Network application info and specifies it returns only applicationVersion. This distinguishes it from the many sibling tools that manage different resources.

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

    Usage Guidelines4/5

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

    The description explicitly states 'Use for: version checks before calling version-gated tools,' providing clear guidance on when to use this tool. It does not mention exclusions, but the context is sufficient.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. Description adds value by specifying response fields (live-verified zoneId, etc.) and clarifying that this endpoint returns richer data than the list endpoint. No contradiction.

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

    Conciseness5/5

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

    Three concise sentences, front-loaded with purpose, followed by specific fields and a differentiating note. No redundancy or filler.

    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?

    Output schema exists, so description need not detail return values. It provides a high-level summary of key fields and notes the difference from the list tool. Sufficient for a simple get-by-ID operation.

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

    Parameters3/5

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

    Schema description coverage is 100%, with both parameters (siteId, networkId) having basic descriptions. The tool description does not add further parameter semantics beyond the schema. Baseline 3 is appropriate.

    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?

    Clearly states 'Get a network/VLAN by ID' with verb and resource. Lists specific fields returned and explicitly contrasts with sibling unifi_list_networks, making the purpose unambiguous.

    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?

    Directly indicates when to use (needing full details) and notes that unifi_list_networks is sparse. Provides clear differentiation: use this for detailed view, list for overview.

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

  • Behavior5/5

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

    Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds value by detailing the return fields (id, name, networkIds[], metadata.origin) and the distinction between system-defined vs user-defined zones, with no contradictions.

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

    Conciseness5/5

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

    The description is composed of three efficient sentences that front-load the core action and provide necessary context without redundancy or extraneous information.

    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?

    Given the tool's simplicity, presence of an output schema, and complete annotations, the description fully covers purpose, return fields, and cross-reference to related tools, making it complete for its use case.

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

    Parameters3/5

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

    Schema coverage is 100%, so the description is not required to add parameter details. The description does not provide additional parameter semantics beyond what the schema already offers, so the baseline score of 3 is appropriate.

    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?

    The description clearly states the tool lists firewall zones and defines them as 'groupings of networks for zone-based firewalling', which distinguishes it from sibling tools like unifi_get_firewall_zone and unifi_list_firewall_policies.

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

    Usage Guidelines4/5

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

    The description explicitly recommends using this tool for zone inventory and pairing it with unifi_list_firewall_policies, providing clear context. However, it does not explicitly state when to avoid this tool or mention alternatives beyond the pairing.

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

  • Behavior4/5

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

    Adds behavioral context beyond annotations by stating the list view is sparse and listing specific fields returned (id, name, management, etc.). No contradictions with readOnlyHint and destructiveHint.

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

    Conciseness5/5

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

    Two sentences plus a NOTE, front-loaded with purpose and returns. Every sentence earns its place with no fluff.

    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?

    Complete for the tool's purpose: explains what it does, what fields are available, how to get more detail, and how to use with a sibling tool. Annotations cover safety.

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

    Parameters3/5

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

    Schema description coverage is 100%, so baseline is 3. Description does not add extra meaning to parameters beyond what the schema already provides.

    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?

    Clearly states it lists all networks (VLANs/LAN segments) at a site, specifies return fields, and distinguishes from siblings like unifi_get_network for detail and unifi_get_network_references for consumption.

    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 says 'Use for: VLAN inventory; pair with unifi_get_network_references' and notes the sparse list, directing to unifi_get_network for detailed subnet/DHCP/NTP info, providing clear when-to-use guidance.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that the tool is global and not site-scoped, and mentions return fields (macAddress, model, etc.), adding useful behavioral context beyond annotations.

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

    Conciseness5/5

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

    Three concise sentences: action and scope, return fields, and use case. Front-loaded with the most important information, no wasted words.

    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?

    For a simple read-only list tool with an output schema and 3 optional parameters, the description covers purpose, scope, return format, and usage context. It also honestly notes that the exact per-row schema is not in the docs. Complete for safe selection and invocation.

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

    Parameters3/5

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

    Schema coverage is 100% with descriptions for limit, filter, and offset. The description does not add additional meaning beyond what the schema already provides, so baseline 3 is appropriate.

    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?

    The description explicitly states 'List devices pending adoption across all sites', providing a specific verb and resource. It distinguishes from siblings by noting 'global endpoint, not site-scoped' and mentions its use before unifi_adopt_device, linking to a sibling.

    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?

    The description states 'Use for: discovering new devices on the network before calling unifi_adopt_device', giving explicit context for when to use this tool versus alternatives like unifi_list_devices.

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

  • Behavior4/5

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

    Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds that it returns specific fields (id, internalReference, name) and the context of being a first call, without contradicting annotations.

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

    Conciseness5/5

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

    Two sentences: first states purpose, second states return fields, third gives usage tip. Perfectly concise and front-loaded.

    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?

    With an output schema present, the description covers the key return fields and the tool's role. It is complete for a simple list tool with optional parameters.

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

    Parameters3/5

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

    Schema coverage is 100% with parameter descriptions. The description does not add parameter details, but implies that no parameters are required for basic listing.

    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?

    The description clearly states the action ('List all sites') and the resource ('sites the API key has access to'). It also mentions the key returned fields, distinguishing it from siblings that list other resources.

    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 says 'Use for: first call in any workflow — almost every other tool needs a siteId', providing clear guidance on when to use this tool and its role in workflows.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint=true and destructiveHint=false; description adds value by listing returned fields and confirming read-only behavior, but does not discuss pagination or rate limits.

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

    Conciseness5/5

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

    Extremely concise: two sentences plus a list of return fields. Every sentence is informative, front-loaded with purpose, and no waste.

    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?

    Given output schema exists and description lists return fields, it is complete for a list tool. Includes alternative usage, making it self-contained.

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

    Parameters3/5

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

    Schema description coverage is 100%, so baseline is 3. Description does not add new parameter details beyond schema, but context implies siteId parameter usage.

    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?

    Description clearly states 'List all WiFi broadcasts (SSIDs) at a site' with a specific verb and resource, and distinguishes from sibling tool unifi_get_device which is for per-AP radio state.

    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?

    Provides explicit usage context: 'Use for: SSID inventory' and directs to unifi_get_device for per-AP radio state, giving clear when-to-use and when-not-to-use guidance.

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

  • Behavior5/5

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

    The description provides extensive detail on the return structure, including fields like interfaces.ports and interfaces.radios, and contrasts with the list endpoint. Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds significant behavioral context beyond that.

    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 description is well-structured, front-loading the purpose, then detailing return fields, and ending with usage guidance. It is slightly long but every sentence adds value. Minor improvement could be shortening the field enumeration.

    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?

    Given the complexity of the tool and the presence of an output schema, the description is complete. It covers what the tool returns, how it differs from the list endpoint, and suggests alternatives for specific use cases. No significant gaps.

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

    Parameters3/5

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

    Both parameters (siteId, deviceId) have schema descriptions at 100% coverage. The description does not add extra meaning beyond the schema, but the tool's purpose makes the parameter usage clear. Baseline 3 is appropriate as the schema already documents parameters adequately.

    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?

    The description clearly states 'Get full configuration for a device' and lists specific return fields. It distinguishes from the list endpoint by noting differences in returned data format. The tool's purpose is unambiguous.

    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?

    The description explicitly states when to use this tool (for switch port layout, PoE state, AP radio config, uplink topology) and when not to (for live statistics, direct to unifi_get_device_statistics). This provides clear guidance for tool selection.

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

  • Behavior5/5

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

    Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds behavioral context such as that features/interfaces are string arrays here and that it lists only adopted devices. No contradictions.

    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 description is slightly long but well-structured: first sentence states purpose, then lists return fields, then provides usage notes. Front-loaded with the main action. Could trim minor redundancy.

    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?

    Given the tool complexity (4 parameters, output schema exists, annotations present), the description is highly complete. It explains return values with examples and provides pairing suggestions, covering all necessary context.

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

    Parameters3/5

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

    Schema coverage is 100%, so the description does not need to add parameter details. It does not provide extra semantics beyond the schema, so a baseline of 3 is appropriate.

    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?

    The description clearly states it lists all adopted devices (gateways, switches, APs) at a site, and distinguishes from siblings by mentioning the return fields and noting that unifi_get_device expands features/interfaces. It is specific and unambiguous.

    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 says 'Use for: device inventory' and recommends pairing with unifi_get_device for full config and unifi_get_device_statistics for live metrics, providing clear guidance on when and how to use the tool versus alternatives.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

unifi-network-mcp MCP server

Copy to your README.md:

Score Badge

unifi-network-mcp MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/owine/unifi-network-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server