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…
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.
Claude Code
$ npx -y skills add wyre-ai/msp-claude-plugins --skill sites --agent claude-code
Codex
$ npx skills add wyre-ai/msp-claude-plugins --skill sites -a codex -y
Cursor
$ npx skills add wyre-ai/msp-claude-plugins --skill sites -a cursor -y
Gemini CLI
$ npx skills add wyre-ai/msp-claude-plugins --skill sites -a gemini-cli -y
GitHub Copilot
$ npx skills add wyre-ai/msp-claude-plugins --skill sites -a github-copilot -y
OpenCode
$ npx skills add wyre-ai/msp-claude-plugins --skill sites -a opencode -y
Windsurf
$ npx skills add wyre-ai/msp-claude-plugins --skill sites -a windsurf -y
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`.
| Tool | Tier | Purpose | |------|------|---------| | `datto_list_sites` / `datto_get_site` | read | Sites (customers) and one site's detail | | `datto_get_site_patches` | admin (unclassified) | Patch status rolled up across a site's devices |
Tiers are Conduit's classification. REST examples later in this skill show what the tools call underneath.
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
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.