oci ghcr.io/wyre-ai/atera-mcp:v1.5.10stdioApache-2.0updated 8d ago
Model Context Protocol (MCP) server for interacting with the Atera RMM API. Implements a decision tree architecture for efficient tool discovery and reduced context overhead.
What can you do with Atera?
Atera MCP Server
Model Context Protocol (MCP) server for interacting with the Atera RMM API. Implements a decision tree architecture for efficient tool discovery and reduced context overhead.
One-Click Deployment
[!IMPORTANT] Before you click: this server depends on
@wyre-technology/node-atera, which is hosted on the GitHub Packages npm registry. GitHub Packages has no anonymous access — even though the package is public, everynpm installneeds a token. The cloud builder runsnpm installfor you, so you must give it one, or the build fails withnpm error 401 Unauthorized ... npm.pkg.github.com.
- Create a GitHub Personal Access Token with the
read:packagesscope (classic token). Any GitHub account works — you do not need to be a member of theWYRE-AIorg to read its public packages.- Add it as a build variable when prompted by the deploy flow:
- Cloudflare Workers → set a build variable named
NODE_AUTH_TOKENto your PAT (Workers → Settings → Build → Variables and Secrets).- DigitalOcean App Platform → set an encrypted env var named
GITHUB_TOKENwith scope Build Time to your PAT (the.do/app.yamlalready declares it).
[!NOTE] The DigitalOcean target builds the full Docker image and runs the complete MCP server over HTTP — this is the recommended path for operators. The Cloudflare Workers target is currently a thin entrypoint stub (the
/mcproute returns501 Not Implemented) and is best suited to gateway-style deployments; for a full self-hosted server prefer DigitalOcean or the prebuilt container image (ghcr.io/wyre-ai/atera-mcp).
Features
- Decision Tree Navigation: Tools are organized by domain (customers, agents, tickets, alerts, contacts). Navigate to a domain first, then use domain-specific tools.
- Lazy Client Loading: The Atera client is only instantiated when first needed, reducing startup time.
- Full API Coverage: Supports customer management, device/agent monitoring, ticket operations, alert handling, and contact management.
- Rate Limit Handling: Built-in rate limiting via the node-atera client (700 req/min).
- Interactive Ticket Card (MCP Apps):
atera_tickets_getrenders as an interactive card in MCP Apps hosts (Claude Desktop/web) with an in-card "Add comment" round-trip viaatera_tickets_add_comment(internal-only by default); plain-JSON behavior is unchanged in other hosts. The card is neutral by default and brandable viawindow.__BRAND__injection orMCP_BRAND_*env vars (MCP_BRAND_NAME,MCP_BRAND_LOGO_URL,MCP_BRAND_PRIMARY_COLOR,MCP_BRAND_ACCENT_COLOR,MCP_BRAND_BG,MCP_BRAND_TEXT) — no rebuild needed.
Installation
This package is published to the GitHub Packages npm registry, which requires a token even for public packages. Authenticate once, then install:
# Authenticate npm to GitHub Packages (token needs the read:packages scope)
export NODE_AUTH_TOKEN=$(gh auth token) # or a PAT with read:packages
npm install @wyre-ai/atera-mcp
The repo's .npmrc already points the @wyre-ai scope at GitHub Packages and
reads the token from NODE_AUTH_TOKEN, so no further config is needed.
Or build from source:
git clone https://github.com/WYRE-AI/atera-mcp.git
cd atera-mcp
npm install
npm run build
Configuration
Set the following environment variable:
| Variable | Required | Description |
|---|---|---|
ATERA_API_KEY |
Yes | Your Atera API key from Admin > API |
Getting Your API Key
- Log into Atera as an admin
- Go to Admin > API
- Generate or copy your API key
Usage
With Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"atera": {
"command": "npx",
"args": ["@wyre-ai/atera-mcp"],
"env": {
"ATERA_API_KEY": "your-api-key-here"
}
}
}
}
With MCP Gateway
Configure in the gateway registry:
{
"name": "atera-mcp",
"command": "node",
"args": ["/path/to/atera-mcp/dist/index.js"],
"env": {
"ATERA_API_KEY": "${ATERA_API_KEY}"
}
}
Docker
docker build -t atera-mcp .
docker run -e ATERA_API_KEY=your-key atera-mcp
Decision Tree Architecture
This server uses a navigation-based approach to tool discovery:
- Start: Only
atera_navigatetool is available - Navigate: Call
atera_navigatewith a domain (customers, agents, tickets, alerts, contacts) - Domain Tools: After navigation, domain-specific tools become available
- Back: Use
atera_backto return to domain selection
This architecture:
- Reduces tool list size for better LLM performance
- Groups related operations logically
- Minimizes context window usage
Available Domains
Customers
Manage customer (company) records.
atera_customers_list- List customers with paginationatera_customers_get- Get customer by IDatera_customers_create- Create new customer
Agents
Manage devices/endpoints with the Atera agent installed.
atera_agents_list- List agents with optional customer filteratera_agents_get- Get agent by IDatera_agents_get_by_machine- Get agent by machine name
Tickets
Manage service tickets.
atera_tickets_list- List tickets with filtersatera_tickets_get- Get ticket by IDatera_tickets_create- Create new ticketatera_tickets_update- Update existing ticket
Alerts
Monitor alerts from devices and agents.
atera_alerts_list- List alerts with filtersatera_alerts_get- Get alert by IDatera_alerts_by_agent- List alerts for an agentatera_alerts_by_device- List alerts for a device
Contacts
Manage customer contacts.
atera_contacts_list- List all contactsatera_contacts_get- Get contact by IDatera_contacts_by_customer- List contacts for a customer
Example Conversation
User: List all open tickets
Claude: I'll navigate to the tickets domain and list open tickets.
[Calls atera_navigate with domain: "tickets"]
[Calls atera_tickets_list with ticketStatus: "Open"]
Result: Found 15 open tickets...
Development
# Install dependencies
npm install
# Build
npm run build
# Run in development
npm run dev
# Type check
npm run typecheck
# Lint
npm run lint
# Test
npm run test
API Rate Limits
Atera API allows 700 requests per minute. The underlying node-atera client handles rate limiting automatically with request queuing.
License
Apache-2.0
Contributing
Contributions welcome! Please read our contributing guidelines and submit PRs to the main branch.
Install
Add Atera to your client. Pick the one you use.
claude mcp add ghcr-io-wyre-ai-atera-mcp-v1-5-10 -- docker run -i --rm ghcr.io/wyre-ai/atera-mcp:v1.5.10codex mcp add ghcr-io-wyre-ai-atera-mcp-v1-5-10 -- docker run -i --rm ghcr.io/wyre-ai/atera-mcp:v1.5.10amp mcp add ghcr-io-wyre-ai-atera-mcp-v1-5-10 -- docker run -i --rm ghcr.io/wyre-ai/atera-mcp:v1.5.10{
"mcpServers": {
"ghcr-io-wyre-ai-atera-mcp-v1-5-10": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/wyre-ai/atera-mcp:v1.5.10"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"ghcr-io-wyre-ai-atera-mcp-v1-5-10": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/wyre-ai/atera-mcp:v1.5.10"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"ghcr-io-wyre-ai-atera-mcp-v1-5-10","command":"docker","args":["run","-i","--rm","ghcr.io/wyre-ai/atera-mcp:v1.5.10"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"ghcr-io-wyre-ai-atera-mcp-v1-5-10": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/wyre-ai/atera-mcp:v1.5.10"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"ghcr-io-wyre-ai-atera-mcp-v1-5-10": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/wyre-ai/atera-mcp:v1.5.10"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"ghcr-io-wyre-ai-atera-mcp-v1-5-10": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/wyre-ai/atera-mcp:v1.5.10"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"ghcr-io-wyre-ai-atera-mcp-v1-5-10": {
"type": "local",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/wyre-ai/atera-mcp:v1.5.10"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"ghcr-io-wyre-ai-atera-mcp-v1-5-10": {
"command": {
"path": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/wyre-ai/atera-mcp:v1.5.10"
]
}
}
}
}Add to your Zed `settings.json`.
docker run -i --rm ghcr.io/wyre-ai/atera-mcp:v1.5.10Run `goose configure`, choose **Add Extension → Command-line Extension**, and paste this command.
Score
39 / 100
Incomplete
- Documentation25/25
- Maintenance19/25
- Trust16/20
- Capability0/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 1 days ago
- Has a release history
- Repository is not archived
- Licensed Apache-2.0
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Version history
| Versions | Published |
|---|---|
| 1.5.10Latest | Aug 26, 2026 |