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),…
Forward-looking hardware refresh planning: combining warranty expiration, EOL/EOS timing, and device age from whatever RMM and documentation platforms are connected into replace-now / plan-this-year / monitor tiers, laying those tiers onto a dated calendar, surfacing replacement
$ npx -y skills add wyre-technology/msp-claude-plugins --skill refresh-cycle-planning --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/refresh-cycle-planningContext preview
The summary Claude sees to decide when to auto-load this skill.
Forward-looking hardware refresh planning: combining warranty expiration, EOL/EOS timing, and device age from whatever RMM and documentation platforms are connected into replace-now / plan-this-year / monitor tiers, laying those tiers onto a dated calendar, surfacing replacement
name: "Refresh Cycle Planning" description: > Forward-looking hardware refresh planning: combining warranty expiration, EOL/EOS timing, and device age from whatever RMM and documentation platforms are connected into replace-now / plan-this-year / monitor tiers, laying those tiers onto a dated calendar, surfacing replacement clusters, and keeping an explicit insufficient-data bucket. Planning only — not quoting or procurement. when_to_use: >- When building a forward-looking hardware refresh calendar or deciding which devices need replacing this year versus later. Use when: refresh planning, hardware refresh calendar, what needs replacing, capital planning for hardware, replacement schedule, budget for new hardware, which devices to replace next.
Most MSPs discover a hardware refresh need reactively: a device fails, or a client gets stuck on an OS that just hit end-of-support with no migration path, and the replacement conversation happens under time pressure with no budget lead time. This skill exists to move that conversation earlier — by combining three signals that are each individually useful but collectively much stronger — into a forward-looking calendar the account team can use in a quarterly business review or a capital-planning conversation, well before any of the underlying risk becomes urgent.
The three input signals, each covered by a sibling skill:
1. **Warranty expiration** (`warranty-tracking`) — when hardware coverage lapses. 2. **EOL/EOS timing** (`eol-eos-flagging`) — when the OS or hardware itself stops being supported. 3. **Device age** — how long the device has been in service, pulled from RMM first-seen/enrollment date or purchase date where available.
No single signal is sufficient on its own. A device can be young with an expired warranty (a warranty that was never worth much to begin with on a low-end model), old but still fully supported and under an extended warranty, or mid-life but running an OS that's about to lose support regardless of hardware condition. This skill's job is to weigh all three together into one defensible tier per device, not to rank on whichever signal happens to be loudest.
This is not a procurement or quoting skill — it produces a planning calendar and tiered priority list, not a purchase order. Handing the output to a quoting/sales workflow (e.g. `sales-pack`) or a PSA opportunity is a separate, deliberate next step, not something this skill does automatically.
goals, QBR meetings, and budget forecasting; use `scalepad-lifecycle-manager` rather than rebuilding its calendar here.
`connectwise-cpq-quotes`, or `kaseya-quote-manager-quotes`; this skill produces a tiered calendar and device counts, never a dollar figure.
Never assume which RMM or documentation platform is connected:
1. Call `conduit__search_tools` to discover connected RMM(s) (for device inventory, age, and warranty/lifecycle fields) and documentation platforms (IT Glue, Hudu — for warranty fallback data and, where tracked, purchase-date/asset records). 2. Cover all connected RMMs if more than one is present. 3. Only call concrete tools that discovery actually returned.
Bucket every device into exactly one of three tiers. State the reasoning per device — a tier assignment without a visible rationale isn't actionable for whoever has to defend the capital ask.
| Tier | Criteria (any one is sufficient to qualify; more than one raises confidence) | What it means | |---|---|---| | **Replace now** | Warranty already expired on a high-criticality device, OR OS/hardware already past EOS, OR device age is well beyond the org's typical refresh cycle (commonly 4-5 years for desktops/laptops, longer for servers — use the org's own documented policy if known, otherwise state the assumption) with an additional risk signal present | Active risk today — should move to procurement discussion this cycle, not wait for the next planning window | | **Plan this year** | Warranty expiring within the next 6-12 months, OR OS/hardware approaching EOS within the next 6-12 months, OR device age approaching the typical refresh threshold without an immediate second risk signal | Not urgent today, but should be budgeted and scheduled within the current planning year so it doesn't slide into "replace now" under time pressure | | **Monitor** | None of the above thresholds met — warranty and EOL/EOS both comfortably out, device age within normal range | No action needed; keep it in the sweep for the next planning cycle |
Devices with insufficient data on all three signals (no warranty data, no resolvable EOL/EOS status, no age data) go into an explicit **insufficient data** bucket — never default an unknown device into "monitor," since that silently hides a coverage gap as if it were a clean bill of health.
Once devices are tiered, lay them out on a forward timeline rather than just three flat lists:
1. For **replace now** devices, no date is needed — they're already actionable. 2. For **plan this year** devices, attach the specific driving date (the warranty expiration date or EOL/EOS date that put them in this tier) so the calendar shows *when* in the year the pressure actually lands, not just that it lands sometime this year. 3. Group by month or quarter where enough devices share a similar window — this is what makes the output a "calendar" rather than a list, and lets an account team see clustering (e.g., "40 devices from the 2021 refresh batch all cross warranty expiration in Q3"). 4. Note any clustering explicitly — a cluster is itself a planning signal (batch replacement often gets better vendor pricing th
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…