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),…
Working the vmm namespace through `vmm_execute`: VM inventory and lookup on AHV clusters, resolving names to extId UUIDs, reading VM configuration (disks, NICs, GPUs, power state), OData filters for VM queries, and the read-only boundaries around VM lifecycle actions.
$ npx -y skills add wyre-technology/msp-claude-plugins --skill vm-management --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/vm-managementContext preview
The summary Claude sees to decide when to auto-load this skill.
Working the vmm namespace through `vmm_execute`: VM inventory and lookup on AHV clusters, resolving names to extId UUIDs, reading VM configuration (disks, NICs, GPUs, power state), OData filters for VM queries, and the read-only boundaries around VM lifecycle actions.
name: "Nutanix VM Management" description: > Working the vmm namespace through `vmm_execute`: VM inventory and lookup on AHV clusters, resolving names to extId UUIDs, reading VM configuration (disks, NICs, GPUs, power state), OData filters for VM queries, and the read-only boundaries around VM lifecycle actions. when_to_use: >- When listing, finding, or inspecting virtual machines on Nutanix AHV via Prism Central. Use when: nutanix vm, ahv vm, vm inventory nutanix, find vm nutanix, vm power state, vm configuration nutanix, vmm namespace, or vmm_execute.
The `vmm` namespace covers the VM lifecycle on AHV, Nutanix's built-in hypervisor, managed through Prism Central. For an MSP this is the day-to-day surface: which VMs exist across a client's clusters, how they are configured, what state they are in, and which host they run on. All access goes through the single `vmm_execute` tool — discover the exact operation with `listOperations(namespace="vmm")` first.
| Concept | Notes | |---------|-------| | `extId` | UUID identifying every VM (and every sub-resource); all get-by-id operations take it | | Power state | `ON`, `OFF`, plus transitional states; read from the VM entity | | Sub-resources | Disks, NICs, GPUs, serial ports each have their own list/get operations under the VM | | Cluster association | Each VM belongs to one cluster; cross-reference `clustermgmt` for cluster detail | | Categories | Prism categories (key:value tags) attach to VMs; category CRUD lives in the `prism` namespace |
1. `listOperations` with `namespace="vmm"`, `search="list vms"` to get the list-VMs operation id. 2. `getOperationSchema` for that id to confirm parameters. 3. `vmm_execute` with the operation id and `_filter="name eq 'web-prod-01'"`. Names are not unique across clusters — if several rows return, disambiguate by cluster before reporting. 4. Use the returned `extId` for any follow-up get-by-id call.
1. List VMs with `_limit=100` and walk `_page` until a short page. 2. `_select` the fields you need (name, power state, sizing, cluster) to keep pages small on large estates. 3. Group client-side by cluster or category for the report.
1. Get the VM by `extId` for CPU/memory/power state. 2. List its disks and NICs via the corresponding sub-resource operations (discover them with `search="disk"` / `search="nic"` scoped to `vmm`).
The vmm namespace includes create, clone, update, power-cycle, and delete operations — discovery will list them, but the server's read-only mode blocks all of them. Do not offer to power-cycle, resize, clone, or delete a VM. When a change is the right next step, hand off: pull the operation's contract with `getOperationSchema` and a `getCodeSample` snippet so the operator can execute it through their own authenticated tooling.
accept `extId`. A "VM not found" on a name you can see in Prism usually means the name was passed where a UUID belongs.
`name = "x"` does not. String literals take single quotes.
from the `aiops` namespace, not `vmm` — see the monitoring-aiops skill.
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…