Model Context Protocol server for Atera RMM (Remote Monitoring and Management) integration. Provides tools for managing customers, agents/devices, tickets, alerts, and contacts through the Atera API.
This is a well-structured Atera RMM MCP server with 20 tools spanning 5 domains (customers, agents, tickets, alerts, contacts). Strengths: All tools have explicit descriptions (10-300+ chars), comprehensive input schemas with proper types and enums, and good domain organization via a navigation pattern. Weaknesses: Output schemas are not documented in the tool definitions themselves, we can infer structure from the Atera API docs and function names, but the schema property is absent from all tools. Tool names follow verb_noun convention well (atera_navigate, atera_customers_list, atera_tickets_create). Parameter descriptions are present and mostly specific. Error handling is not visible in the tool definitions, we cannot verify how the server guides LLMs on retry logic or invalid inputs. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) are present despite clear risk categories (READ_ONLY vs WRITE). The navigation/domain pattern is clever for grouping tools, but it adds an extra step before agents can invoke domain-specific tools.
Get detailed information about a specific agent (device) by its ID. Returns full device profile including OS, hardware specs, and current status.
Get agent information by machine name. Useful when you know the computer name but not the agent ID.
List agents (managed devices/endpoints) in Atera. Agents include servers, workstations, and Macs with the Atera agent installed. Returns device info including OS, IP addresses, online status, and hardware details.
List alerts for a specific agent (device). Useful for troubleshooting issues on a particular machine.
List alerts for a specific device (SNMP, HTTP, or TCP monitor). Useful for checking network device health.
Output schemas not documented. Tool definitions do not include a 'returnSchema' or similar property documenting the structure of results. LLMs cannot reliably plan multi-step chains when they do not know what fields will be returned.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Tools are marked with Risk categories (READ_ONLY, WRITE) in comments, but this metadata is not exposed in the tool schema. LLMs cannot see which tools are safe to retry vs destructive without reading descriptions carefully.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | B | 74 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 51 | - | v1 |
Get detailed information about a specific alert by its ID. Returns full alert details including source, severity, and related device/agent info.
List alerts from monitored devices in Atera. Alerts indicate issues detected by monitoring thresholds on agents and devices.
Return to domain selection. Use this to switch to a different area of Atera.
List contacts for a specific customer. Useful for finding who to contact at a particular company.
Get detailed information about a specific contact by their ID. Returns full contact profile including customer association and contact details.
List contacts across all customers in Atera. Contacts are people associated with customer companies who may submit tickets or receive communications.
Create a new customer (company) in Atera. Only CustomerName is required, all other fields are optional.
Get detailed information about a specific customer by their ID. Returns full customer profile including primary contact.
List customers (companies) in Atera with pagination. Returns customer details including name, address, contact info, and primary contact.
Navigate to a specific domain in Atera. Call this first to select which area you want to work with. After navigation, domain-specific tools will be available.
Add a comment to a ticket. Comments are internal (hidden from the end user) by default; set isInternal to false only when the comment should be visible to the end user.
Create a new ticket in Atera. TicketTitle is required, can optionally set priority, status, type, and assignment.
Get detailed information about a specific ticket by its ID. Returns full ticket details including comments, work hours, and billing info.
List tickets in Atera with optional filters. Returns ticket details including status, priority, customer, technician assignment, and SLA information.
Update an existing ticket in Atera. Only specify the fields you want to change.
Navigation pattern requires a navigation step before domain tools become available. Agents must call atera_navigate first, then call domain-specific tools. This is not wrong, but it adds friction, agents must model state ('which domain am I in?') rather than having all tools available at once. Consider flattening the tool namespace or making navigation optional.
Error handling strategy not visible. Tool definitions do not include error case descriptions or recovery guidance. It is unclear how the server handles invalid inputs (e.g. invalid customerId, malformed email), rate limiting, or API failures. LLMs need explicit error categories (retryable, user-fixable, fatal) to plan recovery.
Missing dry-run or confirmation for destructive operations. Create and update tools (atera_customers_create, atera_tickets_create, atera_tickets_update, atera_tickets_add_comment) do not offer a dry-run mode or explicit confirmation step. Agents can accidentally create duplicate records or update tickets incorrectly.
Parameter descriptions could be more specific in some cases. E.g. atera_tickets_list has 'Filter by ticket status (Open, Pending, Resolved, Closed)' but does not state whether the enum is required or if omitting it returns all statuses. Some parameters like 'page' and 'itemsInPage' state defaults, but others do not clarify what happens if omitted.