ESET PROTECT

io.github.WYRE-AI由 GitHub 帳號 WYRE-AI 發布v1.0.2更新於 Oct 24, 2026

MCP server for ESET PROTECT's ESET Connect API - device, EDR, vulnerability, patch, and user data.

概覽

AI 產生的概覽

針對 ESET PROTECT 的 ESET Connect API 的唯讀 MCP 伺服器,讓助理檢視裝置、偵測、EDR 規則、弱點、修補程式與使用者資料。

可以做什麼
  • 列出裝置群組、群組內裝置與受管裝置,並依 UUID 單筆或批次取得裝置
  • 列出並取得偵測記錄(v1 與 v2)、偵測群組、EDR 規則及 EDR 規則排除項目
  • 列出裝置上的作業系統與應用程式弱點、近期弱點掃描及有弱點的裝置
  • 列出近期應用程式修補流程、裝置修補程式及修補流程歷史
  • 列出使用者,並依 UUID 單筆或批次取得使用者
適用情境
適合讓助理回答關於 ESET PROTECT 資產環境的問題:哪些裝置受管、有哪些偵測與 EDR 規則、哪些裝置有弱點或尚未修補、有哪些使用者。它是唯讀的可視性介面,不用於修復或變更任何設定。
執行需求
以本機程序(Docker 映像、stdio 傳輸)或 HTTP 服務方式執行。需要一個在 ESET Business Account 中啟用 Integrations 開關的 API 使用者,透過 ESETPROTECT_CLIENT_ID(電子郵件)與 ESETPROTECT_CLIENT_SECRET(密碼)提供,並設定正確的 ESETPROTECT_REGION。另有選用的 AUTH_MODE、MCP_TRANSPORT 與 LOG_LEVEL;需能連線到對應區域的 ESET Connect 主機。
安裝前請注意
ESETPROTECT_CLIENT_SECRET 是真實 ESET 帳號使用者的密碼,應建立專用的唯讀 API 使用者,不要沿用個人登入帳號。閘道模式下憑證會隨每個請求以標頭傳入;設定 CONDUIT_S2S_SECRET 後,HTTP 傳輸會要求 X-Gateway-S2S 標頭。此伺服器為唯讀,不會移動、重新命名、處置或刪除任何物件。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 ESET PROTECT,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

ESET PROTECT MCP Server

MCP server for ESET PROTECT's ESET Connect API gateway - endpoint fleet visibility (devices and groups), detection/EDR investigation, vulnerability data, patch status, and user management - for AI assistants and the WYRE Conduit gateway.

Authentication

Create a dedicated API user in ESET Business Account: User Management > create a user with read-only permission > enable the Integrations toggle. This gives you an email/password pair for that user.

ESET Connect's token endpoint (POST /oauth/token) is documented in its own OpenAPI spec as a password grant - username/password fields, not client_id/client_secret with grant_type=client_credentials. This server accepts clientId/clientSecret (matching the credential shape used across WYRE's other MCP connectors) and sends them as username/password in that grant. It handles the resulting bearer token's caching and refresh (via the returned refresh_token, falling back to a full re-login if the refresh token itself is rejected) internally - callers only ever supply the long-lived email/password pair.

Configuration

Env varDescription
ESETPROTECT_CLIENT_IDEmail of the dedicated ESET Connect API user.
ESETPROTECT_CLIENT_SECRETPassword of that API user.
ESETPROTECT_REGIONus (default), eu, de, jpn, or ca - the ESET Connect region your ESET Business Account was provisioned in.
MCP_TRANSPORTstdio (default) or http.
AUTH_MODEenv (default, reads the vars above) or gateway (credentials arrive per-request via X-EsetProtect-* headers, injected by the Conduit gateway).
CONDUIT_S2S_SECRETWhen set, the HTTP transport requires a valid X-Gateway-S2S header (Conduit sidecar auth) on every /mcp request.
LOG_LEVELdebug | info (default) | warn | error.

Each ESET Connect API domain (device, incident, vulnerability, patch, and user management) is hosted on its own per-region subdomain, e.g. https://us.device-management.eset.systems; the auth host follows the same regional pattern, e.g. https://us.business-account.iam.eset.systems. ESETPROTECT_REGION selects the prefix for all of them.

Tools

Device Management

  • esetprotect_list_device_groups - list device groups.
  • esetprotect_list_group_devices - list the devices in a group.
  • esetprotect_list_devices - list managed devices, filterable by display name, functionality status, or mute state.
  • esetprotect_get_device - get a device by UUID.
  • esetprotect_batch_get_devices - get multiple devices by UUID in one call.

Incident Management (detections, detection groups, EDR)

  • esetprotect_list_detections / esetprotect_get_detection - v1 detections (legacy surface).
  • esetprotect_list_detections_v2 / esetprotect_get_detection_v2 / esetprotect_batch_get_detections - v2 detections (endpoint, cloud office, and EDR).
  • esetprotect_list_detection_groups / esetprotect_get_detection_group - detections clustered into groups.
  • esetprotect_list_edr_rules / esetprotect_get_edr_rule - EDR detection rules.
  • esetprotect_list_edr_rule_exclusions / esetprotect_get_edr_rule_exclusion - EDR rule exclusions.

Vulnerability Management

  • esetprotect_list_device_os_vulnerabilities - OS vulnerabilities found on devices.
  • esetprotect_list_device_vulnerabilities - vulnerabilities found on devices (application/OS/package scope).
  • esetprotect_list_recent_scans - recent vulnerability scan details.
  • esetprotect_list_vulnerable_devices - devices with known vulnerabilities.

Patch Management

  • esetprotect_list_recent_application_patching_details - most recent application-patching processes fleet-wide.
  • esetprotect_list_device_patches - patches for devices, filterable by patch type.
  • esetprotect_list_patching_process_details - detailed patching-process history within a time window.

User Management

  • esetprotect_list_users - list users, filterable by email, display name, protection status, and more.
  • esetprotect_get_user - get a user by UUID.
  • esetprotect_batch_get_users - get multiple users by UUID in one call (atomic - all or none).

Request limits

  • HTTP request bodies are capped at 256 KiB (262144 bytes). After the X-Gateway-S2S check passes, a Content-Length above the cap returns 413 with a JSON-RPC error; bodies without Content-Length are capped by the MCP SDK transport. Unauthenticated requests still get 401 first.
  • tools/call arguments are capped at 10,000 elements (every array item and object key at any depth). Larger inputs return an isError tool result and are never dispatched.

These limits address CVE-2026-111768 / GHSA-46jr-4wx8-v453 (memory exhaustion during validation) and GHSA-f897-62hf-6gxq (no request body / batch cap).

Scope

This is a v1, read-only fleet/security-visibility surface. Explicitly deferred: device move/rename and batch import, detection and detection-group resolve, EDR rule and rule-exclusion create/update/delete, and any asset-management group create/delete/move/rename endpoints. These are mutation/provisioning actions out of scope for a read-only monitoring connector and can be added as a follow-up.

The incident-management API also exposes a separate /v2/incidents case-management surface (list/get/close/reopen, comments) alongside detections and detection-groups; it is not covered by this v1 surface either, for the same reason.

Development

bash
npm installnpm run buildnpm testnpm run lint   # tsc --noEmit

Docker

bash
docker build -t eset-protect-mcp .docker run -p 8080:8080 \  -e ESETPROTECT_CLIENT_ID=... \  -e ESETPROTECT_CLIENT_SECRET=... \  eset-protect-mcp

來源:README.md,提交 cf7e750

工具

0
SourceWeft 曾在隔離沙箱中以無憑證方式啟動該軟體包一次,以列出其工具,但未能完成:該軟體包類型無法在沙箱中執行。

版本歷史

2
  1. v1.0.2最新Oct 22, 2026
  2. v1.0.1Sep 20, 2026

評分

已滿足適用檢查項的 40%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。