MCP Server
The datto-rmm-mcp-server package provides a Model Context Protocol (MCP) server that exposes Datto RMM functionality to AI assistants like Claude.
Overview
Section titled “Overview”MCP is a protocol that allows AI assistants to interact with external tools and data sources. The Datto RMM MCP server exposes 39+ tools for managing devices, sites, alerts, and more through natural language interactions.
Installation
Section titled “Installation”pnpm add datto-rmm-mcp-serverConfiguration
Section titled “Configuration”Environment Variables
Section titled “Environment Variables”The MCP server requires the following environment variables:
# RequiredDATTO_API_KEY=your-api-keyDATTO_API_SECRET=your-api-secretDATTO_PLATFORM=merlot # or pinotage, concord, vidal, zinfandel, syrahClaude Desktop Configuration
Section titled “Claude Desktop Configuration”Add the server to your Claude Desktop configuration (claude_desktop_config.json):
{ "mcpServers": { "datto-rmm": { "command": "node", "args": ["/path/to/datto-rmm/apps/mcp-server/dist/index.js"], "env": { "DATTO_API_KEY": "your-api-key", "DATTO_API_SECRET": "your-api-secret", "DATTO_PLATFORM": "merlot" } } }}Running Standalone
Section titled “Running Standalone”# From the monorepo rootcd apps/mcp-serverpnpm build
# Set environment variablesexport DATTO_API_KEY=your-api-keyexport DATTO_API_SECRET=your-api-secretexport DATTO_PLATFORM=merlot
# Run the servernode dist/index.jsAvailable Tools
Section titled “Available Tools”Account Tools
Section titled “Account Tools”| Tool | Description |
|---|---|
get-account | Get account details and device summary |
list-account-sites | List all sites in the account |
list-account-devices | List all devices in the account |
list-account-open-alerts | List all open alerts |
list-account-resolved-alerts | List resolved alerts |
list-account-users | List account users |
list-account-components | List available components |
Site Tools
Section titled “Site Tools”| Tool | Description |
|---|---|
get-site | Get site details by UID |
list-site-devices | List devices in a site |
list-site-open-alerts | List open alerts for a site |
list-site-resolved-alerts | List resolved alerts for a site |
create-site | Create a new site |
update-site | Update site settings |
set-site-proxy | Configure site proxy settings |
delete-site-proxy | Remove site proxy settings |
get-site-settings | Get site settings |
get-site-variables | Get site variables |
set-site-variable | Set a site variable |
delete-site-variable | Delete a site variable |
Device Tools
Section titled “Device Tools”| Tool | Description |
|---|---|
get-device | Get device details by UID |
get-device-by-id | Get device by numeric ID |
get-device-by-mac | Find devices by MAC address |
list-device-open-alerts | List open alerts for a device |
list-device-resolved-alerts | List resolved alerts for a device |
move-device | Move device to another site |
create-quick-job | Run a component on a device |
set-device-udf | Set user-defined fields |
set-device-warranty | Set warranty date |
Alert Tools
Section titled “Alert Tools”| Tool | Description |
|---|---|
get-alert | Get alert details |
resolve-alert | Resolve an alert |
Job Tools
Section titled “Job Tools”| Tool | Description |
|---|---|
get-job | Get job details |
get-job-components | List job components |
get-job-results | Get job execution results |
get-job-stdout | Get job standard output |
get-job-stderr | Get job error output |
Audit Tools
Section titled “Audit Tools”| Tool | Description |
|---|---|
get-device-audit | Get device hardware/software audit |
get-device-software | List installed software |
get-device-audit-by-mac | Get audit data by MAC address |
get-esxi-audit | Get ESXi host audit data |
get-printer-audit | Get printer audit data |
Activity Tools
Section titled “Activity Tools”| Tool | Description |
|---|---|
get-activity-logs | Get activity/audit logs |
System Tools
Section titled “System Tools”| Tool | Description |
|---|---|
get-system-status | Get API system status |
get-rate-limit | Get current rate limit status |
get-pagination-config | Get pagination configuration |
Available Resources
Section titled “Available Resources”MCP resources provide read-only access to commonly needed data:
| Resource URI | Description |
|---|---|
datto://account | Account overview with device counts |
datto://sites | List of all managed sites |
datto://alerts/open | Currently open alerts |
datto://sites/{siteUid} | Details for a specific site |
datto://sites/{siteUid}/devices | Devices in a specific site |
datto://devices/{deviceUid} | Details for a specific device |
Example Interactions
Section titled “Example Interactions”Once configured, you can interact with Datto RMM through natural language:
View Account Status
Section titled “View Account Status”“Show me my Datto RMM account status and how many devices are online”
Find Problem Devices
Section titled “Find Problem Devices”“List all devices that are currently offline”
Investigate Alerts
Section titled “Investigate Alerts”“What open alerts do we have? Show me the high priority ones”
Device Information
Section titled “Device Information”“Get the audit information for device abc-123, including installed software”
Site Management
Section titled “Site Management”“How many devices are at the Main Office site?”
Job Execution
Section titled “Job Execution”“Run the ‘Windows Update’ component on device xyz-456”
Pagination
Section titled “Pagination”Tools that return lists support pagination:
page: Page number (1-based, default: 1)max: Items per page (default: 50)
Example: “List the second page of devices, 25 per page”
Output Format
Section titled “Output Format”All tools return human-readable markdown output with:
- Headers for organization
- Bold labels for key fields
- Lists for multiple items
- Status indicators (Online/Offline, Resolved/Open)
Error Handling
Section titled “Error Handling”The server handles errors gracefully:
- Authentication errors return clear messages about credentials
- Rate limiting is reported with current limits
- Invalid parameters are validated before API calls
- Network errors include retry guidance
Security Considerations
Section titled “Security Considerations”- API credentials are passed via environment variables, not stored in config files
- The server runs locally and communicates via stdio
- No credentials are logged or exposed in tool outputs
- All API calls use HTTPS with OAuth 2.0 authentication
Troubleshooting
Section titled “Troubleshooting”Server Won’t Start
Section titled “Server Won’t Start”-
Verify environment variables are set:
Terminal window echo $DATTO_API_KEYecho $DATTO_PLATFORM -
Check the platform name is valid (lowercase):
pinotage,merlot,concord,vidal,zinfandel,syrah
-
Ensure the package is built:
Terminal window cd apps/mcp-server && pnpm build
Authentication Errors
Section titled “Authentication Errors”- Verify your API key and secret are correct (keys are generated per-user in Datto RMM)
- Check that your user account has the required permissions for the operations you’re performing
- Ensure the platform matches your account’s region
Rate Limiting
Section titled “Rate Limiting”Use the get-rate-limit tool to check your current rate limit status. The API has rolling rate limits per account.