api-patterns
3CX's native PBX MCP server: the per-PBX endpoint shape (every PBX is its own FQDN and its own OAuth authorization server — there is no shared mcp.3cx.com),…
Domotz network observation: the collector's topology graph, its own interfaces, detected IP conflicts, and the two SNMP surfaces — polled variables and custom sensors — with their history endpoints and the tools and error modes for each.
$ npx -y skills add wyre-technology/msp-claude-plugins --skill network --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/networkContext preview
The summary Claude sees to decide when to auto-load this skill.
Domotz network observation: the collector's topology graph, its own interfaces, detected IP conflicts, and the two SNMP surfaces — polled variables and custom sensors — with their history endpoints and the tools and error modes for each.
name: "Domotz Network" description: > Domotz network observation: the collector's topology graph, its own interfaces, detected IP conflicts, and the two SNMP surfaces — polled variables and custom sensors — with their history endpoints and the tools and error modes for each. when_to_use: >- When reading network topology, checking for IP conflicts, or pulling SNMP metrics and their history through Domotz agents. Use when: domotz network, snmp, network topology, ip conflict, duplicate ip, interface counters, snmp sensor, snmp variable, bandwidth counters, or snmp polling.
Domotz agents observe the network they sit on: they map how devices connect, detect addressing collisions, and poll SNMP-capable devices for operational metrics. Everything in this skill is read-only and scoped to one agent.
Domotz discovery is **passive and continuous** — the agent scans on its own schedule. There is no tool that triggers a scan on demand, so "rescan the network" is not an action available here; a fresh census means re-reading `domotz_devices_list` and comparing.
collector's own interfaces and SNMP counters, not switch port configuration. Meraki switch ports are `meraki-devices`.
port-probe tool. Synthetic service checks are `betterstack-monitors`.
`betterstack-monitors` or the ISP's own reporting.
site at a time; fleet-wide interface and utilisation history is `auvik-networks`.
monitoring, not security assessment; use `runzero`.
The agent builds a connectivity graph of the devices it has discovered — which device is reachable through which, and how the site hangs together. It is derived from what the collector can observe from its own vantage point, so it reflects one LAN, not a routed multi-site estate.
Domotz flags addressing collisions it observes — the same IP answering for more than one MAC. These are usually a static address colliding with a DHCP lease, and they present as intermittent, hard-to-reproduce faults.
Domotz has two separate SNMP lists per device, and they are not interchangeable:
a device as SNMP-capable (interface counters, system resources). Addressed by `variable_id`.
that device. Addressed by `sensor_id`.
Each has its own history endpoint. A `variable_id` will not resolve against the sensor history tool, or vice versa.
| Tool | Description | Arguments | |------|-------------|-----------| | `domotz_network_topology` | Connectivity graph for the agent's network | `agent_id` | | `domotz_network_interfaces` | Network interfaces on the **collector itself** | `agent_id` | | `domotz_network_ip_conflicts` | Detected IP address conflicts | `agent_id` | | `domotz_metrics_variables_list` | SNMP metrics/variables polled for a device | `agent_id`, `device_id` | | `domotz_metrics_variable_history` | Time series for one variable | `agent_id`, `device_id`, `variable_id` | | `domotz_metrics_snmp_sensors_list` | Custom SNMP sensors configured on a device | `agent_id`, `device_id` | | `domotz_metrics_sensor_history` | History for one custom sensor | `agent_id`, `device_id`, `sensor_id` |
All IDs are numbers. None of these tools takes a time range, a page, or a limit — history endpoints return whatever window Domotz retains, and you narrow it after the fact.
1. Call `domotz_metrics_variables_list` for the device to see what is actually being polled. 2. Identify the interface counters (`ifInOctets` / `ifOutOctets` style entries) and note their `variable_id`. 3. Call `domotz_metrics_variable_history` per variable. 4. Counters are cumulative — derive utilisation from the delta between samples and the interval, not from the raw value. 5. Flag interfaces trending toward capacity.
1. Call `domotz_metrics_snmp_sensors_list` for the device. 2. For any sensor of interest, call `domotz_metrics_sensor_history` with its `sensor_id`. 3. An empty sensor list means nobody configured custom sensors on that device — it does not mean SNMP is unavailable. Check `domotz_metrics_variables_list` before concluding the device is not polled.
1. Call `domotz_network_ip_conflicts` for the agent. 2. For each conflicting address, call `domotz_devices_list` and match on IP to identify which devices are involved. 3. Resolve at the DHCP scope or the statically-addressed device.
1. Call `domotz_network_topology` for the agent. 2. Cross-reference node IDs against `domotz_devices_list` for names, vendors, and status. 3. Identify the devices everything else depends on, and check their uptime with `domotz_devices_uptime`.
Treat the output as sensitive: a topology graph plus the device census is close to what an attacker would want for lateral movement. See `GOVERNANCE.md`, *Data handling*.
1. Call `domotz_devices_list` for the agent. 2. Compare against your previous snapshot, or sort by `first_seen`. 3. New entries appear as the agent's own scan cycle finds them — there is no way to force that cycle from here, so a device plugged in moments ago may not be present yet.
**Cause:** Device does not support SNMP, SNMP is not enabled, or the community string on the agent does not matc
One command to supercharge Claude Code for MSP workflows. Then restart Claude Code. That's it. Documentation: mcp.wyre.ai
Repo: wyre-technology/msp-claude-plugins
3CX's native PBX MCP server: the per-PBX endpoint shape (every PBX is its own FQDN and its own OAuth authorization server — there is no shared mcp.3cx.com),…
3CX's live-operations surface: read-only visibility into active calls, recordings, voicemail, department and queue membership, and forwarding/presence…
3CX's read-only directory surface: resolving a caller by email or by exact extension, searching the PBX's own phonebooks, searching contacts synced from an…
3CX's system-and-configuration surface: server time, PBX event log and application log search, service status, database schema and the read-only SELECT-only…
Abnormal Security abuse mailbox cases: user-reported email submissions, case statuses and judgments, the case lifecycle, bulk and remediation actions, and…
Abnormal Security message analysis: message retrieval, email header inspection, attachments, sender reputation, delivery context, and SPF/DKIM/DMARC…