Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add swkstudios/unifi-fabric-mcp-server --skill firewall-zone-policy-auditgit clone --depth 1 https://github.com/swkstudios/unifi-fabric-mcp-serverWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/swkstudios/unifi-fabric-mcp-server/firewall-zone-policy-audit)<a href="https://agentmods.dev/skills/swkstudios/unifi-fabric-mcp-server/firewall-zone-policy-audit"><img src="https://agentmods.dev/badge/skills/swkstudios/unifi-fabric-mcp-server/firewall-zone-policy-audit/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/swkstudios/unifi-fabric-mcp-server/firewall-zone-policy-audit"><img src="https://agentmods.dev/badge/skills/swkstudios/unifi-fabric-mcp-server/firewall-zone-policy-audit.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00037 | $0.00780 |
| Opus 5.5 | $0.00015 | $0.00312 |
| Sonnet 5.5 | $0.00007 | $0.00156 |
| Haiku 4.5 | $0.00004 | $0.00078 |
Grade A, and why
firewall-zone-policy-audit scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 38 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Firewall and zone-based policy audit
Read first; write only the change the operator approved. In discovery mode (the default)
run each tool below through call_read_tool or call_write_tool with name and
arguments; in full mode call it directly. For anything else use search_tools and
describe_tool.
- Call
list_firewall_zones_proxywith{"host":"<console>","site":"<site>"}and map zone names (case-insensitive: Internal, External, ...) todata[].id. - Call
list_firewall_policieswith the same scope; omitoffsetandlimitto get every page. Check source and destination zones, action, enabled state and origin. Flag every External-to-Internal allow; never infer safety from a policy name. - For each zone pair with policies, call
get_firewall_policy_orderingwithhost,site,source_zone_idanddestination_zone_id; keep the body as returned. - Report zones, policies, effective order and suspected WAN-to-LAN allows; missing data is unknown, not safe. For a change, show the exact before and after ordering.
- After approval, call
set_firewall_policy_orderingwith the same zone pair and the whole read-back object, reordered, asordering(both arrays,[]for an empty side, noindexfield). It has no per-call preview, so the ordering shown in step 4 is the preview; astatus: "dry_run"result means the server runs in dry-run mode and nothing changed. - Re-read
get_firewall_policy_orderingand compare it with the approval. On a mismatch stop and report; never retry by guessing.
Tool contracts checked against code (paths under src/unifi_fabric/)
| Tool | Mode | Required arguments (optional) | Return shape and source |
|---|---|---|---|
list_firewall_zones_proxy |
read | host, site (offset, limit, filter) |
{data, totalCount}, all pages; server.py::list_firewall_zones_proxy → tools/firewall_proxy.py::list_firewall_zones; readOnlyHint: true |
list_firewall_policies |
read | host, site (offset, limit, filter) |
{data, totalCount}, all pages; server.py::list_firewall_policies → tools/firewall_proxy.py::list_firewall_policies; readOnlyHint: true |
get_firewall_policy_ordering |
read | host, site, source_zone_id, destination_zone_id |
{orderedFirewallPolicyIds: {beforeSystemDefined, afterSystemDefined}} verbatim; server.py::get_firewall_policy_ordering → tools/firewall_proxy.py::get_firewall_policy_ordering; readOnlyHint: true |
set_firewall_policy_ordering |
write | host, site, source_zone_id, destination_zone_id, ordering |
upstream body verbatim, or {status, dryRun, message, preview}; server.py::set_firewall_policy_ordering → tools/firewall_proxy.py::set_firewall_policy_ordering; readOnlyHint: false |
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 38 lines · 37 tokens per session scan A 777df9cb83fc
firewall-zone-policy-audit is a skill published in the GitHub repository swkstudios/unifi-fabric-mcp-server (6 stars, last pushed 4d ago), licensed MIT. It adds 37 tokens to every session and 780 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-11-04.
firewall-zone-policy-audit compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| firewall-zone-policy-auditswkstudios/unifi-fabric-mcp-server | Skill | 6 | 4d ago | MIT | A | 37 | Claude Code |
| unifi-protectsirkirby/unifi-mcp | Skill | 1.0k | yesterday | MIT | A | 112 | Claude Code |
| unifi-accesssirkirby/unifi-mcp | Skill | 1.0k | yesterday | MIT | A | 70 | Claude Code |
| network-health-checksirkirby/unifi-mcp | Skill | 1.0k | yesterday | MIT | A | 49 | Claude Code |
| percepxion-oobautomateyournetwork/netclaw | Skill | 715 | yesterday | Apache-2.0 | A | 70 | Claude Code |
| unifi-networksirkirby/unifi-mcp | Skill | 1.0k | yesterday | MIT | A | 83 | Claude Code |
| unifi-access-supportsirkirby/unifi-mcp | Skill | 1.0k | yesterday | MIT | A | 31 | Claude Code |