Skip to main content
Glama
FouadHELLAL7

Datto EDR MCP Server

by FouadHELLAL7

datto_edr_agents_count

Read-only

Count EDR agents matching filters such as online status, hostname, IP, or heartbeat time to answer how many agents are offline or stale.

Instructions

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

Input Schema

NameRequiredDescriptionDefault
ipNoExact IP address (ipstring)
whereNoExtra LoopBack where filter, combined with AND, e.g. {"hostname":{"ilike":"%sql%"}}. Operators: eq, neq, gt, gte, lt, lte, between, inq, nin, like, ilike, and, or. Use datto_edr_api_models to see a model's properties.
activeNotrue = agent currently active/online
hostnameNoExact hostname
authorizedNotrue = agent approved/authorized
last_seen_afterNoOnly agents with a heartbeat at or after this ISO date/time
last_seen_beforeNoOnly agents whose last heartbeat is at or before this ISO date/time (stale agents)
hostname_containsNoCase-insensitive hostname substring (LoopBack ilike)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is covered. The description adds that filters are identical to datto_edr_agents_list, which is genuinely useful behavioral context, but says nothing about the response shape or whether unpaginated totals are computed server-side.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the action and endpoint, followed by the practical use case. Nothing is redundant or padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter, zero-required count tool with a nested filter object and no output schema, the definition covers what it does and how filters relate to the sibling list. The one gap is that it never states what the return looks like (a total/count field), which matters slightly more given no output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and each parameter carries its own description, including the nested LoopBack `where` operator list, so the schema does the heavy lifting. The description adds only the meta-claim that the filter set matches agents_list, not per-parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (count) and resource (agents) plus the exact endpoint, and explicitly anchors filter semantics to the sibling datto_edr_agents_list. An agent can distinguish this from the list/get siblings without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete use case ("how many agents are offline" questions) and points at datto_edr_agents_list as the filter-equivalent for record retrieval. It stops short of an explicit when-not rule (e.g. "use agents_list when you need the records themselves"), but the routing signal is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.