Enable the MCP server
Everwas ships an MCP server so an AI assistant can query and, with explicit confirmation, act on your fleet. It is off by default and requires a scoped API key.
Why this exists
Section titled “Why this exists”An RMM knows things that are tedious to ask a database directly:
Which machines had an outdated OpenSSL last Monday, and did we know that at the time?
That question needs both time axes of the bitemporal fact store, which is
exactly what get_device_facts exposes. See
query device history for how to phrase these.
Enabling it
Section titled “Enabling it”EVERWAS_MCP_ENABLED=truedocker compose --profile mcp up -d everwas-mcpThe MCP endpoint gets its own hostname (EVERWAS_MCP_DOMAIN, defaulting
to mcp-<your-domain>) rather than a path on the app origin. The reason
is the auth model: browsers talk to the app with a session cookie, MCP
clients present a bearer API key, and keeping the origins separate keeps
the cookie away from the API-key surface entirely.
Mint a key with only the scopes you mean
Section titled “Mint a key with only the scopes you mean”make api-key NAME=claude SCOPES=devices:read,alerts:read,patches:read# prints once: ewpk_<id>_<secret>Available scopes: devices:read, alerts:read, alerts:write,
scripts:run, patches:read, patches:write.
Scope enforcement is server-side. A read-only key cannot run scripts, no matter what the assistant is asked or how persuasively it asks.
Connecting
Section titled “Connecting”claude mcp add --transport http everwas https://mcp-rmm.example.com/mcp \ --header "Authorization: Bearer ewpk_..."In dev the server listens on http://127.0.0.1:28001/mcp.
The safety model
Section titled “The safety model”Three properties, and they compose:
- Scopes cap capability. The key decides what is possible; the assistant’s instructions decide what is attempted.
- Mutations are two-step. Every mutating tool takes
confirm: bool = Falseand, without it, returns a dry-run preview of exactly what it would do. Nothing changes until the assistant is told to confirm, which means you can read the plan first. - Everything is audit-logged. Every call, successful or refused, writes an audit row naming the key as the actor. Anything an assistant did is visible in the Audit view alongside human actions.
The full tool list with scopes and semantics is in the MCP tool reference.