Model Context Protocol server for Datto RMM integration, providing tools for interacting with Datto RMM API to manage devices, sites, alerts, and execute remote management tasks.
Good overall quality with consistent naming patterns and comprehensive schemas. All 12 tools follow verb_noun conventions (list_, get_, find_, create_, resolve_). Descriptions are present and contextual. Input schemas are fully typed with proper JSON Schema. However, output schemas are undocumented, the rubric requires documented return types for A+ tools, and this gap prevents a higher score. Error handling lacks recovery guidance. No tool annotations (readOnlyHint/destructiveHint) despite MCP SDK supporting them. The elicitation pattern is implemented for user confirmations on destructive ops, which is good.
Create a quick job on a device. User must select a component (job template) and provide required variables, then confirm before the job is submitted.
Find a device by hostname and return its UID plus a lightweight summary. Use this before datto_get_device when the user provides a hostname instead of a UID.
Fetch a single alert by UID with full context. Returns the alert details plus a _card object suitable for MCP Apps UI rendering.
Fetch full details of a device by UID, including OS, IP addresses, and status.
List Windows patches available for a device, including install status (installed/missing/pending).
Fetch full details of a site by UID.
Output schemas are not documented. Tools return structured data but no JSON Schema or description of return fields is visible in the codebase. LLMs cannot reliably understand what fields to expect or plan downstream chaining.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). The server supports elicitation for destructive ops but does not formally declare which tools are read-only vs. write. This is a current spec feature (MCP 2026-07-28) that helps clients display appropriate warnings.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | B | 77 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
List Windows patches available for all devices in a site, including install status.
List alerts in Datto RMM, optionally filtered by device or site. Returns paginated results with full alert details and normalized card metadata for MCP Apps UI rendering.
List quick job components (job templates) available in Datto RMM. These are used with datto_create_quick_job.
List all devices in Datto RMM. Can filter by site. To look up a single device by hostname, use datto_find_device instead.
List all sites in the Datto RMM account.
Resolve an alert by UID. The user must confirm before the operation proceeds.
Error handling lacks recovery guidance. Tools do not return actionable error messages that tell the LLM what to do next (e.g., 'Device UID not found. Call datto_list_devices to find valid UIDs.'). This violates the recovery-guide pattern.
datto_list_components has an empty input schema with no parameters. This is acceptable but the tool description does not clearly state when to call it or what structure it returns. LLMs need discovery guidance.
Result pagination is not clearly documented. datto_list_devices, datto_list_sites, and datto_list_alerts accept 'max' but no 'offset' or 'cursor' parameter. No 'nextCursor' or 'total' documented in responses, making pagination behavior ambiguous to LLMs.