Check devices, alerts and tickets in Atera, and open tickets, comment or resolve alerts.
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Add a comment to a ticket, either as a technician (technician_id, with is_internal=true for a private note or false for a reply the end user sees) or on behalf of an end user (enduser_id). Atera: POST /api/v3/tickets/{ticketId}/comments.
The comment text.
The ticket's TicketID.
Post as this end-user contact (EndUserID).
Technician comments only: true = internal note (default), false = visible reply.
Post as this technician (TechnicianId).
Comment time in UTC, ISO 8601. Defaults to now.
The technician's email (optional, with technician_id).
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Add a comment to a ticket, either as a technician (technician_id, with is_internal=true for a private note or false for a reply the end user sees) or on behalf of an end user (enduser_id). Atera: POST /api/v3/tickets/{ticketId}/comments.
| Argument | Type | Description |
|---|---|---|
| comment* | string | The comment text. |
| ticket_id* | integer | The ticket's TicketID. |
| enduser_id | integer | Post as this end-user contact (EndUserID). |
| is_internal | boolean | Technician comments only: true = internal note (default), false = visible reply. |
| technician_id | integer | Post as this technician (TechnicianId). |
| timestamp_utc | string | Comment time in UTC, ISO 8601. Defaults to now. |
| technician_email | string | The technician's email (optional, with technician_id). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ticket_id",
"comment"
],
"properties": {
"comment": {
"type": "string",
"minLength": 1,
"description": "The comment text."
},
"ticket_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The ticket's TicketID.",
"exclusiveMinimum": 0
},
"enduser_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Post as this end-user contact (EndUserID).",
"exclusiveMinimum": 0
},
"is_internal": {
"type": "boolean",
"default": true,
"description": "Technician comments only: true = internal note (default), false = visible reply."
},
"technician_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Post as this technician (TechnicianId).",
"exclusiveMinimum": 0
},
"timestamp_utc": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"description": "Comment time in UTC, ISO 8601. Defaults to now."
},
"technician_email": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"description": "The technician's email (optional, with technician_id)."
}
}
}Create a new end-user contact under an existing customer (give customer_id or customer_name). Atera: POST /api/v3/contacts.
| Argument | Type | Description |
|---|---|---|
| email* | string | The contact's email (required). |
| phone | string | |
| job_title | string | |
| last_name | string | |
| first_name | string | |
| customer_id | integer | The customer's CustomerID. |
| mobile_phone | string | |
| customer_name | string | The customer's name, if you don't have the id. |
| is_contact_person | boolean | Mark as the customer's primary contact person. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"description": "The contact's email (required)."
},
"phone": {
"type": "string"
},
"job_title": {
"type": "string"
},
"last_name": {
"type": "string"
},
"first_name": {
"type": "string"
},
"customer_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The customer's CustomerID.",
"exclusiveMinimum": 0
},
"mobile_phone": {
"type": "string"
},
"customer_name": {
"type": "string",
"description": "The customer's name, if you don't have the id."
},
"is_contact_person": {
"type": "boolean",
"description": "Mark as the customer's primary contact person."
}
}
}Open a new helpdesk ticket. Give either end_user_id (an existing contact's EndUserID) or all of end_user_first_name, end_user_last_name and end_user_email to create a new contact with it. Atera: POST /api/v3/tickets.
| Argument | Type | Description |
|---|---|---|
| type | string | |
| title* | string | Ticket title. |
| impact | string | |
| status | string | Ticket status name, e.g. Open, Pending, Resolved or Closed (or a custom status). |
| priority | string | |
| description* | string | Ticket description (first comment). |
| end_user_id | integer | Existing contact's EndUserID. |
| end_user_email | string | New contact's email. |
| end_user_phone | string | New contact's phone. |
Find the agent(s) installed on a machine by its machine name, e.g. DESKTOP-4F2K9. Atera: GET /api/v3/agents/machine/{machineName}.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, 1-based (default 1). |
| machine_name* | string | The machine (computer) name. |
| items_in_page | integer | Items per page, 1-500 (default 20). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"machine_name"
],
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Page number, 1-based (default 1)."
},
"machine_name": {
"type": "string",
"minLength": 1,
"description": "The machine (computer) name."
},
"items_in_page": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Items per page, 1-500 (default 20)."
}
}
}Fetch the Atera account this key belongs to — company name, plan, country and timezone. A cheap way to confirm the key works. Atera: GET /api/v3/account.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Fetch a single agent by its AgentID — full device inventory, online status, IPs, OS build and last reboot. Atera: GET /api/v3/agents/{agentId}.
| Argument | Type | Description |
|---|---|---|
| agent_id* | integer | The agent's AgentID. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"agent_id"
],
"properties": {
"agent_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The agent's AgentID.",
"exclusiveMinimum": 0
}
}
}List the Windows/OS patches on one device — either those still AVAILABLE (missing) or those already INSTALLED. Takes the device's DeviceGuid (from atera_list_agents / atera_get_agent), not the AgentID. Atera: GET /api/v3/agents/{deviceGuid}/available-patches or /installed-patches.
| Argument | Type | Description |
|---|---|---|
| kind | string | available = patches not yet installed (default); installed = patch history. |
| device_guid* | string | The device's DeviceGuid. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"device_guid"
],
"properties": {
"kind": {
"enum": [
"available",
"installed"
],
"type": "string",
"default": "available",
"description": "available = patches not yet installed (default); installed = patch history."
},
"device_guid": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "The device's DeviceGuid."
}
}
}Fetch a single customer by id — address, domain, phone, notes. Atera: GET /api/v3/customers/{customerId}.
| Argument | Type | Description |
|---|---|---|
| customer_id* | integer | The customer's CustomerID. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"customer_id"
],
"properties": {
"customer_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The customer's CustomerID.",
"exclusiveMinimum": 0
}
}
}Fetch a single ticket by its TicketID. Atera: GET /api/v3/tickets/{ticketId}.
| Argument | Type | Description |
|---|---|---|
| ticket_id* | integer | The ticket's TicketID. |
| include_relations | boolean | Include parent/child ticket relation info. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ticket_id"
],
"properties": {
"ticket_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The ticket's TicketID.",
"exclusiveMinimum": 0
},
"include_relations": {
"type": "boolean",
"description": "Include parent/child ticket relation info."
}
}
}List Atera agents — the managed machines — with online status, last seen, OS, hardware and logged-in user. Pass customer_id to list only one customer's devices. Atera: GET /api/v3/agents or GET /api/v3/agents/customer/{customerId}.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, 1-based (default 1). |
| customer_id | integer | Only this customer's agents. |
| items_in_page | integer | Items per page, 1-500 (default 20). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Page number, 1-based (default 1)."
},
"customer_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only this customer's agents.",
"exclusiveMinimum": 0
},
"items_in_page": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Items per page, 1-500 (default 20)."
}
}
}List monitoring alerts (disk, CPU, availability, hardware...) with severity, device, customer and linked ticket. Filter by status. Atera: GET /api/v3/alerts.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, 1-based (default 1). |
| alert_status | string | Only alerts in this state. |
| items_in_page | integer | Items per page, 1-500 (default 20). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Page number, 1-based (default 1)."
},
"alert_status": {
"enum": [
"Open",
"Resolved",
"Snoozed"
],
"type": "string",
"description": "Only alerts in this state."
},
"items_in_page": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Items per page, 1-500 (default 20)."
}
}
}List end-user contacts, optionally searching by whole or partial email or phone number. Atera: GET /api/v3/contacts.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, 1-based (default 1). |
| string | Whole or partial email to match. | |
| phone | string | Whole or partial phone number to match. |
| items_in_page | integer | Items per page, 1-500 (default 20). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Page number, 1-based (default 1)."
},
"email": {
"type": "string",
"description": "Whole or partial email to match."
},
"phone": {
"type": "string",
"description": "Whole or partial phone number to match."
},
"items_in_page": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Items per page, 1-500 (default 20)."
}
}
}List service contracts (retainer, block hours, hourly, remote monitoring...) with their rates and billing periods. Pass customer_id for one customer's contracts. Atera: GET /api/v3/contracts or GET /api/v3/contracts/customer/{customerId}.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, 1-based (default 1). |
| customer_id | integer | Only this customer's contracts. |
| items_in_page | integer | Items per page, 1-500 (default 20). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Page number, 1-based (default 1)."
},
"customer_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only this customer's contracts.",
"exclusiveMinimum": 0
},
"items_in_page": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Items per page, 1-500 (default 20)."
}
}
}List the customers (client companies) managed in Atera, paginated. Atera: GET /api/v3/customers.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, 1-based (default 1). |
| items_in_page | integer | Items per page, 1-500 (default 20). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Page number, 1-based (default 1)."
},
"items_in_page": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Items per page, 1-500 (default 20)."
}
}
}List knowledge-base articles with their product, keywords, section, category and ratings. Atera: GET /api/v3/knowledgebases.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, 1-based (default 1). |
| items_in_page | integer | Items per page, 1-500 (default 20). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Page number, 1-based (default 1)."
},
"items_in_page": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Items per page, 1-500 (default 20)."
}
}
}List the comment thread on one ticket — end-user and technician replies, with internal notes flagged. Atera: GET /api/v3/tickets/{ticketId}/comments.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, 1-based (default 1). |
| ticket_id* | integer | The ticket's TicketID. |
| items_in_page | integer | Items per page, 1-50 (default 20). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ticket_id"
],
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Page number, 1-based (default 1)."
},
"ticket_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The ticket's TicketID.",
"exclusiveMinimum": 0
},
"items_in_page": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Items per page, 1-50 (default 20)."
}
}
}List the time entries logged on one ticket — technician, start/end, billable, on-site, rate. Atera: GET /api/v3/tickets/{ticketId}/workhoursrecords.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, 1-based (default 1). |
| ticket_id* | integer | The ticket's TicketID. |
| items_in_page | integer | Items per page, 1-50 (default 20). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ticket_id"
],
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Page number, 1-based (default 1)."
},
"ticket_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The ticket's TicketID.",
"exclusiveMinimum": 0
},
"items_in_page": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Items per page, 1-50 (default 20)."
}
}
}List helpdesk tickets with priority, status, type, end user, technician, SLA durations and last comments. Filter by customer and/or status. Atera: GET /api/v3/tickets.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, 1-based (default 1). |
| customer_id | integer | Only this customer's tickets. |
| items_in_page | integer | Items per page, 1-50 (default 20). |
| ticket_status | string | Ticket status name, e.g. Open, Pending, Resolved or Closed (or a custom status). |
| include_relations | boolean | Include parent/child ticket relation info. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Page number, 1-based (default 1)."
},
"customer_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only this customer's tickets.",
"exclusiveMinimum": 0
},
"items_in_page": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Items per page, 1-50 (default 20)."
},
"ticket_status": {
"type": "string",
"minLength": 1,
"description": "Ticket status name, e.g. Open, Pending, Resolved or Closed (or a custom status)."
},
"include_relations": {
"type": "boolean",
"description": "Include parent/child ticket relation info."
}
}
}Mark one monitoring alert as resolved. If the underlying condition persists, Atera raises it again on the next check. Atera: PUT /api/v3/alerts/{alertId}.
| Argument | Type | Description |
|---|---|---|
| alert_id* | integer | The alert's AlertID. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"alert_id"
],
"properties": {
"alert_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The alert's AlertID.",
"exclusiveMinimum": 0
}
}
}Change a ticket's title, status, type, priority, impact or assigned technician. Only the fields you pass are sent. Atera: PUT /api/v3/tickets/{ticketId}.
| Argument | Type | Description |
|---|---|---|
| type | string | |
| title | string | New title. |
| impact | string | |
| status | string | Ticket status name, e.g. Open, Pending, Resolved or Closed (or a custom status). |
| priority | string | |
| ticket_id* | integer | The ticket's TicketID. |
| technician_email | string | Reassign to the technician with this email. |
| technician_contact_id | integer | Reassign to this technician (TechnicianContactID). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ticket_id"
],
"properties": {
"type": {
"enum": [
"Incident",
"Problem",
"Request",
"Change"
],
"type": "string"
},
"title": {
"type": "string",
"minLength": 1,
"description": "New title."
},
"impact": {
"enum": [
"NoImpact",
"SiteDown",
"ServerIssue",
"Minor",
"Major",
"Crisis"
],
"type": "string"
},
"status": {
"type": "string",
"minLength": 1,
"description": "Ticket status name, e.g. Open, Pending, Resolved or Closed (or a custom status)."
},
"priority": {
"enum": [
"Low",
"Medium",
"High",
"Critical"
],
"type": "string"
},
"ticket_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The ticket's TicketID.",
"exclusiveMinimum": 0
},
"technician_email": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"description": "Reassign to the technician with this email."
},
"technician_contact_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Reassign to this technician (TechnicianContactID).",
"exclusiveMinimum": 0
}
}
}| technician_email |
| string |
| Assign to the technician with this email. |
| end_user_last_name | string | New contact's last name. |
| end_user_first_name | string | New contact's first name. |
| technician_contact_id | integer | Assign to this technician (TechnicianContactID). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"title",
"description"
],
"properties": {
"type": {
"enum": [
"Incident",
"Problem",
"Request",
"Change"
],
"type": "string"
},
"title": {
"type": "string",
"minLength": 1,
"description": "Ticket title."
},
"impact": {
"enum": [
"NoImpact",
"SiteDown",
"ServerIssue",
"Minor",
"Major",
"Crisis"
],
"type": "string"
},
"status": {
"type": "string",
"minLength": 1,
"description": "Ticket status name, e.g. Open, Pending, Resolved or Closed (or a custom status)."
},
"priority": {
"enum": [
"Low",
"Medium",
"High",
"Critical"
],
"type": "string"
},
"description": {
"type": "string",
"minLength": 1,
"description": "Ticket description (first comment)."
},
"end_user_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Existing contact's EndUserID.",
"exclusiveMinimum": 0
},
"end_user_email": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"description": "New contact's email."
},
"end_user_phone": {
"type": "string",
"description": "New contact's phone."
},
"technician_email": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"description": "Assign to the technician with this email."
},
"end_user_last_name": {
"type": "string",
"description": "New contact's last name."
},
"end_user_first_name": {
"type": "string",
"description": "New contact's first name."
},
"technician_contact_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Assign to this technician (TechnicianContactID).",
"exclusiveMinimum": 0
}
}
}