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),…
Pax8 subscriptions: license and seat counts, the full subscription lifecycle and its states, change history, filtering by company or product, and quantity management for license optimization.
$ npx -y skills add wyre-technology/msp-claude-plugins --skill subscriptions --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/subscriptionsContext preview
The summary Claude sees to decide when to auto-load this skill.
Pax8 subscriptions: license and seat counts, the full subscription lifecycle and its states, change history, filtering by company or product, and quantity management for license optimization.
name: "Pax8 Subscriptions" description: > Pax8 subscriptions: license and seat counts, the full subscription lifecycle and its states, change history, filtering by company or product, and quantity management for license optimization. when_to_use: >- When checking license status, seat counts, subscription state, or change history for a client's Pax8 subscriptions. Use when: pax8 subscription, pax8 license, pax8 seat, pax8 provision, pax8 cancel, subscription management, license management, seat count, pax8 activate, license optimization, subscription lifecycle, or subscription status.
Subscriptions in Pax8 represent active cloud product licenses assigned to a client company. When an order is placed and provisioned, it creates a subscription. Subscriptions are the core ongoing entity that MSPs manage -- adjusting seat counts as clients hire or leave, upgrading plans, or cancelling when a product is no longer needed. Every subscription is tied to a company and a product, with a quantity (seat count), billing term, and status.
marketplace. Same concepts, different account, no shared IDs; use `sherweb-subscriptions`. A client's licences may sit in either, or split across both, so establish which distributor holds the product before reasoning about seat counts.
*purchased*; who it is *assigned to* lives in the tenant. Use `m365-licensing` or `cipp-licenses`. Purchased seats and assigned seats legitimately differ, and reconciling them is a cross-tool comparison.
read-only; quantity changes and cancellations happen in the Pax8 portal. See `pax8-api-patterns` for the full read-only scope.
`pax8-orders`; an order is the transaction, a subscription is what it created.
| Tool | Description | Key Parameters | |------|-------------|----------------| | `pax8-list-subscriptions` | List and filter subscriptions | `page`, `size`, `sort`, `status`, `billingTerm`, `companyId`, `productId` | | `pax8-get-subscription-by-uuid` | Get a single subscription | `uuid` (required) |
Call `pax8-list-subscriptions` with optional parameters:
**Example: List all active subscriptions for a company:**
**Example: List all trial subscriptions:**
**Example: List all annual subscriptions:**
Call `pax8-get-subscription-by-uuid` with the `uuid` parameter.
**Example:**
Order Placed --> Provisioning --> Active --> [Modify/Cancel] --> Cancelled
| |
PendingManual ActivePendingChange
PendingAutomated PendingCancel
WaitingForDetails| State | Description | |-------|-------------| | `Active` | Subscription is live and billing | | `Cancelled` | Subscription has been terminated | | `PendingManual` | Awaiting manual provisioning by vendor | | `PendingAutomated` | Automated provisioning in progress | | `PendingCancel` | Cancellation request submitted, not yet complete | | `WaitingForDetails` | Additional information needed for provisioning | | `Trial` | Free trial period active | | `Converted` | Trial converted to paid subscription | | `PendingActivation` | Activation pending | | `Activated` | Recently activated |
| Term | Description | Commitment | |------|-------------|------------| | Monthly | Month-to-month | Cancel anytime | | Annual | 12-month commitment | Locked for 12 months | | Two-Year | 24-month commitment | Locked for 24 months | | Three-Year | 36-month commitment | Locked for 36 months | | One-Time | Single purchase | No recurring billing | | Trial | Free trial | No commitment |
The `quantity` field represents the number of licenses (seats, devices, or units depending on the product). Changing quantity triggers a billing adjustment:
| Field | Type | Description | |-------|------|-------------| | `id` | UUID | Subscription unique identifier | | `companyId` | UUID | Associated company ID | | `productId` | UUID | Associated product ID | | `quantity` | integer | Number of licenses/seats | | `startDate` | date | Subscription start date | | `endDate` | date | Subscription end date (for commitments) | | `createdDate` | datetime | When the subscription was created | | `billingStart` | date | When billing begins | | `status` | string | Current subscription state | | `billingTerm` | string | Billing term (Monthly, Annual) | | `price` | decimal | Current unit price | | `commitmentTermId` | UUID | Commitment term identifier |
| Field | Type
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…