Use this skill whenever the user needs to operate a network device — read device facts, interfaces (+ counters/IP), BGP/LLDP neighbors (summary and detail), ARP/MAC tables, VLANs, routes, hardware environment (fans/temp/power/CPU/mem), optics, NTP, users, SNMP info, VRFs, and an aggregated device-health summary; run read-only RCA diagnostics on interface health and BGP neighbors; back up a switch/router config, diff a candidate config (dry-run), and merge/replace/rollback config — across Cisco IOS/IOS-XE, Nexus NX-OS, IOS-XR, Arista EOS, and Juniper Junos via NAPALM. An optional NetBox block adds source-of-truth lookups. Always use this skill for "back up switch config", "show bgp neighbors", "diff network config", "push config to router", "show interfaces on the switch", or tasks mentioning "cisco", "arista", "juniper", "nexus", "ios-xr", or "napalm". Do NOT use when the target is not a NAPALM-supported network device (Kubernetes clusters, hypervisor VMs, and cloud consoles are out of
记忆
fabric-aiops
试用Use this skill whenever the user needs to operate a network fabric through a controller API — Cisco Meraki Dashboard (full read+write), Cisco Catalyst Center / DNA Center (read subset), Arista CloudVision Portal / CVP (read subset), or UniFi Network (self-hosted controller / UniFi OS console; read subset + device restart) — a one-shot fabric health overview; organization/site/container reads (list/get, licensing, admins, org-wide device statuses, API usage); network reads (list/get, VLANs, health alerts, traffic); device reads (inventory by model MX/MS/MR/MV/MG, status, uplinks, switch ports / interface stats, wireless SSIDs); client reads (list, detail, usage, connectivity); three flagship analyses — uplink loss & latency RCA (rank worst MX WAN uplinks + cause/action), network health score (composite per-network), and config template drift (settings drifted from a bound template); and eight guarded writes (reboot, blink LEDs, update device, update VLAN, claim/remove devices, bind/unbi
它能做什么
Use this skill whenever the user needs to operate a network fabric through a controller API — Cisco Meraki Dashboard (full read+write), Cisco Catalyst Center / DNA Center (read subset), Arista CloudVision Portal / CVP (read subset), or UniFi Network (self-hosted controller / UniFi OS console; read subset + device restart) — a one-shot fabric health overview; organization/site/container reads (list/get, licensing, admins, org-wide device statuses, API usage); network reads (list/get, VLANs, health alerts, traffic); device reads (inventory by model MX/MS/MR/MV/MG, status, uplinks, switch ports / interface stats, wireless SSIDs); client reads (list, detail, usage, connectivity); three flagship analyses — uplink loss & latency RCA (rank worst MX WAN uplinks + cause/action), network health score (composite per-network), and config template drift (settings drifted from a bound template); and eight guarded writes (reboot, blink LEDs, update device, update VLAN, claim/remove devices, bind/unbind a config template — Meraki-only except device restart, which unifi also maps; other unmapped writes return a teaching "not supported yet" error). Always use this skill for "Meraki org overview", "which uplinks are worst", "uplink loss and latency", "WAN degradation RCA", "network health score", "config template drift", "list Meraki networks/devices/clients", "reboot a Meraki device", "blink device LEDs", "claim a device into a network", "bind a network to a template", "Catalyst Center site health / device health / issues", "DNA Center inventory", "CloudVision inventory / compliance / events", "UniFi site health / alarms / clients", "restart a UniFi AP or switch" when the context is a controller-managed network fabric. Do NOT use when the target is OT / industrial equipment (Modbus, OPC-UA, PLCs — use industrial-aiops), a hypervisor, a storage appliance, a backup product, a container/cluster orchestrator, or device-level CLI/SSH network automation (negative routing hints only). Cover
技能文档
Fabric AIops
Disclaimer: Community-maintained open-source project, not affiliated with, endorsed by, or sponsored by Cisco, Meraki, Arista, Ubiquiti, or any network-controller vendor. Product and trademark names belong to their owners. Source at github.com/AIops-tools/Fabric-AIops under the MIT license.
Governed network-fabric controller operations — 34 MCP tools over four platforms (Cisco Meraki Dashboard: full read+write; Cisco Catalyst Center and Arista CloudVision Portal: read subsets; UniFi Network: read subset + device restart), every one wrapped with the bundled @governed_tool harness: a local unified audit log under ~/.fabric-aiops/, token/runaway budget guard, undo-token recording, and descriptive risk tiers. The controller secret is stored encrypted (~/.fabric-aiops/secrets.enc, Fernet + scrypt) — never plaintext on disk.
Standalone: the governance harness is bundled in the package (
fabric_aiops.governance) — fabric-aiops has no external skill-family dependency. The test suite is mock-based; no platform has yet been exercised against a live controller (seedocs/VERIFICATION.md).
Platform support
| Platform | platform: | Coverage | Auth |
|---|---|---|---|
| Cisco Meraki Dashboard | meraki | full (all reads + all 8 writes) | API key (Bearer / X-Cisco-Meraki-API-Key) |
| Cisco Catalyst Center | catalyst | read subset: sites (as orgs/networks), device+site+client health, issues→alerts, inventory, interface stats | username:password → short-lived X-Auth-Token (auto-refresh on 401) |
| Arista CloudVision Portal | cvp | read subset: containers (as orgs/networks), inventory (+ complianceCode drift signal), events→alerts, users→admins | service-account token (Bearer) |
| UniFi Network | unifi | read subset: sites (as orgs/networks), stat/device inventory+statuses, stat/health, alarms→alerts, stat/sta clients, device port_table→switch ports; plus the device-restart write (cmd/devmgr) | API key (X-API-KEY, stateless); base_url = classic https://:8443 or UniFi OS console https:///proxy/network |
Ops a platform does not map — and every write on catalyst/cvp (on unifi, every write except reboot) — return a teaching "not supported on `` yet — open an issue or PR" error, never a silent no-op. Full matrix in the repo README.
What This Skill Does
| Domain | Tools | Count | Read or Write |
|---|---|---|---|
| Overview | fabric fleet overview | 1 | 1 read |
| Organizations | list/get, licensing, admins, device statuses, API usage | 6 | 6 read |
| Networks | list/get, VLANs, health alerts, traffic | 5 | 5 read |
| Devices | inventory (by model), status, uplinks, switch ports, SSIDs | 5 | 5 read |
| Clients | list, detail, usage, connectivity | 4 | 4 read |
| Health (flagship) | uplink loss/latency RCA, network health score, config template drift | 3 | 3 read |
| Remediation | reboot, claim, remove, bind, unbind | 5 | 5 write (high) |
| update device, update VLAN | 2 | 2 write (medium) | |
| blink LEDs | 1 | 1 write (low) | |
| Undo | list recorded reversible writes | 1 | 1 read |
apply a recorded inverse (governed, single-use, dry_run) | 1 | 1 write (medium) |
network_health_score and config_template_drift are injected-only (they score data you already hold); uplink_loss_and_latency_rca accepts injected records for offline analysis, or pulls live from a configured target. Meraki device models carry a product-type prefix: MX appliance, MS switch, MR wireless AP, MV camera, MG cellular gateway.
Quick Install
uv tool install fabric-aiops
fabric-aiops init # interactive wizard: platform choice (meraki/catalyst/cvp/unifi) + encrypted secret
fabric-aiops doctor
When to Use This Skill
- Triage an organization (
overview): network count + device status/product rollup - Find the worst WAN uplinks (
health uplink-rca/uplink_loss_and_latency_rca): ranked by loss + latency with a likely cause and action - Score fleet health per network (
health score/network_health_score): a composite 0-100, worst first, every component shown - List/inspect organizations, networks, devices (by model), and clients
- Reboot/blink a device, update device or VLAN attributes (reversible), claim/remove devices, or bind/unbind a config template — all with dry-run + double-confirm
Do NOT use when the target is OT/industrial equipment (use industrial-aiops), a hypervisor, a storage appliance, a backup product, a container cluster, or device-level CLI/SSH network automation.
Related Skills — Skill Routing
| If the user wants… | Use |
|---|---|
| Cisco Meraki fabric: uplinks, health, config templates, device lifecycle | fabric-aiops (this skill) |
| Cisco Catalyst Center (DNA Center): site/device/client health, issues, inventory | fabric-aiops (this skill, platform: catalyst) |
| Arista CloudVision Portal: inventory, compliance drift signal, events | fabric-aiops (this skill, platform: cvp) |
| UniFi Network (self-hosted controller / UniFi OS console): site health, alarms, clients, device restart | fabric-aiops (this skill, platform: unifi) |
| OT / industrial edge (Modbus, OPC-UA, PLC, PROFINET) | the industrial-aiops line |
| Hypervisor VM lifecycle (power, snapshot, migrate) | a hypervisor ops skill |
| Container/cluster lifecycle | a cluster ops skill |
Common Workflows
"The branch VPN keeps dropping" — diagnose degraded WAN uplinks
fabric-aiops health uplink-rca→ worst MX WAN uplinks ranked by avg loss + latency, each citing the measured numbers plus a likely cause and actionfabric-aiops health uplink-rca --loss-pct 2 --latency-ms 100→ tighten the thresholds if nothing crosses the defaults but users still complainfabric-aiops device uplinks→ the raw per-appliance uplink statuses across the org (WAN1/WAN2, active vs failover) behind the ranking — confirm the flagged appliance rather than trusting the summaryfabric-aiops network alerts→ check whether the controller already raised a matching alert (independent corroboration before you touch anything)- Failure branch: if the RCA returns no uplink records at all, the org has no appliances reporting uplink telemetry, or the API key lacks org-wide read — run
fabric-aiops doctorand re-check the org id withfabric-aiops org listrather than assuming the WAN is healthy.
Rank the fleet and fix the worst network's device attributes (reversible)
fabric-aiops overview→ org-level rollup: network count and device status/product mixfabric-aiops health score→ composite 0-100 per network, worst first, with every scoring component shownfabric-aiops org device-statuses→ find the offline/alerting devices dragging the worst network's scorefabric-aiops device status→ confirm the device before changing itfabric-aiops remediate update-device '{"name":"branch-ap-01"}' --dry-run→ preview the exactPUT /devices/call; then run without--dry-run(double confirmation). The real before-state is fetched first and recorded as a faithful inverse- Failure branch: wrong attribute or wrong device —
fabric-aiops undo list, thenfabric-aiops undo applyrestores the captured prior attributes. Re-runfabric-aiops device statusto confirm the restore landed rather than trusting the undo's success message.
Bring a drifted network back to its config template (reversible)
fabric-aiops network list→ the networks in scope and their ids- Pass the template plus its bound networks to
config_template_drift(template=..., networks=[...])→ the settings that deviate, per network fabric-aiops network vlans→ confirm the drifted VLAN's current values before changing anything- Fix the specific setting —
fabric-aiops remediate update-vlan '{"name":"data"}' --dry-run, then for real — or re-establish the binding itself:fabric-aiops remediate bind --dry-run, then without--dry-run(double confirmation). Both capture the real before-state and record an inverse descriptor (forbind, the inverse is unbind or a rebind to the prior template) - Failure branch: if the rebind makes things worse,
fabric-aiops undo applyreturns the network to its captured prior binding;fabric-aiops remediate unbindis the manual escape hatch. Re-runconfig_template_driftto confirm the drift actually cleared instead of trusting the write's success message.
Stage a replacement device into a branch network
fabric-aiops device inventory→ confirm the replacement serial is in the org inventory and unassignedfabric-aiops network get→ confirm the target networkfabric-aiops remediate claim --dry-run→ previewPOST /networks//devices/claim; then run for real (double confirmation) — the inverse (remove from network) is recordedfabric-aiops remediate blink-leds --duration 30→ low-risk physical confirmation that you are at the right box in the rackfabric-aiops health score→ confirm the network's score recovers once the device reports in- Failure branch: wrong network —
fabric-aiops undo applyorfabric-aiops remediate remove. Notefabric-aiops remediate rebootisno undoby construction (a reboot has no safe inverse); it records only the before-state, so use it last, not as a first response.
Offline analysis (no live controller)
- Export the org's uplink, device-status, and template data to JSON
- Feed it straight to the analysis tools —
uplink_loss_and_latency_rca(records=[...]),network_health_score(device_statuses=[...]),config_template_drift(template=..., networks=[...])— no connection or credentials required - Failure branch: a tool that rejects the injected records means the export is missing fields the analysis needs (loss/latency samples, device status, template settings) — re-export rather than hand-editing, so the findings stay traceable to the controller.
Governance & Safety
The skill delivers reads and writes and records them; it does not decide whether a write is permitted. That is your agent's judgement, or the permission of the account you connect it with (a Meraki API key whose admin has read-only organization access — writes then fail at the controller). There is no read-only switch, policy file, or approval gate.
- Audit is the guarantee, and it is not bypassable. Every operation — MCP and CLI alike — is logged to
~/.fabric-aiops/audit.db(relocatable viaFABRIC_AIOPS_HOME): params, result, status, duration, and the risk tier. The CLI writes the same row the MCP path does. FABRIC_AUDIT_APPROVED_BY/FABRIC_AUDIT_RATIONALEare optional annotations recorded on the audit row (who/why); they are never required and never block.- Runaway guard — a safety backstop, not authorization: the same call looped in a tight window trips a circuit breaker. Disable with
FABRIC_RUNAWAY_MAX=0. - Destructive writes support
--dry-run/dry_run=Trueand double confirmation at the CLI. - Mutating/reversible writes fetch the real before-state and record an inverse descriptor (
update_device/update_network_vlan→restore prior values,claim↔remove,bind↔unbind/rebind); irreversible ops (reboot_device,blink_device_leds) record only the before-state.
References
references/capabilities.md— full tool + field referencereferences/cli-reference.md— CLI command referencereferences/setup-guide.md— onboarding, credentials, and connectivity
相关技能
Cisco Meraki (meraki.cisco.com). Use this skill for ANY Cisco Meraki request — searching and reading data. Whenever a task involves Cisco Meraki, use this skill instead of calling the API directly.
Use this skill whenever the user needs to operate a managed-endpoint fleet (thin clients, VDI endpoints, centrally-managed devices) — a one-shot fleet health overview, endpoint inventory (list/get), a composite per-endpoint health score (which endpoints are worst?), login & boot sessions, login-storm analysis (detect morning login storms and rank the slowest login/boot contributors), patch/config drift (which endpoints deviate from the fleet baseline), and two guarded writes (assign a config profile, reboot an endpoint). Always use this skill for "endpoint fleet overview", "list managed endpoints", "which endpoints are worst", "endpoint health score", "rank endpoints by risk", "why is login slow this morning", "login storm", "boot time analysis", "patch drift", "config drift", "which endpoints are behind on patches", "assign a profile to an endpoint", or "reboot a thin client" when the context is an endpoint-management fleet. Do NOT use when the target is OT / industrial equipment (Mod
Use this skill whenever the user needs to operate an OPNsense or pfSense firewall — a one-shot overview, firmware/health, interfaces and gateways, firewall rules with hit-counts and shadow analysis, NAT (port-forward/outbound/1:1), aliases and their entries, VPN (WireGuard/OpenVPN/IPsec), DHCP leases and static mappings, the firewall log and state table, three flagship RCAs (gateway health, rule hit/shadow, blocked traffic), and governed writes (toggle a rule, add/remove an alias entry, kill states, restart a service, apply/reconfigure to make edits live, reboot). Always use this skill for "OPNsense", "pfSense", "firewall rule", "port forward", "NAT", "alias", "WireGuard", "OpenVPN", "IPsec", "DHCP lease", "firewall log", "blocked traffic", "why is my WAN down", "gateway loss/latency", "unused / shadowed rules", "apply firewall changes", "reboot the firewall" when the context is an OPNsense/pfSense firewall. Do NOT use when the target is something other than an OPNsense/pfSense firewal
Use this skill whenever the user needs to operate a network / infrastructure monitoring NOC on SolarWinds Orion (SWIS REST + SWQL), Paessler PRTG (web API), or Zabbix 6.x/7.x (JSON-RPC) — a one-shot NOC overview, canned SWQL answers (nodes down, flapping interfaces, muted, high-CPU nodes, full volumes, unmanaged/scheduled), a validated read-only SWQL passthrough, deduped/rolled-up active alerts, SolarWinds node/interface/volume/application health and top-N, PRTG sensors/devices/groups/history/alarms, Zabbix problems/hosts/host-groups/triggers/events/item-history/maintenances, and guarded writes (acknowledge, mute/unmute, schedule maintenance, unmanage/remanage, remove node, pause/resume sensor, create/delete Zabbix maintenance window). Always use this skill for "SolarWinds", "Orion", "SWQL", "THWACK question", "PRTG", "Paessler", "Zabbix", "Zabbix problem", "Zabbix trigger", "Zabbix maintenance", "NOC overview", "which nodes are down", "flapping interfaces", "interface flap storm", "al
用同一个 CLI 管理 UniFi:集成 API、Session API、Site Manager 云端 API 与 WebSocket 事件流。