MCP server for Datto BCDR — appliances, agents, recovery points, screenshots, alerts.
MCP server for Datto BCDR — appliances, agents, recovery points, screenshots, alerts.
Datto BCDR · v1.1.1 (latest)
by Wyre-technology
Datto BCDR MCP Server
Model Context Protocol (MCP) server for the Datto BCDR (Backup Portal) API. Exposes SIRIS / Alto appliances, protected agents, recovery points, screenshot verifications, off-site sync status, alerts, and activity logs to AI assistants.
Tools
| Tool | Description |
|---|---|
datto_bcdr_list_devices |
List all SIRIS/Alto appliances in the partner portal |
datto_bcdr_get_device |
Get appliance details by serialNumber (renders as an interactive card in MCP Apps hosts) |
datto_bcdr_list_assets |
List protected agents on an appliance |
datto_bcdr_get_asset |
Get a specific protected agent |
datto_bcdr_list_backups |
List recovery points for an agent |
datto_bcdr_list_screenshots |
List screenshot verifications for an agent |
datto_bcdr_get_screenshot |
Fetch a screenshot PNG (returned as base64 image content) |
datto_bcdr_get_offsite_status |
Off-site sync status for an appliance |
datto_bcdr_list_alerts |
Portal alerts (date-range filtered) |
datto_bcdr_list_activity |
Activity log (date-range filtered) |
When the user omits required filters (date range, serial number, etc.) the server uses MCP elicitation to prompt for them.
Features
- Interactive Device Card (MCP Apps, SEP-1865):
datto_bcdr_get_devicerenders as a read-only interactive card in MCP Apps hosts (Claude Desktop/web) showing the appliance's backup status at a glance — neutral by default, brandable viawindow.__BRAND__injection orMCP_BRAND_*env vars; plain-JSON behavior is unchanged in other hosts. Editui/and runnpm run build:uito regenerate the embedded card bundle.
Configuration
Environment-variable mode (default)
| Variable | Required | Description |
|---|---|---|
DATTO_BCDR_PUBLIC_KEY |
yes | Datto BCDR partner portal public key |
DATTO_BCDR_PRIVATE_KEY |
yes | Datto BCDR partner portal private key (secret) |
DATTO_BCDR_REGION |
no | us (default) or eu |
MCP_TRANSPORT |
no | stdio (default) or http |
MCP_HTTP_PORT |
no | HTTP listen port (default 8080) |
AUTH_MODE |
no | env (default) or gateway |
Gateway mode
When deployed behind the WYRE MCP Gateway, set AUTH_MODE=gateway and the
server will read credentials from per-request HTTP headers:
X-Datto-BCDR-Public-KeyX-Datto-BCDR-Private-KeyX-Datto-BCDR-Region(optional)
Each request creates a fresh server instance with isolated credentials — no
cross-tenant process.env pollution.
Local development
npm install
npm run build
DATTO_BCDR_PUBLIC_KEY=... DATTO_BCDR_PRIVATE_KEY=... npm start
Run as HTTP for testing:
MCP_TRANSPORT=http npm start
curl http://localhost:8080/health
Docker
docker build -t datto-bcdr-mcp .
docker run --rm -p 8080:8080 \
-e DATTO_BCDR_PUBLIC_KEY=... \
-e DATTO_BCDR_PRIVATE_KEY=... \
datto-bcdr-mcp
License
Apache-2.0