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),…
Datto RMM site management: site hierarchy and identifiers, proxy and patch-window settings, site-scoped device/alert queries, and create/update/delete operations for client locations.
$ npx -y skills add wyre-technology/msp-claude-plugins --skill sites --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/sitesContext preview
The summary Claude sees to decide when to auto-load this skill.
Datto RMM site management: site hierarchy and identifiers, proxy and patch-window settings, site-scoped device/alert queries, and create/update/delete operations for client locations.
name: "Datto RMM Sites" description: > Datto RMM site management: site hierarchy and identifiers, proxy and patch-window settings, site-scoped device/alert queries, and create/update/delete operations for client locations. when_to_use: >- When listing, managing, and configuring client locations. Use when: datto site, rmm site, client site, site management, location management, site settings, site proxy, or site devices.
Sites in Datto RMM represent client organizations or locations. Each site contains devices, has its own settings, and can have site-level variables. Sites provide organizational hierarchy and enable scoped operations - alerts, jobs, and reports can all be filtered by site.
documentation entity, `itglue-organizations`; as a SOC tenant, `rocketcyber-accounts`. None of these share IDs with a Datto RMM site.
`datto-rmm-devices`.
Account
└── Sites (many)
└── Devices (many per site)
└── Alerts, Jobs, Audit DataSites can represent:
| Identifier | Type | Description | |------------|------|-------------| | `siteUid` | string | Globally unique identifier | | `siteId` | integer | Legacy numeric ID | | `name` | string | Display name |
A `Site` carries identifiers, `onDemand`/`splapiEnabled` flags, optional `proxySettings`, device/alert counts, and a `settings` object (auto-patch approval, patch window, timezone). See [references/fields.md](references/fields.md) for the complete interfaces.
async function findSiteByName(client, name) {
const response = await client.request('/api/v2/sites?max=250');
const sites = response.sites || [];
// Exact match first
const exact = sites.find(s =>
s.name.toLowerCase() === name.toLowerCase()
);
if (exact) return { found: true, site: exact };
// Partial match
const matches = sites.filter(s =>
s.name.toLowerCase().includes(name.toLowerCase())
);
if (matches.length === 0) {
return { found: false, suggestions: [] };
}
if (matches.length === 1) {
return { found: true, site: matches[0] };
}
return {
found: false,
ambiguous: true,
suggestions: matches.map(s => ({
name: s.name,
uid: s.uid,
deviceCount: s.devicesCount
}))
};
}Site health scoring (device status + alert priority weighted into a 0-100 score), a multi-site summary sorted by open alerts, an onboarding checklist validator, and a safe CRUD wrapper are in [references/examples.md](references/examples.md).
See [references/api.md](references/api.md) for full request/response examples.
See [references/errors.md](references/errors.md) for the full site API error table.
**Recommended Format:** `{ClientName} - {Location/Purpose}`
Examples:
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…