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…
PagerDuty service catalog: service statuses, integrations and integration keys as event sources, alert grouping modes, upstream/downstream service dependencies, and maintenance windows.
Claude Code
$ npx -y skills add wyre-ai/msp-claude-plugins --skill services --agent claude-code
Codex
$ npx skills add wyre-ai/msp-claude-plugins --skill services -a codex -y
Cursor
$ npx skills add wyre-ai/msp-claude-plugins --skill services -a cursor -y
Gemini CLI
$ npx skills add wyre-ai/msp-claude-plugins --skill services -a gemini-cli -y
GitHub Copilot
$ npx skills add wyre-ai/msp-claude-plugins --skill services -a github-copilot -y
OpenCode
$ npx skills add wyre-ai/msp-claude-plugins --skill services -a opencode -y
Windsurf
$ npx skills add wyre-ai/msp-claude-plugins --skill services -a windsurf -y
name: "PagerDuty Services" description: > PagerDuty service catalog: service statuses, integrations and integration keys as event sources, alert grouping modes, upstream/downstream service dependencies, and maintenance windows. when_to_use: >- When inspecting, creating, or configuring PagerDuty services, or scheduling maintenance on them. Use when: pagerduty service, service catalog, service dependencies, service integrations, maintenance window, service health, or service status.
Services in PagerDuty represent the applications, components, or infrastructure that your team is responsible for. Each service has an escalation policy, integrations (event sources), and configuration for how incidents are created and grouped. Services are the primary organizational unit for routing alerts to the right responders.
A PagerDuty service is a technical component with an escalation policy attached. It is not a commercial service, and not a service ticket.
scope, and rates live in the contract; use `halopsa-contracts` or `autotask-contracts`.
helpdesk or PSA; use `freshdesk-ticketing`, `halopsa-tickets`, or `connectwise-psa-tickets`.
and ownership metadata rather than integration keys; use `rootly-services`.
here does not pause a PSA's SLA clock; use `freshdesk-sla-business-hours` or `halopsa-contracts` for that side.
| Status | Description | |--------|-------------| | `active` | Service is live and will create incidents from alerts | | `warning` | Service has acknowledged but unresolved incidents | | `critical` | Service has triggered (unacknowledged) incidents | | `maintenance` | Service is in a maintenance window; alerts are suppressed | | `disabled` | Service is disabled; no incidents will be created |
Integrations are the event sources that feed into a service. Each integration has a unique `integration_key` used to route events:
Services can be configured to automatically group related alerts into a single incident:
| Mode | Description | |------|-------------| | `intelligent` | PagerDuty ML groups related alerts automatically | | `time` | Alerts within a time window are grouped together | | `content_based` | Alerts with matching fields are grouped |
Service dependencies map upstream and downstream relationships between services. This helps identify blast radius during incidents and understand service topology.
pagerduty_list_services
Parameters:
**Example response:**
{
"services": [
{
"id": "PSVC123",
"name": "Payment API",
"status": "active",
"description": "Payment processing service",
"escalation_policy": {
"id": "PPOLICY1",
"summary": "Engineering On-Call"
},
"alert_creation": "create_alerts_and_incidents",
"alert_grouping_parameters": {
"type": "intelligent"
},
"teams": [
{
"id": "PTEAM01",
"summary": "Platform Team"
}
]
}
],
"limit": 25,
"offset": 0,
"total": 1,
"more": false
}pagerduty_get_service
Parameters:
pagerduty_create_service
Parameters:
pagerduty_update_service
Parameters:
pagerduty_list_service_dependencies
Parameters:
Returns upstream (depends on) and downstream (depended on by) service relationships.
pagerduty_list_maintenance_windows
Parameters:
pagerduty_create_maintenance_window
Parameters:
**Example request body:**
{
"maintenance_window": {
"type": "maintenance_window",
"start_time": "2026-03-28T02:00:00Z",
"end_time": "2026-03-28T06:00:00Z",
"description": "Database upgrade - v12 to v15",
"services": [
{
"id": "PSVC123",
"type": "service_reference"
}
]
}
}1. Call `pagerduty_list_services` to get all services 2. Check `status` field for each service (critical, warning, active) 3. For services in `critical` or `warning` status, list their incidents 4. Repo
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.