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…
Rootly's incident-response automation model: workflow tasks (each with a concrete `task_type` like `create_slack_channel` or `page_rootly_on_call_responders`), the trigger-type/`triggers`-event structure (incident, post_mortem, action_item, alert, pulse, simple), the ID-list
Claude Code
$ npx -y skills add wyre-ai/msp-claude-plugins --skill workflows --agent claude-code
Codex
$ npx skills add wyre-ai/msp-claude-plugins --skill workflows -a codex -y
Cursor
$ npx skills add wyre-ai/msp-claude-plugins --skill workflows -a cursor -y
Gemini CLI
$ npx skills add wyre-ai/msp-claude-plugins --skill workflows -a gemini-cli -y
GitHub Copilot
$ npx skills add wyre-ai/msp-claude-plugins --skill workflows -a github-copilot -y
OpenCode
$ npx skills add wyre-ai/msp-claude-plugins --skill workflows -a opencode -y
Windsurf
$ npx skills add wyre-ai/msp-claude-plugins --skill workflows -a windsurf -y
name: "Rootly Workflows" description: > Rootly's incident-response automation model: workflow tasks (each with a concrete `task_type` like `create_slack_channel` or `page_rootly_on_call_responders`), the trigger-type/`triggers`-event structure (incident, post_mortem, action_item, alert, pulse, simple), the ID-list based condition/matching fields, and the `enabled` flag used to turn a workflow on or off (there is no separate enable/disable tool). when_to_use: >- When building, enabling, or auditing automated incident-response workflows. Use when: rootly workflow, automated workflow, workflow trigger, workflow action, incident automation, response automation, workflow condition, or runbook automation.
Rootly workflows automate repetitive incident response tasks. Each workflow has a trigger type (what kind of event starts it, e.g. `incident`, `post_mortem`, `action_item`, `alert`), a set of specific trigger events within that type (e.g. `incident_created`, `status_updated`), matching filters (which severities/services/environments/teams it applies to), and one or more **workflow tasks** -- each task carries a specific `task_type` such as `create_slack_channel`, `page_rootly_on_call_responders`, or `send_email`.
"Workflow" means automation *inside Rootly, fired by incident/alert/action-item/postmortem events*. Several neighbouring things share the word.
commands under `commands/*.md` are plugin authoring concerns, not Rootly resources. Nothing in this skill configures Claude.
notification rules inside a PSA are `connectwise-psa-tickets`, `halopsa-tickets`, or `autotask-tickets`.
workflows are a separate product surface; use `pagerduty-incidents` and `pagerduty-alerts`.
`datto-rmm-jobs`, not a Rootly action.
read from `list_workflow_runs`, not this skill's conceptual reference.
A `workflow` record has:
`trigger_params` is one of six shapes, selected by `trigger_type`:
| `trigger_type` | Fires on | |---|---| | `incident` | Incident lifecycle and field-change events | | `post_mortem` | Retrospective (postmortem) lifecycle events | | `action_item` | Action item lifecycle events | | `alert` | Alert events | | `pulse` | Pulse (recurring check) events | | `simple` | A minimal manual/generic trigger |
Each trigger type has its own `triggers` array of specific event names. Confirmed values include:
Rootly does not use a `severity_is` / `severity_gte` style condition object. Instead:
A workflow's actions are separate `workflow_task` records (see [Common Query Patterns](#api-patterns)), each with a `task_type`. Confirmed `task_type` values include:
| `task_type` | Description | |---|---| | `create_slack_channel` | Create a dedicated incident Slack channel | | `invite_to_slack_channel` | Add responders to a Slack channel | | `send_slack_message` | Post a message to a channel | | `page_rootly_on_call_responders` | Page via Rootly's own on-call/schedules | | `page_pagerduty_on_call_responders` / `page_opsgenie_on_call_responders` | Page via a connected paging tool | | `create_jira_issue` | Create a tracking issue in Jira | | `send_email` | Send email notification | | `create_zoom_meeting` | Start a video bridge for the incident | | `http_client` | Call a custom HTTP endpoint (Rootly's generic webhook action) | | `add_role` | Assign an incident role | | `update_status` | Change the incident's status | | `update_incident` | Modify incident fields | | `create_incident_postmortem` / `update_incident_postmortem` | Create or update the incident's retrospective (see [postmortems](../postmortems/SKILL.md)) |
This is a representative subset -- Rootly's OpenAPI spec defines well over 100 task
One command to supercharge Claude Code for MSP workflows. Then restart Claude Code. That's it. Documentation: mcp.wyre.ai
3CX's native PBX MCP server: the per-PBX endpoint shape (every PBX is its own FQDN and its own OAuth authorization server — there…
3CX's live-operations surface: read-only visibility into active calls, recordings, voicemail, department and queue membership,…
3CX's read-only directory surface: resolving a caller by email or by exact extension, searching the PBX's own phonebooks,…
3CX's system-and-configuration surface: server time, PBX event log and application log search, service status, database schema…
Abnormal Security abuse mailbox cases: user-reported email submissions, case statuses and judgments, the case lifecycle, bulk and…
Abnormal Security message analysis: message retrieval, email header inspection, attachments, sender reputation, delivery context,…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.