Skip to main content
Glama
FouadHELLAL7

Datto EDR MCP Server

by FouadHELLAL7

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
AUTH_MODENoHTTP credential source: env or gateway. The Docker image and Compose set gateway.env
LOG_LEVELNoLog level: debug, info, warn, or error. Logs are always written to stderr.info
DATTO_EDR_URLNoDatto EDR instance base URL, e.g. https://yourcompany.infocyte.com. Required for stdio, or HTTP with AUTH_MODE=env.
MCP_HTTP_HOSTNoHTTP bind address. The Docker image sets 0.0.0.0.127.0.0.1
MCP_HTTP_PORTNoHTTP port.8080
MCP_TRANSPORTNoTransport to use: stdio or http.stdio
CONDUIT_S2S_SECRETNoRequired for HTTP. Shared secret for the X-Gateway-S2S header. Generate with openssl rand -hex 32.
DATTO_EDR_API_TOKENNoDatto EDR API token. Required for stdio, or HTTP with AUTH_MODE=env.
DATTO_EDR_READ_ONLYNoSet to true to hide and block all write tools.false
DATTO_EDR_ALLOW_HTTPNoSet to 1 to allow an http:// instance URL, for local mock APIs only.
DATTO_EDR_TIMEOUT_MSNoPer-request timeout in milliseconds.30000
MCP_ALLOW_INSECURE_DEVNoSet to 1 to start HTTP without a service-to-service secret, local only (binds 127.0.0.1).
DATTO_EDR_ALLOWED_HOSTSNoComma-separated host suffixes the instance URL must match, e.g. .infocyte.com. Recommended in gateway mode.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{}
logging
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
datto_edr_navigateA

Discover available Datto EDR tools by domain. Returns tool names and descriptions for the selected domain. All tools are callable at any time — this is a help/discovery aid, not a prerequisite.

datto_edr_statusA

Check whether Datto EDR credentials are configured and list the available domains. Does not call the API; use datto_edr_test_connection for a live check.

datto_edr_test_connectionA

Test the connection and token against the Datto EDR instance (GET /api/Version). Returns the instance host and API version.

datto_edr_api_modelsA

List the API models this Datto EDR instance exposes (read from its /explorer/swagger.json), or pass "model" to see that model's paths and properties. Use it to find filterable field names before building a "where" filter.

datto_edr_raw_requestA

Read-only escape hatch for Datto EDR API endpoints not covered by a typed tool. Prefer typed tools. Sends GET https:///api/; the token is added automatically. Object values in "query" are JSON-encoded, so pass a LoopBack filter as {"filter":{"where":{...},"limit":50}} or a count as path "Model/count" with {"where":{...}}. Credential and token models are refused.

datto_edr_audit_log_listC

List user activity (audit log) entries (GET /api/useractivities).

datto_edr_agents_listA

List or search Datto EDR endpoint agents (GET /api/Agents). Filter by hostname, IP, active/authorized state and last heartbeat; add any other property (OS, version, isolation state...) through "where" after checking field names with datto_edr_api_models {"model":"Agents"}. Paged with limit/skip.

datto_edr_agents_getA

Get one Datto EDR agent by id (GET /api/Agents/{id}).

datto_edr_agents_countA

Count agents matching the same filters as datto_edr_agents_list (GET /api/Agents/count). Useful for "how many agents are offline" questions.

datto_edr_alerts_listA

List Datto EDR alerts, newest first (GET /api/Alerts). Filter by creation date range and archived state; filter by severity, host, organization, status or any other property through "where" (see datto_edr_api_models {"model":"Alerts"} for this instance's field names). Set archive_table for alerts older than 30 days.

datto_edr_alerts_getA

Get one Datto EDR alert by id (GET /api/Alerts/{id}).

datto_edr_alerts_countA

Count alerts matching the same filters as datto_edr_alerts_list (GET /api/Alerts/count).

datto_edr_alert_details_listA

List enriched alert records (GET /api/AlertDetails), which join alert, host and file/rule context. Use "where" to filter (e.g. by alert id or hostname) and "fields" to keep the response small.

datto_edr_target_groups_listA

List Datto EDR target groups (GET /api/targets). Target groups hold the hosts that scans and response actions run against; their ids are needed by datto_edr_scan_host and the response tools.

datto_edr_target_groups_getA

Get one target group by id (GET /api/targets/{id}).

datto_edr_addresses_listA

List discovered host addresses (GET /api/Addresses), optionally within one target group. Shows whether each host was reachable and which agent it maps to.

datto_edr_organizations_listA

List Datto EDR organizations (tenants/customers). The endpoint is looked up in this instance's /explorer/swagger.json; if it is missing, the error lists related models to query with datto_edr_raw_request.

datto_edr_organizations_getA

Get one Datto EDR organization by id. The endpoint is looked up in this instance's /explorer/swagger.json; if it is missing, the error lists related models to query with datto_edr_raw_request.

datto_edr_locations_listA

List Datto EDR locations (sites inside organizations). Filter by organization through "where" once you know the field name (datto_edr_api_models). The endpoint is looked up in this instance's /explorer/swagger.json; if it is missing, the error lists related models to query with datto_edr_raw_request.

datto_edr_locations_getA

Get one Datto EDR location by id. The endpoint is looked up in this instance's /explorer/swagger.json; if it is missing, the error lists related models to query with datto_edr_raw_request.

datto_edr_integrations_listA

List configured integrations (RMM, PSA, RocketCyber...). The endpoint is looked up in this instance's /explorer/swagger.json; if it is missing, the error lists related models to query with datto_edr_raw_request.

datto_edr_scans_listA

List Datto EDR scans (GET /api/scans), optionally for one target group.

datto_edr_scans_getB

Get one scan by id (GET /api/scans/{id}).

datto_edr_tasks_listA

List user tasks (scans, responses, enumerations shown in the task list), newest first (GET /api/usertasks). Use status "Active" for running tasks.

datto_edr_tasks_getA

Get one user task by id, including status, progress and message (GET /api/usertasks/{id}). Use it to follow a scan or response started by this server.

datto_edr_task_items_listA

List the per-host items of a user task (GET /api/userTaskItems), e.g. the result of a scan or response on each host.

datto_edr_jobs_listB

List background jobs (GET /api/jobs). Pass state "active" for running jobs.

datto_edr_scan_hostA

⚠ HIGH-IMPACT: Start a forensic scan of one host (POST /api/targets/scan). Runs on the endpoint and uses its resources. Requires confirm: true; without it, returns the request it would send. Returns a task id for datto_edr_tasks_get.

datto_edr_run_responseA

⚠ HIGH-IMPACT: Run a response extension (e.g. kill process, isolate, collect evidence) on one host (POST /api/targets/scan with the extension). Identify the extension by id or exact name. Requires confirm: true; without it, returns the request it would send.

datto_edr_isolate_hostA

⚠ HIGH-IMPACT: Network-isolate one host by running the "Host Isolation" response extension. The host keeps talking to Datto EDR but loses all other network access until restored (Windows and Linux). Requires confirm: true.

datto_edr_restore_hostA

⚠ HIGH-IMPACT: Remove network isolation from one host by running the "Host Isolation Restore" response extension. Requires confirm: true.

datto_edr_rules_listB

List Datto EDR detection rules (GET /api/rules).

datto_edr_rules_getA

Get one detection rule by id (GET /api/rules/{id}).

datto_edr_extensions_listA

List Datto EDR extensions (GET /api/extensions): collection extensions and response actions such as "Host Isolation" and "Host Isolation Restore". Extension ids/names feed datto_edr_run_response.

datto_edr_extensions_getB

Get one extension by id (GET /api/extensions/{id}).

datto_edr_action_types_listC

List the response/action types the instance supports (GET /api/ActionTypes).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.4/5.0

Scored across 36 tools

Disambiguation4/5

Most tools target a distinct resource (agents, alerts, scans, tasks, rules, extensions) and descriptions clarify boundaries, but some pairs overlap: datto_edr_isolate_host and datto_edr_restore_host are specializations of datto_edr_run_response, and tasks/jobs/task_items/scans are easy to confuse at a glance. Alert_details_list versus alerts_list also requires reading descriptions to distinguish.

Naming Consistency4/5

Nearly everything follows datto_edr_<resource>_<verb> in snake_case with a small predictable verb set (_list, _get, _count). The main deviation is verb-first ordering for action tools (isolate_host, restore_host, scan_host, run_response) versus noun-first for read tools, but the pattern remains readable and predictable.

Tool Count2/5

36 tools is heavy for a coherent set; many resources get a three-tool pattern (list/get/count) that could be collapsed, and the discovery family (navigate, status, test_connection, api_models, raw_request) adds further surface. The domain is broad, but the count exceeds what an agent can comfortably select from.

Completeness3/5

Read coverage is strong across all major resources, and high-impact response actions exist (isolate, restore, scan, run_response), but there is no write lifecycle: no alert status/archive update, no rule creation or modification, and the raw_request escape hatch is read-only. These are notable gaps for an agent expected to manage rather than just observe.

Maintenance

ActivityMaintained
ResponsivenessNo issues