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),…
Atera service desk tickets: ticket fields, statuses, priorities, comments, work hours, and billing duration.
$ npx -y skills add wyre-technology/msp-claude-plugins --skill tickets --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/ticketsContext preview
The summary Claude sees to decide when to auto-load this skill.
Atera service desk tickets: ticket fields, statuses, priorities, comments, work hours, and billing duration.
name: "Atera Tickets" description: > Atera service desk tickets: ticket fields, statuses, priorities, comments, work hours, and billing duration. when_to_use: >- When creating, updating, searching, or managing Atera service desk tickets. Use when: atera ticket, service ticket atera, create ticket atera, ticket status atera, ticket priority atera, atera service desk, ticket comments, work hours atera, billable hours, or resolve ticket atera.
Atera tickets are the core unit of service delivery in the RMM/PSA platform. Every client request, incident, and service call flows through the ticketing system. This skill covers comprehensive ticket management including creation, updates, comments, and time tracking.
for RMM and a separate PSA for service desk. If tickets live elsewhere, use `connectwise-psa-tickets`, `autotask-tickets`, `halopsa-tickets`, `syncro-tickets`, or `superops-tickets`; a ticket created in the wrong system is a ticket nobody is watching.
the alert side of that workflow are `atera-alerts`.
| Status | Description | Business Logic | |--------|-------------|----------------| | **Open** | Newly created or reopened ticket | Default for new tickets | | **Pending** | Awaiting customer response or information | SLA clock may pause | | **Resolved** | Issue has been fixed | Awaiting customer confirmation | | **Closed** | Ticket is complete | Final state, no further action |
| Priority | Description | Typical SLA | |----------|-------------|-------------| | **Critical** | Complete business outage | 1 hour response | | **High** | Major productivity impact | 4 hour response | | **Medium** | Single user/workaround exists | 8 hour response | | **Low** | Minor issue/enhancement | 24 hour response |
| Type | Description | |------|-------------| | **Problem** | Standard service issue | | **Request** | Service request | | **Incident** | Unplanned interruption | | **Change** | Planned change |
| Field | Type | Required | Description | |-------|------|----------|-------------| | `TicketID` | int | System | Auto-generated unique identifier | | `TicketTitle` | string | Yes | Brief issue summary | | `Description` | string | No | Detailed description | | `TicketPriority` | string | No | Low, Medium, High, Critical | | `TicketStatus` | string | No | Open, Pending, Resolved, Closed | | `TicketType` | string | No | Problem, Request, Incident, Change |
| Field | Type | Required | Description | |-------|------|----------|-------------| | `CustomerID` | int | Conditional | Customer reference (required if no EndUserID) | | `CustomerName` | string | System | Customer display name | | `EndUserID` | int | Conditional | Contact reference | | `EndUserEmail` | string | System | Contact email address | | `EndUserFirstName` | string | System | Contact first name | | `EndUserLastName` | string | System | Contact last name |
| Field | Type | Required | Description | |-------|------|----------|-------------| | `TechnicianContactID` | int | No | Assigned technician ID | | `TechnicianFullName` | string | System | Technician display name | | `TechnicianEmail` | string | System | Technician email |
| Field | Type | Required | Description | |-------|------|----------|-------------| | `TicketCreatedDate` | datetime | System | When ticket was created | | `TicketResolvedDate` | datetime | System | When marked resolved | | `FirstResponseDate` | datetime | System | First response timestamp | | `LastActivityDate` | datetime | System | Last update timestamp | | `DueDate` | datetime | No | SLA due date |
| Field | Type | Description | |-------|------|-------------| | `TicketSource` | string | How ticket was created (Portal, Email, Agent, API) |
POST /api/v3/tickets
X-API-KEY: {api_key}
Content-Type: application/json{
"TicketTitle": "Unable to access email - multiple users affected",
"Description": "Sales team (5 users) reporting Outlook disconnected since 9am",
"EndUserID": 67890,
"TicketPriority": "High",
"TicketType": "Problem",
"TechnicianContactID": 12345
}**Response:**
{
"ActionID": 54321,
"TicketID": 54321,
"TicketTitle": "Unable to access email - multiple users affected"
}GET /api/v3/tickets/{ticketId}
X-API-KEY: {api_key}**Response:**
{
"TicketID": 54321,
"TicketTitle": "Unable to access email - multiple users affected",
"TicketStatus": "Open",
"TicketPriority": "High",
"TicketType": "Problem",
"CustomerID": 12345,
"CustomerName": "Acme Corporation",
"EndUserID": 67890,
"EndUserFirstName": "John",
"EndUserLastName": "Smith",
"EndUserEmail": "john.smith@acme.com",
"TechnicianContactID": 11111,
"TechnicianFullName": "Jane Tech",
"TicketCreatedDate": "2024-02-15T09:00:00Z",
"TicketSource": "Email"
}POST /api/v3/tickets/{ticketId}
X-API-KEY: {api_key}
Content-Type: application/json{
"TicketStatus": "Resolved",
"TicketPriority": "Medium"
}GET /api/v3/tickets?page=1&itemsInPage=50
X-API-KEY: {api_key}**Response:**
{
"items": [...],
"totalItems": 2847,
"page": 1,
"itemsInPage": 50,
"totalPages": 57
}GET /api/v3/tickets/statusmodified?modifiedAfter=2024-02-01T00:00:00Z
X-API-KEY: {api_key}GET /api/v3/tickets/{ticketId}/comments
X-API-KEY: {api_key}**Response:**
{
"items": [
{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…