
Atera
io.github.wyre-technology由 GitHub 帳號 wyre-technology 發布v1.5.9更新於 Oct 27, 2026
MCP server for Atera RMM — customers, tickets, and more.
概覽
面向 Atera RMM API 的 MCP 伺服器,讓助理查看 Atera 帳戶中的客戶、代理裝置、工單、告警與聯絡人。
- 可以做什麼
- 在客戶、代理、工單、告警、聯絡人等領域間導覽,並可返回領域選擇
- 列出、查詢與建立客戶記錄
- 列出與查詢代理裝置,包括依機器名稱查找
- 列出、檢視、建立與更新服務工單,並在 MCP Apps 宿主中顯示互動式工單卡片
- 列出告警,並依代理或裝置篩選
- 列出聯絡人,並依客戶篩選
- 適用情境
- 適合使用 Atera 的託管服務商或 IT 團隊,希望助理直接查詢客戶、端點、工單與告警,或不必切換到 Atera 主控台就能草擬與更新工單。
- 執行需求
- 以本機 stdio 程序執行(npm 套件或容器映像)。需要 Atera 管理員在 Admin > Data management > API 建立的 API 權杖或舊版 API 金鑰,透過 ATERA_API_KEY 提供。安裝 npm 套件另需具備 read:packages 權限的 GitHub 個人存取權杖,透過 NODE_AUTH_TOKEN 提供。HTTP 模式還需 CONDUIT_S2S_SECRET 與 X-Gateway-S2S 標頭。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Atera,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
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).
[Deploy to Cloudflare Workers]
[!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:
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:
Configuration
Copy .env.example and set the variables below.
/health stays unauthenticated and does not read credentials. The stdio transport does not use CONDUIT_S2S_SECRET.
HTTP authentication
With MCP_TRANSPORT=http and CONDUIT_S2S_SECRET set, every /mcp request must include X-Gateway-S2S. The check is verifyS2sHeader in src/s2s-verify.ts: the header value is t=<unix seconds>,v1=<hex>, where the hex is HMAC-SHA256 of the literal string t=<unix seconds> keyed with CONDUIT_S2S_SECRET (64 lowercase hex characters). The timestamp must be within 300 seconds of the server clock. A missing or invalid header returns HTTP 401 before vendor credentials are read.
In AUTH_MODE=gateway, /mcp also requires X-Atera-API-Key. That header is the only credential source for the request. With AUTH_MODE=env, the signed request uses ATERA_API_KEY from the environment when the header is absent.
Getting Your API Key
- Log into Atera as an admin
- Go to Admin > Data management > API
- Create an API token (JWT) or copy a legacy API key
JWT tokens (issuer AteraInterop) authenticate with Authorization: Bearer.
Legacy static keys authenticate with X-API-KEY. This server selects the
header from the key shape, including when the installed node-atera client
still sends only X-API-KEY.
Usage
With Claude Desktop
Add to your claude_desktop_config.json:
With MCP Gateway
Configure in the gateway registry:
Docker
The image listens on 0.0.0.0 inside the container (MCP_HTTP_HOST) and defaults to AUTH_MODE=gateway. Publish the port on loopback and pass a real S2S secret. In gateway mode the Atera API key arrives on each request as X-Atera-API-Key; it is not read from the environment.
Compose refuses to start when CONDUIT_S2S_SECRET is unset, defaults AUTH_MODE to gateway, does not inject ATERA_API_KEY, and publishes 127.0.0.1:8080:8080:
Single-tenant HTTP (AUTH_MODE=env) still requires the S2S secret, then uses ATERA_API_KEY:
Local HTTP without a secret is development-only. It binds 127.0.0.1 only and logs a warning. A non-loopback MCP_HTTP_HOST is ignored and the override is logged:
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) - Tool list refresh: The server declares
tools.listChangedand sendsnotifications/tools/list_changedso the client re-fetchestools/list - Domain Tools: After that refresh, domain-specific tools are available
- Back: Use
atera_backto return to domain selection (this also sendsnotifications/tools/list_changed)
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
Development
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.
來源:README.md,提交 2031ded
工具
0版本歷史
1- v1.5.9最新Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分