atera-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ATERA_ACCESS | No | `read` = read tools only (32), `write` = + create/update/comment/resolve (42), `full` = + delete (47). | read |
| ATERA_API_KEY | Yes | Atera API key. JWT tokens are sent as `Authorization: Bearer`, older keys as `X-API-KEY`. | |
| ATERA_BASE_URL | No | API base URL (tests, proxies). | https://app.atera.com/api/v3 |
| ATERA_TOOLSETS | No | Comma-separated subset to expose fewer tools: `account, customers, contacts, agents, alerts, tickets, contracts, knowledge, billing, customfields, devices, departments, rates`. | all |
| ATERA_TIMEOUT_MS | No | Timeout of one HTTP call to Atera. | 30000 |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_ticketsA | List tickets (summary: number, title, status, priority, customer, end user, technician, dates). Filter by status and/or customer. Newest first is not guaranteed: use list_modified_tickets for recent activity. |
| list_modified_ticketsB | Tickets modified since a date ("last_modified", default) or whose status changed ("status_modified"). Good for "what happened today / since Monday". |
| get_ticketB | Full ticket record: description (first comment), last end-user and technician comments, SLA dates and durations. |
| list_ticket_commentsB | Conversation of a ticket: author, date, internal flag and text of each comment. |
| get_ticket_work_hoursA | Time spent on a ticket: billable / non-billable totals, plus the individual time entries when entries=true. |
| list_ticket_attachmentsC | Attachments of a ticket (names and links as returned by Atera). |
| list_customersA | List customers (ID, name, domain, city, phone). Use find_customers to search by name. |
| find_customersA | Search customers whose name, domain or business number contains the query (case-insensitive). Use it to get a CustomerID from a company name. |
| get_customerB | Full customer record (address, notes, links…). |
| list_contactsA | List contacts (end users). Exact filter by email or phone is done by Atera. |
| find_contactsA | Search contacts whose name or email contains the query, optionally restricted to one customer. Use it to get an EndUserID. |
| get_contactC | Full contact record. |
| list_agentsA | List monitored machines (Atera agents): name, customer, OS, online status, last seen, logged-in user. Optionally only one customer. |
| find_agentsA | Search agents by machine name, logged-in user, IP or customer name (contains, case-insensitive), optionally only offline/online ones. For an exact machine name prefer get_agent_by_machine. |
| get_agentB | Full agent record: hardware, OS, Office, disks, battery, IP/MAC addresses, last reboot… |
| get_agent_by_machineC | Agents whose machine name is exactly this one (Atera lookup). |
| get_agent_patchesB | Installed or available (missing) Windows updates of a device, by DeviceGuid. |
| list_alertsA | List alerts. Status is filtered by Atera; severity, customer and agent filters scan up to maxPages pages. |
| get_alertB | Full alert record (thresholds, message, related ticket…). |
| get_accountA | The Atera account behind the API key: company, plan, time zone. |
| list_contractsB | Customer contracts (retainer, block hours, hourly…), optionally for one customer. |
| get_contractB | Full contract record, including rates and included hours. |
| list_kb_articlesB | Knowledge base articles. With query, scans articles whose product, keywords, category, section or content contains it. |
| list_invoicesC | Billing invoices (number, date, contract, totals). |
| get_invoiceB | Full invoice with line items, issuer and recipient. |
| list_custom_field_definitionsB | Custom fields defined in Atera: name, data type, target entity and allowed values. |
| get_custom_fieldsC | Custom field values of one entity (all fields, or a single one with fieldName). |
| list_devicesA | Network-monitored devices (generic, TCP, SNMP or HTTP) — not the agents installed on machines. |
| get_deviceC | One network-monitored device. |
| list_departmentsC | Customer departments. |
| get_departmentC | One department. |
| list_ratesC | Billing rates: products or expenses. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 32 tools
Tools are grouped by distinct Atera resources, and descriptions proactively distinguish easily confused pairs such as list_customers/find_customers, list_devices/list_agents, and get_agent/find_agents/get_agent_by_machine. The main residual ambiguity is the multiple agent-retrieval variants, but selection guidance is strong.
All tool names use a predictable snake_case verb_noun pattern with list_, get_, and find_ prefixes. Compound names such as get_agent_by_machine and get_ticket_work_hours still follow the same convention without mixing casing or verb styles.
With 32 tools, the server exceeds the rubric's 25+ threshold for 'too many.' Although Atera is a broad platform, many tools are list/get/search variants that could be consolidated or better namespaced, making the surface heavy for an agent to navigate.
The read/query surface is comprehensive across customers, contacts, agents, devices, tickets, alerts, invoices, contracts, KB articles, and custom fields. However, there are no create, update, or delete operations, so the set cannot perform common lifecycle actions such as opening or updating tickets, adding comments, or managing records.