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),…
Detecting configuration drift against an established baseline: CIPP standards checks and Best Practice Analyser results, Liongard change detections and inspection timelines, the three conditions that make a diff real drift rather than noise, the signals that separate intentional
$ npx -y skills add wyre-technology/msp-claude-plugins --skill standards-drift --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/standards-driftContext preview
The summary Claude sees to decide when to auto-load this skill.
Detecting configuration drift against an established baseline: CIPP standards checks and Best Practice Analyser results, Liongard change detections and inspection timelines, the three conditions that make a diff real drift rather than noise, the signals that separate intentional
name: "Standards Drift Detection" description: > Detecting configuration drift against an established baseline: CIPP standards checks and Best Practice Analyser results, Liongard change detections and inspection timelines, the three conditions that make a diff real drift rather than noise, the signals that separate intentional or authorized change from unauthorized weakening (ticket correlation, reversion pattern, direction of change), and the priority order for ranking several drift findings at once. when_to_use: >- When comparing current tenant or infrastructure state against a known-good baseline, when a standards check or inspection shows something changed, or when deciding which of several drift findings is most urgent. Use when: control drift, configuration drift, standards drift, has anything changed, drift detection, baseline comparison, unauthorized change, what changed since last check, security drift.
A compliance control that was met last quarter is not guaranteed to still be met today. Tenants change constantly — a conditional access policy gets edited during a troubleshooting session and never reverted, a firewall rule gets loosened for a vendor's "temporary" remote session, a new admin account gets created without MFA during an emergency. None of this shows up unless something actively compares current state against a baseline. That comparison is what this skill covers.
Drift detection has two distinct data sources in this pack's grounding:
modes, BPA reports, and domain-health results are the connector's own surface; use `cipp-standards`. This skill decides whether a delta is real drift, whether it was authorized, and how it ranks against other findings.
severities, alert rules, and custom metrics live in `liongard-detections`.
baseline drift natively with its own alignment model; use `inforcer-baseline-alignment`.
Drift is any observed difference between the current state of a tracked control or configuration item and its last known-good (i.e., previously verified-compliant) state. Three things are required to call something drift rather than noise:
1. A **baseline** exists — a prior standards check that passed, or a prior Liongard inspection/detection that was reviewed and accepted. 2. A **current observation** exists that differs from that baseline. 3. The difference is in a property that matters for compliance or security posture — not every diff Liongard surfaces is drift in the compliance sense (a device's uptime counter changing is not drift; a firewall rule set changing is).
If there is no established baseline (first-ever check, or the client has never had a standards check run), there is nothing to diff against — run the check, record the result as the new baseline, and say so rather than reporting phantom drift.
Not all drift is bad. A technician who disabled a conditional access policy to unblock a locked-out executive, then re-enabled it an hour later, produced drift that resolved itself. A vendor who was granted temporary elevated access for a migration and had it revoked on schedule is not a finding. The skill is in telling these apart from a policy that was quietly loosened and never restored, or a change nobody remembers authorizing.
Signals to check, in order of reliability:
When a drift pass surfaces multiple findings (common — a single re-run of `cipp__run_standards_check` against a client that hasn't been checked in months can return a dozen deltas), prioritize using this order:
1. **Security-weakening + unauthorized** — a control got weaker and there is no ticket or reversion explaining why. Always highest priority regardless of which framework it maps to. 2. **Security-weakening + authori
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…