Draugr
Security scanning for AI agents: SAST, SCA, secrets, IaC, DAST, ranked by real risk.
Descripción del creador (original en inglés)
MCP server for Kaseya SaaS Alerts — SaaS security monitoring for M365 & Google Workspace.
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
SAAS_ALERTS_API_KEY, MCP_TRANSPORT, AUTH_MODE, LOG_LEVELLos valores marcados como secretos son llaves de tu cuenta. Nunca los compartas ni los pegues en un chat.
Necesitas
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"saas-alerts": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"SAAS_ALERTS_API_KEY",
"-e",
"MCP_TRANSPORT",
"-e",
"AUTH_MODE",
"-e",
"LOG_LEVEL",
"ghcr.io/wyre-technology/saas-alerts-mcp:v1.2.4"
],
"env": {
"SAAS_ALERTS_API_KEY": "your-value",
"MCP_TRANSPORT": "your-value",
"AUTH_MODE": "your-value",
"LOG_LEVEL": "your-value"
}
}
}
}Ejecuta esto en tu terminal
claude mcp add saas-alerts --env SAAS_ALERTS_API_KEY=your-value --env MCP_TRANSPORT=your-value --env AUTH_MODE=your-value --env LOG_LEVEL=your-value -- docker run -i --rm -e SAAS_ALERTS_API_KEY -e MCP_TRANSPORT -e AUTH_MODE -e LOG_LEVEL ghcr.io/wyre-technology/saas-alerts-mcp:v1.2.4Completa los valores vacíos antes de ejecutarlo.
Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"saas-alerts": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"SAAS_ALERTS_API_KEY",
"-e",
"MCP_TRANSPORT",
"-e",
"AUTH_MODE",
"-e",
"LOG_LEVEL",
"ghcr.io/wyre-technology/saas-alerts-mcp:v1.2.4"
],
"env": {
"SAAS_ALERTS_API_KEY": "your-value",
"MCP_TRANSPORT": "your-value",
"AUTH_MODE": "your-value",
"LOG_LEVEL": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"saas-alerts": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"SAAS_ALERTS_API_KEY",
"-e",
"MCP_TRANSPORT",
"-e",
"AUTH_MODE",
"-e",
"LOG_LEVEL",
"ghcr.io/wyre-technology/saas-alerts-mcp:v1.2.4"
],
"env": {
"SAAS_ALERTS_API_KEY": "your-value",
"MCP_TRANSPORT": "your-value",
"AUTH_MODE": "your-value",
"LOG_LEVEL": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
MCP_TRANSPORT envAUTH_MODE envLOG_LEVEL envEsta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 9 nov 2026
El nombre en el registro se verificó con la cuenta de GitHub wyre-technology, dueña del repo
Todavía no hemos leído este repo en GitHub
Todavía no hemos leído este repo en GitHub
Este se ejecuta en tu computadora; no hay endpoint en internet
Se ejecuta en tu computadora y usa ajustes locales en su lugar
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
Debes completar: SAAS_ALERTS_API_KEY
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
El repo de GitHub cambió por última vez –, y la última versión (1.2.4) llegó al registro hace 3 meses.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Docker en tu computadora.
En la misma categoría: Draugr, Harbor, Microsoft Windows Security Updates (MSRC CVRF) — buy per-query in-session (msrc…
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:↓ Descargas por semanai★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
Security scanning for AI agents: SAST, SCA, secrets, IaC, DAST, ranked by real risk.
Read-only access to Harbor: projects, artifacts, vulnerabilities, robots, replication, agent skills.
MSRC Windows updates: CVE rollups, Patch Tuesday. Be born in one call — free testnet funds.
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
Model Context Protocol server for Kaseya SaaS Alerts — a SaaS security monitoring platform for M365 and Google Workspace events.
Part of the WYRE Technology MCP fleet.
Exposes the full SaaS Alerts External Partner API (v0.20.0) through 30 MCP tools organized by domain:
| Domain | Tools |
|---|---|
| events | Query/count security events by severity, customer, user, event type; advanced Elasticsearch queries; scroll pagination; recommended actions |
| customers | List, get, create, update, delete customers; set IP/country and account whitelists |
| users | MSP user info, partner users, customer users |
| devices | Unify mapped/unmapped/ignored devices, device organizations |
| billing | Billing details by date, billing date history |
| reports | List/get/create/delete scheduled reports |
| partner | Partner profile, branding settings |
Write/destructive tools require user confirmation via MCP elicitation (fail-open: proceeds if client doesn't support elicitation).
SaaS Alerts uses an API key sent as the api_key HTTP header.
Generate your API key in the SaaS Alerts UI under Settings → API Keys.
Copy .env.example. Leave CONDUIT_S2S_SECRET empty in that file and never commit a real value.
| Variable | Required | Description |
|---|---|---|
SAAS_ALERTS_API_KEY | For stdio and AUTH_MODE=env | SaaS Alerts API key. Gateway mode does not read it. |
MCP_TRANSPORT | No | stdio (default) or http |
AUTH_MODE | No | gateway (Docker image and Compose default) or env. Gateway mode requires X-SaaS-Alerts-API-Key on each /mcp request and never falls back to SAAS_ALERTS_API_KEY. |
CONDUIT_S2S_SECRET | Yes for HTTP | Service-to-service secret. The HTTP server logs an error and exits non-zero when this is empty or a known placeholder (changeme, secret, your-s2s-secret, and the other example values). Compose will not start when it is unset. The value is never logged. |
MCP_ALLOW_INSECURE_DEV | No | Set to 1 only for local development to start HTTP without CONDUIT_S2S_SECRET. The process logs a warning, does not enforce X-Gateway-S2S, and listens on 127.0.0.1 only. A wider MCP_HTTP_HOST (including 0.0.0.0) is overridden. A placeholder secret is still rejected. |
MCP_HTTP_HOST | No | Bind address when a real CONDUIT_S2S_SECRET is set. Defaults to 127.0.0.1. The container image sets 0.0.0.0. Without a real secret the listener is forced to 127.0.0.1. |
MCP_HTTP_PORT | No | HTTP port. Defaults to 8080. |
/health and /healthz stay unauthenticated and do not read credentials. The stdio transport does not use CONDUIT_S2S_SECRET.
With MCP_TRANSPORT=http and a real CONDUIT_S2S_SECRET, every /mcp request must include X-Gateway-S2S. A missing or invalid header returns 401 before any vendor credential is read.
The header value is t= ,v1= :
t to the current unix time in seconds.t= with HMAC-SHA256, using CONDUIT_S2S_SECRET as the key.t= ,v1= .The timestamp must be within 300 seconds of the server clock. Example:
import { createHmac } from 'node:crypto';
const t = Math.floor(Date.now() / 1000); const v1 = createHmac('sha256', process.env.CONDUIT_S2S_SECRET).update(t=${t}).digest('hex'); const xGatewayS2s = t=${t},v1=${v1};
export SAAS_ALERTS_API_KEY=your-api-key
node dist/index.js
CONDUIT_S2S_SECRET is required. If it is empty, the process logs an error and exits non-zero.
export CONDUIT_S2S_SECRET="$(openssl rand -hex 32)"
export SAAS_ALERTS_API_KEY=your-api-key export MCP_TRANSPORT=http export AUTH_MODE=env export MCP_HTTP_PORT=8080 node dist/http.js
Local HTTP without a secret is development-only. It binds 127.0.0.1 even if MCP_HTTP_HOST is 0.0.0.0, and logs a warning:
MCP_TRANSPORT=http MCP_ALLOW_INSECURE_DEV=1 npm run start:http
When running behind the WYRE MCP Gateway, set AUTH_MODE=gateway (the image and Compose default). The gateway signs each request with X-Gateway-S2S and injects the API key via X-SaaS-Alerts-API-Key. A request missing that credential header returns 401 and does not use SAAS_ALERTS_API_KEY from the environment.
await fetch('http://127.0.0.1:8080/mcp', {
method: 'POST', headers: { 'content-type': 'application/json', accept: 'application/json, text/event-stream', 'x-gateway-s2s': xGatewayS2s, 'x-saas-alerts-api-key': apiKey, }, body: JSON.stringify({ jsonrpc: '2.0', id: 1, method: 'tools/list' }), });
The image listens on 0.0.0.0 inside the container and defaults to AUTH_MODE=gateway. Publish the port on loopback and pass the S2S secret. In gateway mode the SaaS Alerts API key arrives on each request; it is not read from the environment.
docker build -t saas-alerts-mcp .
docker run \ -e CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" \ -p 127.0.0.1:8080:8080 \ saas-alerts-mcp
Compose refuses to start when CONDUIT_S2S_SECRET is unset, sets AUTH_MODE=gateway, publishes 127.0.0.1:8080:8080, and does not pass SAAS_ALERTS_API_KEY into the gateway service:
CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" docker compose up
Single-tenant HTTP (AUTH_MODE=env) still requires the S2S secret, then uses SAAS_ALERTS_API_KEY:
docker run \
-e CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" \ -e AUTH_MODE=env \ -e SAAS_ALERTS_API_KEY=your-key \ -p 127.0.0.1:8080:8080 \ ghcr.io/wyre-ai/saas-alerts-mcp:latest
npm install
npm run build npm test npm run lint node scripts/lint-destructive-warnings.mjs src
Tools that permanently delete data (customer delete, scheduled report delete) carry:
⚠ DESTRUCTIVE — IRREVERSIBLE description prefixannotations.destructiveHint: trueAlways confirm with the user before invoking these tools.
Apache-2.0 — see LICENSE.