Skip to main content
Glama

plan_client_qos_policy

Create a deterministic QoS bandwidth plan for clients, tags, or groups without modifying the controller, and receive a plan token for later activation with apply_client_qos_policy.

Instructions

Persist a deterministic QoS target preview without controller mutation.

Mutating (local) operation: resolves selector_type/selector_value to concrete client keys and stores a durable QoS plan (plan_token) on the server with the requested download/upload limits. It does NOT change the controller. Pair the returned plan_token with apply_client_qos_policy to attempt activation. Requires UNIFI_RUNTIME_ENABLED=true; use get_client_qos_capabilities to check adapters.

Args: selector_type: Scope of the policy - "client", "tag", or "group". selector_value: Client identity (MAC/IP/hostname) when selector_type is "client", otherwise the tag or group name to expand to clients. download_kbps: Maximum download bandwidth in kilobits per second. upload_kbps: Maximum upload bandwidth in kilobits per second. site: Site to operate on. Defaults to "default". device: Optional device name to target a specific console; omit for default.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
siteNoSite to operate on. Defaults to "default".default
deviceNoOptional device name to target a specific console; omit for default.
upload_kbpsYesMaximum upload bandwidth in kilobits per second.
download_kbpsYesMaximum download bandwidth in kilobits per second.
selector_typeYesScope of the policy - "client", "tag", or "group".
selector_valueYesClient identity (MAC/IP/hostname) when selector_type is "client", otherwise the tag or group name to expand to clients.
Install Server

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden and does so well. It discloses that the operation is local, resolves selectors to client keys, persists a durable plan_token, does not mutate the controller, and has an environment prerequisite. This goes beyond basic verb/resource description and prevents false assumptions about immediate activation.

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 and front-loaded with the core purpose, followed by behavioral details, prerequisites, and parameter explanations. It is somewhat longer than strictly necessary because the Args section overlaps heavily with the schema, but every sentence contributes useful context.

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 is complete for a tool with no output schema and no annotations: it explains the operation's effect, the returned plan_token, the activation path, prerequisites, and parameter semantics. It stops short of detailing exact return formatting or failure modes, but those are not critical 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 description coverage is 100%, so the baseline of 3 applies. The description repeats and slightly clarifies the parameter meanings, especially selector_type and selector_value, but does not meaningfully add information 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 states a specific action ('Persist a deterministic QoS target preview') and clearly distinguishes it from apply_client_qos_policy by emphasizing it does NOT change the controller. It also references get_client_qos_capabilities, making the tool's role among siblings explicit.

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 provides concrete usage context: it is a local mutating operation that stores a plan, requires UNIFI_RUNTIME_ENABLED=true, and should be paired with apply_client_qos_policy for activation. It also directs the agent to get_client_qos_capabilities for adapter checks, giving 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.

Other Tools

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/mikeholownych/unifi-mcp'

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