Skip to main content
Glama
jaseonline

unifi-console-mcp

by jaseonline

unifi_console_client_group

Destructive

Preview and apply changes to UniFi console client groups (named sets of client MAC addresses used by policies) with a confirm step and rollback.

Instructions

Preview, then apply, a change to the console's client groups (named sets of client MAC addresses used by policies).

Two steps, always: call with confirm=false to get a read-only preview (before, after, diff, warnings, what uses the group, a fingerprint); call again with the same fields plus confirm=true and that fingerprint to apply. The group is re-read first, so a stale preview is refused. Members are MAC addresses (any common spelling is normalised to aa:bb:cc:dd:ee:ff); use add_members/remove_members to change a few, or members to replace all. Applying also needs UNIFI_CONSOLE_ENABLE_WRITES=true and 'client_group' in UNIFI_CONSOLE_WRITE_ENTITIES. A group that firewall policies or traffic objects still use cannot be deleted, and editing one warns that the change takes effect for them at once. The console only accepts the whole group, so updates send all of it. After applying, the group is read back and the result reports verified true/false, the diff, and the exact rollback call. Every write is journalled.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only declare destructive/non-idempotent; the description adds far more: stale previews are refused by re-reading the group, deletes are blocked while policies or traffic objects reference the group, edits take effect immediately for those consumers, the console requires the whole group so updates send all of it, and every write is journalled. MAC normalisation and post-write verification with a rollback call are also disclosed.

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 critical two-step confirm/fingerprint flow is front-loaded in the opening sentence and the remainder is earned by genuinely non-obvious constraints. It is dense at roughly ten sentences for one logical operation, and a couple of clauses (e.g. the 'type' replay rationale) could be trimmed without loss.

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 return values need not be restated, yet the description still usefully notes that the result carries verified true/false, the diff, and the exact rollback call. With prerequisites, deletion blockers, normalisation rules, and verification semantics all covered, an agent has everything needed to call this correctly.

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

Parameters4/5

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

Schema description coverage is reported as 0%, so the description carries the load; it explains confirm's two roles, that fingerprint must come from the preview of exactly this change, that members replaces the full list while add_members/remove_members are update-only deltas, and that MACs are normalised. It does not disambiguate target (id vs name) or the pass-through 'type' field, which the schema itself does cover.

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

Purpose5/5

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

States a specific verb pair ('preview, then apply, a change') and resource ('client groups'), and immediately glosses the resource as 'named sets of client MAC addresses used by policies', which separates it from the sibling unifi_console_client and unifi_console_traffic_object tools.

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?

Gives an explicit two-step workflow (confirm=false preview, then confirm=true with fingerprint), states the prerequisite env vars for writes, and tells the agent when to use add_members/remove_members versus members. It stops short of routing against sibling tools (e.g. unifi_console_firewall_policy, which shares the 'used by policies' constraint), so it is clear context without explicit alternatives.

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