ET Ducky
Server Details
Read-only access to an ET Ducky organization's agents, alerts, and fleet summary
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP ยท MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool targets a clearly distinct scope: get_agent (single endpoint detail), list_agents (inventory of all endpoints), get_fleet_summary (aggregate counts), and list_alerts (alert feed). The singular-vs-plural contrast between get_agent and list_agents is explicitly reinforced by their descriptions, leaving no realistic room for misselection.
All four tools follow a strict verb_noun snake_case pattern (get_agent, get_fleet_summary, list_agents, list_alerts). The verb choice is semantically meaningful and consistent, with no mixed conventions.
Four tools is a lean but defensible surface for a read-only fleet monitoring view. It sits at the low end, and a couple more operations (e.g. alert detail or per-agent history) could reasonably be expected, but nothing here feels redundant or bloaty.
The surface covers read operations for agents and alerts well, but the domain clearly includes state-changing actions that are absent: isolation/un-isolation (isolation state is surfaced but not actionable) and alert acknowledgement/resolution. These gaps would force an agent to hit a dead end for common monitoring workflows.
Available Tools
4 toolsget_agentGet agentARead-onlyInspect
One agent with its latest health sample (CPU, memory, free space on C:, uptime, pending reboot, make and model) and its number of active alerts.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | Yes | The agentId from list_agents. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds valuable behavioral detail by enumerating the exact payload fields returned, which is important because there is no output schema. It still omits error behavior (e.g., unknown agent_id) and the freshness semantics of 'latest'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single, front-loaded clause with no filler, and the parenthetical list of fields is an efficient way to convey return shape. The only mild structural weakness is that it is a noun phrase rather than an explicit verb-led instruction, and the parenthetical is dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with no output schema, the description compensates by naming the returned fields and the active alert count, and annotations cover the safety profile. It is nearly complete, missing only error handling and freshness precision, which are minor for this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single agent_id parameter, and its schema description ('The agentId from list_agents') already explains sourcing. The tool description adds no further parameter semantics or format details, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear resource and scope ('One agent') and enumerates the returned data (CPU, memory, free space, uptime, pending reboot, make/model, active alerts), which distinguishes it from the plural list_agents. It lacks an explicit verb and does not name the sibling alternatives, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance, no conditions for choosing this tool over list_agents, get_fleet_summary, or list_alerts, and no prerequisites or exclusions. The singular scope only weakly implies usage, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fleet_summaryGet fleet summaryARead-onlyInspect
Counts for this organization: agents, online, offline, Windows, Linux, other OS, isolated, and active alerts by severity.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds substantial value by enumerating exactly which counts are returned (agents, online, offline, Windows, Linux, other OS, isolated, active alerts by severity), compensating for the absence of an output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler. Every item in the list earns its place by describing the return payload.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-param, read-only summary tool with annotations covering safety and no output schema, the description adequately conveys what data is returned. Minor gaps include data freshness or scope caveats, but nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so the baseline is 4. The description correctly does not introduce parameter concepts that don't exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific purpose: counts of agents broken down by status, OS, isolation, and alerts by severity for this organization. Clearly distinguishable from sibling list/get tools, but does not explicitly name or route away from them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like list_agents or list_alerts. The agent must infer that this is the summary-view tool rather than a listing tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_agentsList agentsBRead-onlyInspect
List this organization's ET Ducky agents (Windows and Linux endpoints) with OS, agent version, online state, last heartbeat, last signed-in user, isolation state and tags. Sorted by hostname.
| Name | Required | Description | Default |
|---|---|---|---|
| os | No | Only agents of this OS family. | |
| tag | No | Only agents carrying this exact tag name. | |
| limit | No | Most rows to return. Defaults to 100. | |
| online | No | true for agents with a heartbeat in the last 5 minutes, false for the rest. | |
| search | No | Case-insensitive part of the hostname. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds useful context by listing the returned fields and stating the sort order (by hostname), but it says nothing about result caps or truncation behavior for large fleets.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence that front-loads the resource and scope and then enumerates return fields. No filler, nothing redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly compensates by enumerating the returned fields, which is the key missing piece. It is nearly complete for a read-only list tool, with only pagination/truncation behavior left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each filter (os, tag, limit, online, search) documented in the schema itself, so the baseline is 3. The description adds no filter syntax or interaction detail (e.g. combining os and tag) beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (List) and resource (agents) and enumerates the returned fields, so the agent knows exactly what it retrieves. However, it offers no differentiation from siblings like get_agent or get_fleet_summary, which matters given three closely related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus get_agent (single agent) or get_fleet_summary (aggregate). The description is a pure capability statement with no context or exclusions, leaving the agent to infer routing from the names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_alertsList alertsBRead-onlyInspect
Alerts raised for this organization's agents, newest first.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Most rows to return. Defaults to 100. | |
| status | No | Alert status. Defaults to active. | |
| agent_id | No | Only alerts for this agent. | |
| severity | No | Only alerts of this severity, for example critical or warning. | |
| since_hours | No | How far back to look. Defaults to 168 (7 days). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds useful context that results are org-scoped and sorted newest-first, but says nothing about pagination, truncation at the limit, or what happens when status='any'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; scope and ordering are stated immediately and nothing is repeated from the structured fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-required-param read-only list tool with full schema coverage this is close to adequate, but with no output schema the description could usefully sketch what an alert record contains or note pagination behavior. Ordering is the only return-value hint provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter including defaults (limit=100, status=active, since_hours=168) is already documented in the schema. The description adds no parameter-level meaning such as filter interaction or severity values, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear resource (alerts), scope (this organization's agents), and ordering (newest first), which is enough to distinguish it from the agent-oriented siblings list_agents and get_agent. It does not explicitly name those siblings or contrast itself with them, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of alternatives such as get_fleet_summary for aggregate health, and no exclusions or prerequisites. The agent must infer from the name alone that this is the tool for retrieving alert rows.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
get_agent - First observed
get_fleet_summary - First observed
list_agents - First observed
list_alerts
Related MCP Connectors
Read-only MCP access to a documented IT fleet: state, changes, posture. 15 tools.
Read-only access to your Infrly services, deploys, logs, metrics and billing.
Read-only access to your Drivara fleet โ jobs, drivers, vehicles, fuel, profit & analytics.
Read-only CVE intelligence, remediation playbooks, and agent setup guides. Not a scanner.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to read protected computers and their check-ins, computer groups, approval requests, the unified audit log, and child organizations through a zero-trust endpoint security portal API. Every operation is read-only, with credentials supplied per request as headers and never stored.Apache 2.0
- FlicenseAqualityBmaintenanceEnables read-only access to Teramind's employee-monitoring metadata, including computer and agent inventory, departments, alerts, anomaly rules, behavior policies, and monitoring profiles.16-
- FlicenseCqualityBmaintenanceProvides read-only access to DNSFilter's DNS security and filtering API, enabling users to query organizations, networks, policies, categories, block pages, and traffic and threat reports.57-
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to read Datto SIRIS and ALTO backup appliance data, including protected machines and shares, snapshot history with local and screenshot verification, offsite replication status, fleet alerts, and partner portal activity logs. Provides read-only access to the Datto partner REST API with stateless, per-request authentication.Apache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.