Atera Agents

SkillSearch

Atera RMM agents: agent records and fields, online/offline status, endpoint search and monitoring, PowerShell and script execution, and agent lifecycle.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Atera Agents skill

What this skill tells your AI

The instructions your AI receives, as published by wyre-ai/msp-claude-plugins in msp-claude-plugins/atera/atera/skills/agents/SKILL.md and read by ahel’s review.

Overview

Atera agents are lightweight software installed on managed endpoints that provide remote monitoring and management capabilities. Agents report system information, health metrics, and enable remote execution of scripts and commands.

Anti-triggers

  • Atera's own "devices" — an Atera device is an agentless HTTP, SNMP, or TCP monitor with no agent behind it; use atera-devices. Atera is the odd one out: in ncentral-devices, ninjaone-devices, and datto-rmm-devices "device" means the managed endpoint, which here is an agent.
  • Claude subagents — "agent" here is an Atera endpoint sensor, never an AI subagent definition under agents/*.md. In halopsa-agents it is a human technician, and in liongard-overview it is one inspection runner per customer site.
  • Running a script on an endpoint managed by another RMM — "run PowerShell on this machine" matches every RMM in this marketplace equally, and none of them reach Atera's agents. Confirm which RMM the endpoint is enrolled in, then use syncro-assets, superops-runbooks, immybot-script-execution, ncentral-monitoring-tasks, connectwise-automate-scripts, or datto-rmm-jobs.
  • The alert an agent raised — agent records carry health and inventory, not monitoring output; use atera-alerts.

Agent Information Fields

Core Fields

FieldTypeDescription
AgentIDintUnique agent identifier
AgentNamestringAgent display name
MachineIDintMachine reference ID
CustomerIDintAssociated customer ID
CustomerNamestringCustomer display name
OnlinebooleanCurrent online status
LastSeenDatedatetimeLast communication timestamp

System Information

FieldTypeDescription
MachineNamestringComputer hostname
DomainNamestringAD domain (if joined)
OSstringOperating system name
OSVersionstringOS version/build
OSTypestringWindows, Mac, Linux
OSSerialNumberstringOS serial number
ProcessorstringCPU model
MemorylongTotal RAM in bytes

Network Information

FieldTypeDescription
IPAddressesstringComma-separated IP list
MacAddressesstringNetwork adapter MACs
LastIPAddressstringMost recent IP

Agent Status

FieldTypeDescription
AgentVersionstringInstalled agent version
CreatedDatedatetimeWhen agent was installed
MonitoredbooleanMonitoring enabled
MonitoredStatusstringMonitoring state
FavoritebooleanMarked as favorite

Hardware Details

FieldTypeDescription
VendorstringHardware manufacturer
VendorSerialNumberstringDevice serial number
VendorModelstringDevice model
VendorBrandModelstringFull brand/model string

API Patterns

List All Agents (Paginated)

GET /api/v3/agents?page=1&itemsInPage=50
X-API-KEY: {api_key}

Response:

{
  "items": [
    {
      "AgentID": 98765,
      "AgentName": "DESKTOP-ABC123",
      "MachineName": "DESKTOP-ABC123",
      "CustomerID": 12345,
      "CustomerName": "Acme Corporation",
      "Online": true,
      "LastSeenDate": "2024-02-15T14:30:00Z",
      "OS": "Windows 11 Pro",
      "OSType": "Windows",
      "Processor": "Intel Core i7-12700",
      "Memory": 34359738368,
      "IPAddresses": "192.168.1.100,10.0.0.50",
      "AgentVersion": "2.0.1.25",
      "Monitored": true
    }
  ],
  "totalItems": 500,
  "page": 1,
  "itemsInPage": 50,
  "totalPages": 10
}

Get Agent by ID

GET /api/v3/agents/{agentId}
X-API-KEY: {api_key}

Response:

{
  "AgentID": 98765,
  "AgentName": "DESKTOP-ABC123",
  "MachineName": "DESKTOP-ABC123",
  "DomainName": "ACME.LOCAL",
  "CustomerID": 12345,
  "CustomerName": "Acme Corporation",
  "Online": true,
  "LastSeenDate": "2024-02-15T14:30:00Z",
  "OS": "Windows 11 Pro",
  "OSVersion": "10.0.22621",
  "OSType": "Windows",
  "OSSerialNumber": "00330-80000-00000-AA123",
  "Processor": "Intel(R) Core(TM) i7-12700 CPU @ 2.10GHz",
  "Memory": 34359738368,
  "IPAddresses": "192.168.1.100",
  "MacAddresses": "00:1A:2B:3C:4D:5E",
  "Vendor": "Dell Inc.",
  "VendorSerialNumber": "ABC1234567",
  "VendorModel": "OptiPlex 7090",
  "AgentVersion": "2.0.1.25",
  "CreatedDate": "2023-06-15T09:00:00Z",
  "Monitored": true,
  "MonitoredStatus": "Healthy"
}

Get Agents by Customer

GET /api/v3/agents/customer/{customerId}
X-API-KEY: {api_key}

Get Agent by Machine Name

GET /api/v3/agents/machine/{machineName}
X-API-KEY: {api_key}

Delete Agent

DELETE /api/v3/agents/{agentId}
X-API-KEY: {api_key}

Response:

{
  "ActionID": 12345,
  "Success": true
}

PowerShell Execution

Run PowerShell Script

POST /api/v3/agents/{agentId}/powershell
X-API-KEY: {api_key}
Content-Type: application/json
{
  "Script": "Get-Service | Where-Object {$_.Status -eq 'Running'} | Select-Object Name, DisplayName"
}

Response:

{
  "ActionID": 55555,
  "Status": "Queued",
  "Message": "Script queued for execution"
}

PowerShell Best Practices

  1. Keep scripts concise - Long-running scripts may timeout
  2. Handle errors - Use try/catch blocks
  3. Return structured data - Use Select-Object for clean output
  4. Avoid interactive commands - No prompts or user input
  5. Test locally first - Validate before remote execution

Common PowerShell Commands

Get system information:

Get-ComputerInfo | Select-Object CsName, WindowsVersion, OsArchitecture

Check disk space:

Get-WmiObject Win32_LogicalDisk | Select-Object DeviceID, Size, FreeSpace

List running processes:

Get-Process | Sort-Object WorkingSet -Descending | Select-Object -First 10 Name, WorkingSet

Check Windows updates:

Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 5

Restart a service:

Restart-Service -Name "Spooler" -Force

Agent Online Status

Checking Online Status

The Online field indicates current connectivity:

StatusDescriptionAction
trueAgent communicatingCommands available
falseAgent not respondingCheck network/power

Handling Offline Agents

  1. Check LastSeenDate - Determine when agent was last online
  2. Verify network - Ensure device has connectivity
  3. Check power state - Device may be powered off
  4. Review alerts - Look for related alerts
  5. Contact user - Verify device status

Offline Thresholds

DurationInterpretationAction
< 5 minTemporaryNormal fluctuation
5-30 minShort outageMonitor
30 min - 4 hrExtended outageInvestigate
> 4 hrLong-term offlineContact customer

Agent Lifecycle

Installation

  1. Generate installer from Atera portal
  2. Download and run on target device
  3. Agent registers with Atera cloud
  4. Appears in agent list within minutes

Monitoring

  • Agent sends heartbeat every few minutes
  • Reports system metrics and alerts
  • Receives commands from portal/API

Removal

  1. Uninstall from device (if accessible)
  2. Delete via API or portal
  3. Agent record removed from system

Error Handling

Common API Errors

CodeMessageResolution
400Invalid agent IDVerify agent exists
401UnauthorizedCheck API key
403ForbiddenVerify permissions
404Agent not foundConfirm agent ID
429Rate limitedWait and retry (700 req/min)

PowerShell Execution Errors

ErrorCauseResolution
Agent offlineDevice not connectedWait for reconnection
Script timeoutExecution too longSimplify script
Access deniedInsufficient privilegesCheck agent permissions
Syntax errorInvalid PowerShellValidate script locally

Best Practices

  1. Monitor agent health - Track online/offline patterns
  2. Keep agents updated - Use latest agent version
  3. Use meaningful names - Rename agents for clarity
  4. Group by customer - Organize for efficient management
  5. Review regularly - Remove stale/decommissioned agents
  6. Document scripts - Comment PowerShell for reuse
  7. Test before bulk execution - Validate on single agent first

Related Skills

Signals

GitHub stars
45
Forks
24
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
atera-agents
Source
github.com/wyre-ai/msp-claude-plugins