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 分

    请在仓库或注册中心条目中声明许可证。