From pagerduty
Manages PagerDuty incidents: listing, triaging, creating, updating, resolving, investigating. Covers lifecycle stages, urgency levels, alerts, notes, logs, patterns, MSP workflows.
npx claudepluginhub wyre-technology/msp-claude-plugins --plugin pagerdutyThis skill uses the workspace's default tool permissions.
Incidents are the core resource in PagerDuty — created automatically from alert rules, event orchestrations, or manually by responders. They represent an active service disruption that requires acknowledgment and resolution. For MSPs, PagerDuty incidents typically represent internal infrastructure issues or customer-impacting events routed from monitoring integrations (Datadog, CloudWatch, Nagi...
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Calculates TAM/SAM/SOM using top-down, bottom-up, and value theory methodologies for market sizing, revenue estimation, and startup validation.
Incidents are the core resource in PagerDuty — created automatically from alert rules, event orchestrations, or manually by responders. They represent an active service disruption that requires acknowledgment and resolution. For MSPs, PagerDuty incidents typically represent internal infrastructure issues or customer-impacting events routed from monitoring integrations (Datadog, CloudWatch, Nagios, etc.).
PagerDuty has 14 MCP tools for incident management — more than any other domain.
| Tool | Description | Key Parameters |
|---|---|---|
list_incidents | List incidents with filters | statuses[], urgencies[], service_ids[], team_ids[], since, until |
get_incident | Get full incident details | id (required) |
create_incident | Create a new incident | title, service.id, urgency, body.details |
update_incident | Update incident fields | id, status, priority, urgency, title, assignments[] |
merge_incidents | Merge duplicate incidents | id (target), source_incidents[] |
snooze_incident | Snooze for a duration | id, duration (seconds) |
manage_incidents | Bulk update multiple incidents | incidents[] with individual update payloads |
| Tool | Description | Key Parameters |
|---|---|---|
list_incident_alerts | Alerts that triggered this incident | id |
list_incident_notes | Comments and notes on the incident | id |
create_incident_note | Add a note to an incident | id, note.content |
list_incident_log_entries | Full audit trail of events | id, include[] |
list_past_incidents | Find historically similar incidents | id (finds similar to this incident) |
| Tool | Description |
|---|---|
get_incident_field_values | Read custom field values |
set_incident_field_values | Write custom field values |
┌───────────┐ Alert fires ┌──────────────┐ Responder acts ┌───────────┐
│ triggered │ ──────────────> │ acknowledged │ ──────────────────> │ resolved │
└───────────┘ └──────────────┘ └───────────┘
│
│ Nobody acks within escalation timeout
▼
[Escalates to next layer in escalation policy]
| Status | Description |
|---|---|
triggered | Alert fired; awaiting acknowledgment |
acknowledged | Responder is working on it; escalation paused |
resolved | Incident is over; service restored |
| Urgency | Description | Notification Behavior |
|---|---|---|
high | Critical service impact; requires immediate response | Phone, SMS, push |
low | Non-critical; informational or degraded state | Email, push only |
Priorities are account-configured (P1–P5 is common). Priority is separate from urgency:
list_incident_alerts shows you which monitoring signals triggered an incident.
| Field | Type | Description |
|---|---|---|
id | string | Unique incident ID |
incident_number | integer | Human-readable number (#342) |
title | string | Short summary of the incident |
status | string | triggered / acknowledged / resolved |
urgency | string | high / low |
priority | object | Account-configured priority (P1–P5) |
service | object | The service this incident belongs to |
assignments | array | Responders currently assigned |
escalation_policy | object | Escalation policy in effect |
created_at | datetime | When the incident was created |
resolved_at | datetime | When it was resolved (null if open) |
body.details | string | Incident description/details |
alert_counts.triggered | integer | Number of triggered alerts |
list_incidents with statuses[]=triggered&statuses[]=acknowledged, sorted by created_at deschigh urgency firstget_incident for full detailslist_incident_alerts to understand the triggering signallist_past_incidents on the incident ID to find similar historical eventscreate_incident_note with your investigation stepsget_incident to get full details (service, escalation policy, assignments)list_incident_alerts to see what monitoring signals firedlist_past_incidents — this uses AI to find similar past incidents and their resolutionslist_incident_log_entries for the full audit trail of notifications and escalationsupdate_incident with status=acknowledgedAfter a maintenance window resolves multiple incidents:
list_incidents with statuses[]=triggered&statuses[]=acknowledged filtered to the affected servicemanage_incidents with all incident IDs and status=resolvedcreate_incident_notePagerDuty incidents often need to be tracked in a PSA for billing/SLA reporting:
#342) in the PSA ticket body for cross-referencehigh → Critical/High, low → Medium/Lowlist_incident_log_entries to extract total response time for SLA trackingWhen the same root cause fires multiple incidents:
merge_incidents with the primary incident id and the IDs of the duplicates in source_incidents[]| Error | HTTP Code | Resolution |
|---|---|---|
| Invalid token | 401 | Use Token token=<key> format — NOT Bearer |
| Incident not found | 404 | Verify ID; use list_incidents to find valid IDs |
| Service not found | 404 | Verify service ID with list_services |
| Status conflict | 409 | Incident may already be resolved; check current status |
| Rate limited | 429 | Back off 60 seconds; PagerDuty limits 900 req/min |
list_past_incidents — PagerDuty's AI similarity search often surfaces the exact runbook neededcreate_incident_note builds a shared investigation timelinesince/until for reports — Unbounded queries on large accounts are slow