Two independent layers do the work: the catalogue filter means an agent never sees a mutating tool, and a separate gate checks the tool's declared mode before any request leaves the process, so a hard-coded client or a stale tool snapshot fails locally instead of at ESET. On-prem coverage is honest about its edges — incident, mobile, web-access, network-access, quarantine and most vulnerability tools belong to products that are not part of an on-prem PROTECT install, and calling them there returns a plain 404.
A single hub in front of any number of ESET deployments. One process can serve cloud regions and customer-hosted consoles at the same time, with clients selecting the target per request through headers; the server mints its own tokens and keeps tenants isolated in a pooled client cache.
- 102 tools generated from 16 official ESET Connect OpenAPI specs, spanning application, asset, device, identity, incident, installer, mobile-device, network-access, patch, policy, quarantine, user, vulnerability and web-access management plus automation
- Four composite tools that fold several raw calls into one: a case-insensitive search across devices, users, policies and groups; a device record with its recent detections, vulnerabilities and scans; an incident with comments, related detections and affected devices; and the newest detections in a time window — `eset_search`, `device_full_profile`, `incident_full_context`, `latest_detections`
- A read-only catalogue when you want one: `ESET_MODE=RO` advertises only the 51 read tools and hides the rest from the tool list entirely, with a second in-memory gate rejecting write tool names before any HTTP request goes out
- Response shaping that protects the context window: an optional `fields` list on every GET tool, and a byte cap that trims the longest list while preserving top-level fields and attaching a hint on how to continue
- Resources reporting the current mode, region, deployment and full tool catalogue, and prompts for offboarding candidates, a per-device CVE report and incident triage
A dedicated ESET API user rather than your console login, created in ESET PROTECT Hub or ESET Business Account. In single-tenant mode set `ESET_USER` and `ESET_PASSWORD` in `.env` with `ESET_REGION` from `eu`, `de`, `us`, `ca` or `jpn`. In multi-tenant mode set `ESET_AUTH_MODE=basic` and clients pass `Authorization: Basic` per request, optionally with `X-ESET-Region` or `X-ESET-Server-URL` to reach an on-prem console; basic mode requires HTTP transport and, because it puts a password on the wire, TLS in front of it. The fastest path is the published image: `docker run --rm -i --env-file .env ghcr.io/maciekaz/eset-mcp:1`, multi-arch and cosign-signed. Version 1.0.3.
One command plus a key — docker run --rm -i --env-file .env ghcr.io/maciekaz/eset-mcp:1, then supply credentials
