Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Triage Claroty xDome alerts and vulnerabilities, compute blast radius, correlate with NVD CVE data, and drive ITSM-gated workflow actions (acknowledge, label, assign, set relevance).
.claude/skills/automateyournetwork-claroty-risk-triage/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | 27% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 393% | 0% |
| case-20 | ✗→✓ | ▲ Improved | 5% | 0% |
| case-04 | ✓→✗ | ▼ Worse | 83% | 0% |
| case-12 | ✓→✓ | = Same ✓ | 31% | 0% |
Unified alert + vulnerability triage for OT / IoT / IoMT environments via Claroty xDome. Alerts and vulnerabilities are bundled into one skill because real incident response crosses the boundary constantly — operators investigate an alert, pivot to the affected device's CVE list, and back to the alert label.
ise-incident-response for endpoint quarantine or to servicenow-change-workflow for a remediation CRclaroty-mcppython3 -u mcp-servers/claroty-mcp/claroty_mcp_server.py (stdio transport)CLAROTY_API_TOKENCHG\d+ CR; bypassed in NETCLAW_LAB_MODE=true| Tool | Parameters | What It Does | |------|------------|--------------| | list_alerts | severity?, status?, site_id?, assignee?, limit?, offset?, max_items? | List security alerts with filters | | get_alert_with_devices | alert_id, device_limit? | Alert + affected devices in one call | | list_vulnerabilities | severity?, cvss_min?, cve_contains?, limit?, offset?, max_items? | List CVE-aligned findings | | get_vulnerable_devices | vulnerability_id, limit?, offset? | Devices affected by one CVE (blast radius) | | acknowledge_alert | alert_id, resolution, cr_number, note? | Write (ITSM-gated) — set resolution state | | set_vulnerability_relevance | device_id, vulnerability_id, relevant, cr_number, note? | Write (ITSM-gated) — suppress / re-enable CVE on a device | | label_alerts | alert_ids, labels, cr_number, replace? | Write (ITSM-gated) — apply / replace labels | | assign_alerts | alert_ids, assignee, cr_number, note? | Write (ITSM-gated) — assign alerts to a user / queue |
Compose with:
nvd_get_cve from the nvd-cve skill for full CVSS vector decompositionise-incident-response skill for endpoint quarantineservicenow-change-workflow skill to open a remediation CR if the alert demands a config change"List all open high-severity alerts at site warehouse-east"Calls list_alerts(severity="high", status="open", site_id="warehouse-east"). Returns severity-sorted alert table.
"Show me alert a1b2c3 and every device it touches"Calls get_alert_with_devices(alert_id="a1b2c3") and renders the alert metadata plus affected devices. From there, pivot to list_vulnerabilities filtered by site to understand combined risk.
"What devices are vulnerable to CVE-2024-12345? Correlate with NVD for full context."list_vulnerabilities(cve_contains="2024-12345") → xDome finding ID.get_vulnerable_devices(vulnerability_id="<id>") → affected device list.nvd_get_cve(cve_id="CVE-2024-12345") (nvd-cve skill) → CVSS vector, references, fix availability.list_devices with cross-reference to Nautobot to confirm criticality."Mark CVE-2024-12345 as not-relevant for device 7a2c (mitigated by network ACL) under CHG0013001"Calls set_vulnerability_relevance(device_id="7a2c...", vulnerability_id="<id>", relevant=False, cr_number="CHG0013001", note="mitigated by network ACL").
"Label alerts [a1, a2, a3] as 'ransomware-candidate' and assign to alice under CHG0013002"label_alerts(alert_ids=[...], labels=["ransomware-candidate"], cr_number="CHG0013002").assign_alerts(alert_ids=[...], assignee="alice", cr_number="CHG0013002")."Acknowledge alert a1b2c3 as resolved with a note pointing at CHG0013001's evidence"Calls acknowledge_alert(alert_id="a1b2c3", resolution="resolved", cr_number="CHG0013001", note="...").
Identical to other Claroty write tools: CHG\d+ format, ServiceNow "Implement" state check (skipped in lab mode). Rejected gate returns {"itsm_gate": {...}, "applied": false} and the xDome write is not made.
If a Claroty alert resolves to "compromised endpoint", do NOT call ISE quarantine from inside this skill. Hand off to ise-incident-response per Principle XIV (human-in-the-loop for external actions). That skill enforces the human decision point before any quarantine action.
If a write tool returns applied: false and an error object with status_code: 403, the ITSM gate passed and the body was correctly built — xDome rejected at RBAC. The token in CLAROTY_API_TOKEN lacks write scope on the relevant resource (alerts for acknowledge_alert/label_alerts/assign_alerts; vulnerabilities for set_vulnerability_relevance). Don't retry — escalate to whoever provisions xDome API tokens. The wrapper surfaces xDome's response body verbatim so you can see exactly which scope is missing.
Other measured skills in the registry, with their headline benchmark lift.