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),…
The Blumira finding lifecycle: status and severity codes, resolution types, list filtering, enriched detail retrieval, assignment, and comment threads.
$ npx -y skills add wyre-technology/msp-claude-plugins --skill findings --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/findingsContext preview
The summary Claude sees to decide when to auto-load this skill.
The Blumira finding lifecycle: status and severity codes, resolution types, list filtering, enriched detail retrieval, assignment, and comment threads.
name: "Blumira Findings" description: > The Blumira finding lifecycle: status and severity codes, resolution types, list filtering, enriched detail retrieval, assignment, and comment threads. when_to_use: >- When triaging, investigating, assigning, commenting on, or resolving Blumira security detections. Use when: blumira finding, blumira alert, blumira detection, security finding, triage finding, resolve finding, or finding status.
Findings are Blumira's primary security detection unit — they represent threats, suspicious activity, or policy violations detected across your environment. This skill covers the full finding lifecycle from discovery through resolution.
an `/org/*` call scoped to the credential's own organization. With MSP credentials these return 403 or an empty set; use `blumira-msp` and its `blumira_msp_findings_*` equivalents.
resolve *call* is here, but the disposition semantics and their effect on detection tuning are `blumira-resolutions`.
and "detection" are shared vocabulary. Use `huntress-incidents`, `sentinelone-alerts`, `blackpoint-incident-response`, or `cipp-alerts` depending on which platform raised it.
kill, or block action; resolving a finding is a bookkeeping change only. Response happens in the EDR or firewall.
| Status Code | Label | Description | |-------------|-------|-------------| | 10 | Open | New, unreviewed finding | | 20 | In Progress | Under investigation | | 30 | Resolved | Closed with a resolution |
Findings have severity levels (e.g., LOW, MEDIUM, HIGH, CRITICAL) that indicate the potential impact. Always triage CRITICAL and HIGH findings first.
When resolving a finding, you must specify a resolution type:
| Resolution Code | Label | Use When | |----------------|-------|----------| | 10 | Valid | Confirmed real threat, action was taken | | 20 | Not Applicable | Finding doesn't apply to this environment | | 30 | False Positive | Detection was incorrect |
blumira_findings_list status.eq=10 # Open findings only severity.in=HIGH,CRITICAL order_by=-created # Most recent first page_size=25
blumira_findings_get finding_id=<UUID>
blumira_findings_details finding_id=<UUID>
The `details` endpoint returns enriched data including related context, evidence, and recommended actions.
blumira_findings_resolve finding_id=<UUID> resolution_type=10 # Valid notes="Confirmed brute force attempt. Blocked source IP in firewall."
blumira_findings_assign finding_id=<UUID> user_id=<UUID>
blumira_findings_comments_list finding_id=<UUID>
blumira_findings_comments_add finding_id=<UUID> comment="Investigating source IP. Checking firewall logs for correlation."
1. `blumira_findings_list` with `status.eq=10` and `order_by=-severity` 2. Review CRITICAL and HIGH findings first 3. For each finding, use `blumira_findings_details` to get context 4. Assign to an analyst with `blumira_findings_assign` 5. Add investigation notes with `blumira_findings_comments_add`
1. `blumira_findings_get` to retrieve the finding 2. `blumira_findings_details` for enriched context and evidence 3. `blumira_findings_comments_list` to review prior investigation notes 4. Add findings with `blumira_findings_comments_add` 5. Resolve when investigation is complete
1. `blumira_findings_list` with filters matching the batch (e.g., same detection rule) 2. Review a representative sample to confirm the resolution applies 3. Resolve each with `blumira_findings_resolve` and appropriate resolution type 4. Document the rationale in the notes field
blumira_findings_list created.gt=2025-01-01 created.lt=2025-02-01 status.eq=10
**Cause:** Invalid finding ID or finding not accessible in current org scope **Solution:** Verify the finding ID. If using MSP credentials, use `blumira_msp_findings_get` instead.
**Cause:** Resolution type not provided or invalid **Solution:** Provide a valid resolution type: 10 (Valid), 20 (Not Applicable), or 30 (False Positive).
**Cause:** User ID doesn't exist or isn't a member of the organization **Solution:** Use `blumira_users_list` to get valid user IDs.
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…