io.usefulapi/atera
REMOTE · ATERA.USEFULAPI.IO · SCANNED OCT 3
Check devices, alerts and tickets in Atera, and open tickets, comment or resolve alerts.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security89
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token. View diagnostics → Pass
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
- The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents. View diagnostics → Partial
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability82
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 2156 tokens (~107/item across 20 items; 20 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management13
- Stability observed for 4 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage95
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 85% of tool parameters carry a description.Partial
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 20 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 20 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities60
- Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
How do I install the io.usefulapi/atera MCP server?
io.usefulapi/atera is a hosted endpoint at https://atera.usefulapi.io/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · atera.usefulapi.io
claude mcp add --transport http io-usefulapi-atera 'https://atera.usefulapi.io/mcp'
{
"mcpServers": {
"io-usefulapi-atera": {
"url": "https://atera.usefulapi.io/mcp"
}
}
} {
"servers": {
"io-usefulapi-atera": {
"type": "http",
"url": "https://atera.usefulapi.io/mcp"
}
}
} [mcp_servers.io-usefulapi-atera] url = "https://atera.usefulapi.io/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"io-usefulapi-atera": {
"type": "remote",
"url": "https://atera.usefulapi.io/mcp",
"enabled": true
}
}
} openclaw mcp add io-usefulapi-atera --url 'https://atera.usefulapi.io/mcp' --transport streamable-http
mcp_servers:
io-usefulapi-atera:
url: "https://atera.usefulapi.io/mcp" {
"McpServers": {
"io-usefulapi-atera": {
"Transport": "http",
"Url": "https://atera.usefulapi.io/mcp"
}
}
} assistant mcp add io-usefulapi-atera -t streamable-http -u 'https://atera.usefulapi.io/mcp'
{
"mcpServers": {
"io-usefulapi-atera": {
"type": "http",
"url": "https://atera.usefulapi.io/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 2 Oct 26 +1
- Server version: 1.3.0 → 1.5.1 functional
- 1 Oct 26 +5
- HTTPS: unverified → pass ▲ security
- Server version: 1.0.0 → 1.3.0 functional
- 30 Sept 26 +13
- Authorization: unverified → pass ▲ security
- First check of Authorization: partial security
- Stability: unverified → 0.03 ▲ functional
- 29 Sept 26 59
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Oct 2026 · Probed https://atera.usefulapi.io/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=usefulapi.io | CN=WE1,O=Google Trust Services,C=US | 13 Sept 2026 | 12 Dec 2026 | ECDSA 256 | ECDSA-SHA256 | d9be3287b0fde9630e825ba1f79bff3f |
| SANs: usefulapi.io, *.usefulapi.io | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of atera.usefulapi.io. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| io. | present | 57355 | 8 | Verified |
| usefulapi.io. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Enforced and verified
The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.
| Result | Enforced and verified |
|---|---|
| Enforced | On tool calls |
| HTTP status | 200 |
WWW-Authenticate challenge Bearer realm="OAuth", resource_metadata="https://atera.usefulapi.io/.well-known/oauth-protected-resource/mcp"
Bearer realm="OAuth", resource_metadata="https://atera.usefulapi.io/.well-known/oauth-protected-resource/mcp" Protected resource metadata
| Document | https://atera.usefulapi.io/.well-known/oauth-protected-resource/mcp |
|---|---|
| Retrieved | Yes |
| Resource | https://atera.usefulapi.io/mcp |
| Authorisation server | https://atera.usefulapi.io |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://atera.usefulapi.io/mcp | Verified | 200 | |
| http (plaintext) | http://atera.usefulapi.io/mcp | HTTPS enforced | 301 | https://atera.usefulapi.io/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
atera_add_ticket_comment Comment on a ticket ~194
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.
| Name | Type | Req | Description |
|---|---|---|---|
| comment | string | yes | The comment text. |
| enduser_id | integer | – | Post as this end-user contact (EndUserID). |
| is_internal | boolean | – | Technician comments only: true = internal note (default), false = visible reply. |
| technician_email | string | – | The technician's email (optional, with technician_id). |
| technician_id | integer | – | Post as this technician (TechnicianId). |
| ticket_id | integer | yes | The ticket's TicketID. |
| timestamp_utc | string | – | Comment time in UTC, ISO 8601. Defaults to now. |
No output schema declared.
No examples provided.
atera_create_contact Create a contact ~137
Create a new end-user contact under an existing customer (give customer_id or customer_name). Atera: POST /api/v3/contacts.
| Name | Type | Req | Description |
|---|---|---|---|
| customer_id | integer | – | The customer's CustomerID. |
| customer_name | string | – | The customer's name, if you don't have the id. |
| string | yes | The contact's email (required). | |
| first_name | string | – | – |
| is_contact_person | boolean | – | Mark as the customer's primary contact person. |
| job_title | string | – | – |
| last_name | string | – | – |
| mobile_phone | string | – | – |
| phone | string | – | – |
No output schema declared.
No examples provided.
atera_create_ticket Create a ticket ~239
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.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | yes | Ticket description (first comment). |
| end_user_email | string | – | New contact's email. |
| end_user_first_name | string | – | New contact's first name. |
| end_user_id | integer | – | Existing contact's EndUserID. |
| end_user_last_name | string | – | New contact's last name. |
| end_user_phone | string | – | New contact's phone. |
| impact | string | – | – |
| priority | string | – | – |
| status | string | – | Ticket status name, e.g. Open, Pending, Resolved or Closed (or a custom status). |
| technician_contact_id | integer | – | Assign to this technician (TechnicianContactID). |
| technician_email | string | – | Assign to the technician with this email. |
| title | string | yes | Ticket title. |
| type | string | – | – |
No output schema declared.
No examples provided.
atera_find_agents_by_machine Find agents by machine name ~106
Find the agent(s) installed on a machine by its machine name, e.g. DESKTOP-4F2K9. Atera: GET /api/v3/agents/machine/{machineName}.
| Name | Type | Req | Description |
|---|---|---|---|
| items_in_page | integer | – | Items per page, 1-500 (default 20). |
| machine_name | string | yes | The machine (computer) name. |
| page | integer | – | Page number, 1-based (default 1). |
No output schema declared.
No examples provided.
atera_get_account Get the account ~48
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
atera_get_agent Get one agent (device) ~62
Fetch a single agent by its AgentID — full device inventory, online status, IPs, OS build and last reboot. Atera: GET /api/v3/agents/{agentId}.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_id | integer | yes | The agent's AgentID. |
No output schema declared.
No examples provided.
atera_get_agent_patches Get an agent's patches ~114
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.
| Name | Type | Req | Description |
|---|---|---|---|
| device_guid | string | yes | The device's DeviceGuid. |
| kind | string | – | available = patches not yet installed (default); installed = patch history. |
No output schema declared.
No examples provided.
atera_get_customer Get one customer ~51
Fetch a single customer by id — address, domain, phone, notes. Atera: GET /api/v3/customers/{customerId}.
| Name | Type | Req | Description |
|---|---|---|---|
| customer_id | integer | yes | The customer's CustomerID. |
No output schema declared.
No examples provided.
atera_get_ticket Get one ticket ~62
Fetch a single ticket by its TicketID. Atera: GET /api/v3/tickets/{ticketId}.
| Name | Type | Req | Description |
|---|---|---|---|
| include_relations | boolean | – | Include parent/child ticket relation info. |
| ticket_id | integer | yes | The ticket's TicketID. |
No output schema declared.
No examples provided.
atera_list_agents List agents (devices) ~117
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}.
| Name | Type | Req | Description |
|---|---|---|---|
| customer_id | integer | – | Only this customer's agents. |
| items_in_page | integer | – | Items per page, 1-500 (default 20). |
| page | integer | – | Page number, 1-based (default 1). |
No output schema declared.
No examples provided.
atera_list_alerts List alerts ~99
List monitoring alerts (disk, CPU, availability, hardware...) with severity, device, customer and linked ticket. Filter by status. Atera: GET /api/v3/alerts.
| Name | Type | Req | Description |
|---|---|---|---|
| alert_status | string | – | Only alerts in this state. |
| items_in_page | integer | – | Items per page, 1-500 (default 20). |
| page | integer | – | Page number, 1-based (default 1). |
No output schema declared.
No examples provided.
atera_list_contacts List contacts ~102
List end-user contacts, optionally searching by whole or partial email or phone number. Atera: GET /api/v3/contacts.
| Name | Type | Req | Description |
|---|---|---|---|
| string | – | Whole or partial email to match. | |
| items_in_page | integer | – | Items per page, 1-500 (default 20). |
| page | integer | – | Page number, 1-based (default 1). |
| phone | string | – | Whole or partial phone number to match. |
No output schema declared.
No examples provided.
atera_list_contracts List contracts ~112
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}.
| Name | Type | Req | Description |
|---|---|---|---|
| customer_id | integer | – | Only this customer's contracts. |
| items_in_page | integer | – | Items per page, 1-500 (default 20). |
| page | integer | – | Page number, 1-based (default 1). |
No output schema declared.
No examples provided.
atera_list_customers List customers ~75
List the customers (client companies) managed in Atera, paginated. Atera: GET /api/v3/customers.
| Name | Type | Req | Description |
|---|---|---|---|
| items_in_page | integer | – | Items per page, 1-500 (default 20). |
| page | integer | – | Page number, 1-based (default 1). |
No output schema declared.
No examples provided.
atera_list_kb_articles List knowledge-base articles ~78
List knowledge-base articles with their product, keywords, section, category and ratings. Atera: GET /api/v3/knowledgebases.
| Name | Type | Req | Description |
|---|---|---|---|
| items_in_page | integer | – | Items per page, 1-500 (default 20). |
| page | integer | – | Page number, 1-based (default 1). |
No output schema declared.
No examples provided.
atera_list_ticket_comments List a ticket's comments ~97
List the comment thread on one ticket — end-user and technician replies, with internal notes flagged. Atera: GET /api/v3/tickets/{ticketId}/comments.
| Name | Type | Req | Description |
|---|---|---|---|
| items_in_page | integer | – | Items per page, 1-50 (default 20). |
| page | integer | – | Page number, 1-based (default 1). |
| ticket_id | integer | yes | The ticket's TicketID. |
No output schema declared.
No examples provided.
atera_list_ticket_work_hours List a ticket's work hours ~103
List the time entries logged on one ticket — technician, start/end, billable, on-site, rate. Atera: GET /api/v3/tickets/{ticketId}/workhoursrecords.
| Name | Type | Req | Description |
|---|---|---|---|
| items_in_page | integer | – | Items per page, 1-50 (default 20). |
| page | integer | – | Page number, 1-based (default 1). |
| ticket_id | integer | yes | The ticket's TicketID. |
No output schema declared.
No examples provided.
atera_list_tickets List tickets ~145
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.
| Name | Type | Req | Description |
|---|---|---|---|
| customer_id | integer | – | Only this customer's tickets. |
| include_relations | boolean | – | Include parent/child ticket relation info. |
| items_in_page | integer | – | Items per page, 1-50 (default 20). |
| page | integer | – | Page number, 1-based (default 1). |
| ticket_status | string | – | Ticket status name, e.g. Open, Pending, Resolved or Closed (or a custom status). |
No output schema declared.
No examples provided.
atera_resolve_alert Resolve an alert ~61
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}.
| Name | Type | Req | Description |
|---|---|---|---|
| alert_id | integer | yes | The alert's AlertID. |
No output schema declared.
No examples provided.
atera_update_ticket Update a ticket ~154
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}.
| Name | Type | Req | Description |
|---|---|---|---|
| impact | string | – | – |
| priority | string | – | – |
| status | string | – | Ticket status name, e.g. Open, Pending, Resolved or Closed (or a custom status). |
| technician_contact_id | integer | – | Reassign to this technician (TechnicianContactID). |
| technician_email | string | – | Reassign to the technician with this email. |
| ticket_id | integer | yes | The ticket's TicketID. |
| title | string | – | New title. |
| type | string | – | – |
No output schema declared.
No examples provided.
What is the io.usefulapi/atera MCP server?
io.usefulapi/atera is an MCP server listed in the public MCP registry as io.usefulapi/atera. Check devices, alerts and tickets in Atera, and open tickets, comment or resolve alerts. This page covers its hosted endpoint (https://atera.usefulapi.io/mcp).
Is the io.usefulapi/atera MCP server safe to use?
io.usefulapi/atera scores 78 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the io.usefulapi/atera MCP server expose?
io.usefulapi/atera exposes 20 tools: atera_get_account, atera_list_customers, atera_get_customer, atera_list_agents, atera_get_agent, and 15 more. Their descriptions and schemas cost roughly 2,156 tokens of context every time the server is loaded.
Does the io.usefulapi/atera MCP server require authentication?
Yes. io.usefulapi/atera asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.
Is the io.usefulapi/atera MCP server still maintained?
io.usefulapi/atera is still listed as active in the MCP registry. We last reached this channel on 3 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.