Skip to content

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.

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.

Terminal window
pnpm add datto-rmm-mcp-server

The MCP server requires the following environment variables:

Terminal window
# Required
DATTO_API_KEY=your-api-key
DATTO_API_SECRET=your-api-secret
DATTO_PLATFORM=merlot # or pinotage, concord, vidal, zinfandel, syrah

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"
}
}
}
}
Terminal window
# From the monorepo root
cd apps/mcp-server
pnpm build
# Set environment variables
export DATTO_API_KEY=your-api-key
export DATTO_API_SECRET=your-api-secret
export DATTO_PLATFORM=merlot
# Run the server
node dist/index.js
ToolDescription
get-accountGet account details and device summary
list-account-sitesList all sites in the account
list-account-devicesList all devices in the account
list-account-open-alertsList all open alerts
list-account-resolved-alertsList resolved alerts
list-account-usersList account users
list-account-componentsList available components
ToolDescription
get-siteGet site details by UID
list-site-devicesList devices in a site
list-site-open-alertsList open alerts for a site
list-site-resolved-alertsList resolved alerts for a site
create-siteCreate a new site
update-siteUpdate site settings
set-site-proxyConfigure site proxy settings
delete-site-proxyRemove site proxy settings
get-site-settingsGet site settings
get-site-variablesGet site variables
set-site-variableSet a site variable
delete-site-variableDelete a site variable
ToolDescription
get-deviceGet device details by UID
get-device-by-idGet device by numeric ID
get-device-by-macFind devices by MAC address
list-device-open-alertsList open alerts for a device
list-device-resolved-alertsList resolved alerts for a device
move-deviceMove device to another site
create-quick-jobRun a component on a device
set-device-udfSet user-defined fields
set-device-warrantySet warranty date
ToolDescription
get-alertGet alert details
resolve-alertResolve an alert
ToolDescription
get-jobGet job details
get-job-componentsList job components
get-job-resultsGet job execution results
get-job-stdoutGet job standard output
get-job-stderrGet job error output
ToolDescription
get-device-auditGet device hardware/software audit
get-device-softwareList installed software
get-device-audit-by-macGet audit data by MAC address
get-esxi-auditGet ESXi host audit data
get-printer-auditGet printer audit data
ToolDescription
get-activity-logsGet activity/audit logs
ToolDescription
get-system-statusGet API system status
get-rate-limitGet current rate limit status
get-pagination-configGet pagination configuration

MCP resources provide read-only access to commonly needed data:

Resource URIDescription
datto://accountAccount overview with device counts
datto://sitesList of all managed sites
datto://alerts/openCurrently open alerts
datto://sites/{siteUid}Details for a specific site
datto://sites/{siteUid}/devicesDevices in a specific site
datto://devices/{deviceUid}Details for a specific device

Once configured, you can interact with Datto RMM through natural language:

“Show me my Datto RMM account status and how many devices are online”

“List all devices that are currently offline”

“What open alerts do we have? Show me the high priority ones”

“Get the audit information for device abc-123, including installed software”

“How many devices are at the Main Office site?”

“Run the ‘Windows Update’ component on device xyz-456”

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”

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)

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
  • 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
  1. Verify environment variables are set:

    Terminal window
    echo $DATTO_API_KEY
    echo $DATTO_PLATFORM
  2. Check the platform name is valid (lowercase):

    • pinotage, merlot, concord, vidal, zinfandel, syrah
  3. Ensure the package is built:

    Terminal window
    cd apps/mcp-server && pnpm build
  1. Verify your API key and secret are correct (keys are generated per-user in Datto RMM)
  2. Check that your user account has the required permissions for the operations you’re performing
  3. Ensure the platform matches your account’s region

Use the get-rate-limit tool to check your current rate limit status. The API has rolling rate limits per account.