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),…
Hands-on Cisco Meraki diagnostics: the async live-tools pattern (ping, cable test, throughput, wake-on-LAN, ARP/MAC tables) that rides the meraki_raw_request passthrough because live tools are not curated tools, plus device reboots and uplink/connectivity checks.
$ npx -y skills add wyre-technology/msp-claude-plugins --skill troubleshooting --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/troubleshootingContext preview
The summary Claude sees to decide when to auto-load this skill.
Hands-on Cisco Meraki diagnostics: the async live-tools pattern (ping, cable test, throughput, wake-on-LAN, ARP/MAC tables) that rides the meraki_raw_request passthrough because live tools are not curated tools, plus device reboots and uplink/connectivity checks.
name: "Meraki Troubleshooting" description: > Hands-on Cisco Meraki diagnostics: the async live-tools pattern (ping, cable test, throughput, wake-on-LAN, ARP/MAC tables) that rides the meraki_raw_request passthrough because live tools are not curated tools, plus device reboots and uplink/connectivity checks. when_to_use: >- When troubleshooting Meraki connectivity -- running live tools like ping and cable test via raw_request, rebooting devices, and checking uplinks. Use when: meraki troubleshoot, meraki ping, cable test, meraki live tools, meraki throughput, device unreachable, meraki connectivity, wan down, packet loss, or port not working.
Meraki's **live tools** run diagnostics on demand from a device against a target -- ping, cable test, throughput test, wake-on-LAN, ARP table, and more. These are **not curated MCP tools**; they ride the `meraki_raw_request` passthrough because they map to dozens of endpoints under `/devices/{serial}/liveTools/...`. This skill covers the async live-tools pattern, plus reboots (`meraki_devices_reboot`) and uplink checks for a complete connectivity-triage toolkit.
Meraki device on the customer LAN, which cannot tell you what the internet sees. External uptime checking is `betterstack-monitors`.
use `atera` or `ncentral`.
result; interface history and utilisation over time are `auvik-networks`.
— use `meraki-security-appliance`.
The 27 curated tools cover inventory, config, and status. Live tools are transient diagnostics with an async job lifecycle and a long tail of endpoint variants -- wrapping each one individually adds little value. Instead, invoke them through `meraki_raw_request`, which reaches any Dashboard API v1 path directly.
Every live tool follows the same two-phase lifecycle:
1. **Create the job (POST).** Returns a `liveToolsId` (often just `id`) and a `status` of `new` or `ready`, plus a `url` to poll. 2. **Poll for results (GET).** Re-fetch the job URL until `status` is `complete` (or `failed`), then read the results block.
# Phase 1 -- start a ping
meraki_raw_request
method: POST
path: /devices/{serial}/liveTools/ping
body: { "target": "8.8.8.8", "count": 5 }
# -> { "pingId": "abc123", "status": "ready", "url": ".../liveTools/ping/abc123" }
# Phase 2 -- poll until complete
meraki_raw_request
method: GET
path: /devices/{serial}/liveTools/ping/abc123Poll with a short delay between attempts; most tools complete within a few seconds. Respect the ~10 req/s per-org rate limit while polling.
POST /devices/{serial}/liveTools/ping
body: { "target": "<ip-or-host>", "count": 5 }
GET /devices/{serial}/liveTools/ping/{pingId}Results include `sent`, `received`, `loss.percentage`, and per-`latencies` (min/avg/max). Use to confirm reachability and measure packet loss / latency from a device.
POST /devices/{serial}/liveTools/pingDevice
GET /devices/{serial}/liveTools/pingDevice/{id}Pings the device itself from the Dashboard cloud -- confirms the device's own reachability.
POST /devices/{serial}/liveTools/cableTest
body: { "ports": ["1", "2"] }
GET /devices/{serial}/liveTools/cableTest/{id}Reports per-pair cable status (`ok`, `open`, `short`, `crosstalk`) and estimated length. Use to diagnose bad runs, patch issues, or link-down ports on MS switches.
POST /devices/{serial}/liveTools/throughputTest
GET /devices/{serial}/liveTools/throughputTest/{id}Measures achievable throughput from the device -- useful when a site reports "slow internet."
POST /devices/{serial}/liveTools/wakeOnLan
body: { "vlanId": 10, "mac": "00:11:22:33:44:55" }Sends a WoL magic packet from an MX/MS to wake a downstream host.
POST /devices/{serial}/liveTools/arpTable
POST /devices/{serial}/liveTools/macTableSnapshot the device's current ARP or MAC address table -- helps locate where a host or MAC is connected.
meraki_devices_reboot serial: Q2XX-XXXX-XXXX
A reboot is the blunt-instrument fix. Warn the user first if the target is an MX appliance or a core MS switch -- rebooting interrupts the whole site.
meraki_raw_request
method: GET
path: /networks/{networkId}/appliance/uplinks/statusesShows WAN1/WAN2/cellular interface state (`active`, `ready`, `failed`, `not connected`). For an org-wide view:
meraki_raw_request
method: GET
path: /organizations/{organizationId}/appliance/uplink/statusesmeraki_raw_request
method: GET
path: /organizations/{organizationId}/devices/statuses1. Check the MX uplink status: raw_request GET `/networks/{networkId}/appliance/uplinks/statuses` 2. If a WAN is `failed`/`not connected`, the ISP or WAN link is the issue -- escalate to the carrier 3. If uplinks look healthy, run `pingDevice` against the MX to confirm cloud reachability 4. Confirm device online/offline via the org device statuses endpoint
1. Start a `ping` from the site's MX to `8.8.8.8` -- confirms the site's egress works 2. Ping the specific host's IP from the MX -- confirms LAN reachability 3. Snapshot the `arpTable` to verify the host is actually learned on the net
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…