mcpField
E
ESET PROTECT

ESET PROTECT

Local
github.comSecurity0Updated 1w ago

About ESET PROTECT

ESET PROTECT is a read-only MCP server for security teams and AI assistants monitoring endpoint fleets through ESET Connect. Its tools cover device visibility, detections and EDR, vulnerabilities, patch status, and user data.

Key features

  1. 01List and inspect devices and groups
  2. 02Investigate detections and EDR rules
  3. 03Review device and OS vulnerabilities
  4. 04Check patch status and process history
  5. 05List and inspect users

Use cases

  1. 01Review managed devices by status
  2. 02Investigate endpoint or EDR detections
  3. 03Identify vulnerable devices
  4. 04Check recent patching activity

MCP support

Exposes read-only ESET Connect tools to MCP clients for device, incident, vulnerability, patch, and user data. Supports stdio and HTTP transports.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"wyre-ai-eset-protect": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"ESETPROTECT_CLIENT_ID",
"-e",
"ESETPROTECT_CLIENT_SECRET",
"-e",
"ESETPROTECT_REGION",
"-e",
"MCP_TRANSPORT",
"-e",
"AUTH_MODE",
"-e",
"LOG_LEVEL",
"ghcr.io/wyre-ai/eset-protect-mcp:v1.0.2"
],
"env": {
"ESETPROTECT_CLIENT_ID": "<ESETPROTECT_CLIENT_ID>",
"ESETPROTECT_CLIENT_SECRET": "<ESETPROTECT_CLIENT_SECRET>",
"ESETPROTECT_REGION": "<ESETPROTECT_REGION>",
"MCP_TRANSPORT": "<MCP_TRANSPORT>",
"AUTH_MODE": "<AUTH_MODE>",
"LOG_LEVEL": "<LOG_LEVEL>"
}
}
}
}
Run commanddocker run -i --rm -e ESETPROTECT_CLIENT_ID -e ESETPROTECT_CLIENT_SECRET -e ESETPROTECT_REGION -e MCP_TRANSPORT -e AUTH_MODE -e LOG_LEVEL ghcr.io/wyre-ai/eset-protect-mcp:v1.0.2
Environment variables to set
ESETPROTECT_CLIENT_IDEmail of the dedicated ESET Connect API user, created in ESET Business Account with the Integrations toggle enabled.
ESETPROTECT_CLIENT_SECRETSecretPassword of the ESET Connect API user paired with ESETPROTECT_CLIENT_ID.
ESETPROTECT_REGIONESET Connect region: us (default), eu, de, jpn, or ca.
MCP_TRANSPORTTransport mode for the server. Set to 'stdio' for local CLI use; the image defaults to 'http' for gateway hosting.
AUTH_MODESecretCredential source: 'env' reads vars locally, 'gateway' expects header injection from the WYRE MCP Gateway.
LOG_LEVELLog verbosity: debug, info, warn, error

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
ocighcr.io/wyre-ai/eset-protect-mcp:v1.0.2

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project 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

npm install
npm run build
npm test
npm run lint   # tsc --noEmit

Docker

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

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.