wazuh-mcp
Un servidor del Protocolo de Contexto de Modelo (MCP) para la plataforma Wazuh SIEM/XDR. Consulta agentes, alertas de seguridad, reglas de detección y decodificadores directamente desde Claude o cualquier cliente compatible con MCP.
Características
25 herramientas MCP - Agentes, alertas, reglas, decodificadores, SCA, syscollector, FIM, rootcheck, grupos y gestor
3 recursos MCP - Vistas preconfiguradas para agentes, alertas recientes y resúmenes de reglas
3 prompts MCP - Investigación de alertas, comprobaciones de estado de agentes y resúmenes de seguridad
Autenticación JWT - Gestión automática de tokens con actualización al expirar
Mapeo completo de cumplimiento - PCI-DSS, GDPR, HIPAA, NIST 800-53, MITRE ATT&CK
Paginación - Todos los endpoints de listado admiten paginación por límite/desplazamiento
Seguridad de tipos - TypeScript completo con modo estricto y validación de esquemas Zod
Requisitos previos
Node.js 20+
Un gestor Wazuh en ejecución con acceso a la API (puerto predeterminado 55000)
Credenciales de la API de Wazuh (nombre de usuario/contraseña)
(Opcional) Acceso al indexador de Wazuh (OpenSearch) para consultas de alertas
Instalación
git clone https://github.com/solomonneas/wazuh-mcp.git
cd wazuh-mcp
npm install
npm run buildConfiguración
Establezca las siguientes variables de entorno:
Variable | Requerido | Predeterminado | Descripción |
| WAZUH_URL | Sí | - | URL de la API de Wazuh (ej. https://10.0.0.2:55000) |
| WAZUH_USERNAME | Sí | - | Nombre de usuario de la API |
| WAZUH_PASSWORD | Sí | - | Contraseña de la API |
| WAZUH_VERIFY_SSL | No | false | Establecer en true para verificar certificados SSL |
También se admiten los nombres de variables alternativos WAZUH_BASE_URL y WAZUH_USER.
Indexador de Wazuh (OpenSearch) - Requerido para alertas
Wazuh 4.x almacena las alertas en el indexador de Wazuh (OpenSearch), no en la API REST. Para habilitar las herramientas de alertas (get_alerts, get_alert, search_alerts) y el recurso wazuh://alerts/recent, configure la conexión al indexador:
Variable | Requerido | Predeterminado | Descripción |
| WAZUH_INDEXER_URL | No | - | URL del indexador de Wazuh (ej. https://10.0.0.2:9200) |
| WAZUH_INDEXER_USERNAME | No | admin | Nombre de usuario del indexador |
| WAZUH_INDEXER_PASSWORD | No | - | Contraseña del indexador |
| WAZUH_INDEXER_VERIFY_SSL | No | false | Establecer en true para verificar certificados SSL |
Si no se establece WAZUH_INDEXER_URL, las herramientas de alertas devolverán un mensaje de configuración útil. Todas las demás herramientas (agentes, reglas, decodificadores, versión) funcionan sin el indexador.
Uso
Claude Desktop
Añada a ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) o %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"wazuh": {
"command": "wazuh-mcp",
"env": {
"WAZUH_URL": "https://your-wazuh-manager:55000",
"WAZUH_USERNAME": "wazuh-wui",
"WAZUH_PASSWORD": "your-password",
"WAZUH_INDEXER_URL": "https://your-wazuh-indexer:9200",
"WAZUH_INDEXER_USERNAME": "admin",
"WAZUH_INDEXER_PASSWORD": "your-indexer-password"
}
}
}
}Claude Code
claude mcp add wazuh \
--env WAZUH_URL=https://your-wazuh-manager:55000 \
--env WAZUH_USERNAME=wazuh-wui \
--env WAZUH_PASSWORD=your-password \
--env WAZUH_INDEXER_URL=https://your-wazuh-indexer:9200 \
--env WAZUH_INDEXER_USERNAME=admin \
--env WAZUH_INDEXER_PASSWORD=your-indexer-password \
-- wazuh-mcpAñada --scope user para que esté disponible desde cualquier directorio en lugar de solo el proyecto actual.
OpenClaw
Si está ejecutando desde una descarga del código fuente en lugar del binario instalado por npm, apunte command/args al archivo dist/index.js compilado:
openclaw mcp set wazuh '{
"command": "node",
"args": ["/absolute/path/to/wazuh-mcp/dist/index.js"],
"env": {
"WAZUH_URL": "https://your-wazuh-manager:55000",
"WAZUH_USERNAME": "wazuh-wui",
"WAZUH_PASSWORD": "your-password",
"WAZUH_INDEXER_URL": "https://your-wazuh-indexer:9200",
"WAZUH_INDEXER_USERNAME": "admin",
"WAZUH_INDEXER_PASSWORD": "your-indexer-password"
}
}'O, con la instalación global de npm:
openclaw mcp set wazuh '{
"command": "wazuh-mcp",
"env": {
"WAZUH_URL": "https://your-wazuh-manager:55000",
"WAZUH_USERNAME": "wazuh-wui",
"WAZUH_PASSWORD": "your-password",
"WAZUH_INDEXER_URL": "https://your-wazuh-indexer:9200",
"WAZUH_INDEXER_USERNAME": "admin",
"WAZUH_INDEXER_PASSWORD": "your-indexer-password"
}
}'Luego reinicie la puerta de enlace de OpenClaw para que se detecte el nuevo servidor:
systemctl --user restart openclaw-gateway
openclaw mcp list # confirm "wazuh" is registeredHermes Agent
Hermes Agent lee la configuración de MCP desde ~/.hermes/config.yaml bajo la clave mcp_servers. Añada una entrada:
mcp_servers:
wazuh:
command: "wazuh-mcp"
env:
WAZUH_URL: "https://your-wazuh-manager:55000"
WAZUH_USERNAME: "wazuh-wui"
WAZUH_PASSWORD: "your-password"
WAZUH_INDEXER_URL: "https://your-wazuh-indexer:9200"
WAZUH_INDEXER_USERNAME: "admin"
WAZUH_INDEXER_PASSWORD: "your-indexer-password"O, al ejecutar desde una descarga del código fuente en lugar de la instalación global de npm:
mcp_servers:
wazuh:
command: "node"
args: ["/absolute/path/to/wazuh-mcp/dist/index.js"]
env:
WAZUH_URL: "https://your-wazuh-manager:55000"
WAZUH_USERNAME: "wazuh-wui"
WAZUH_PASSWORD: "your-password"
WAZUH_INDEXER_URL: "https://your-wazuh-indexer:9200"
WAZUH_INDEXER_USERNAME: "admin"
WAZUH_INDEXER_PASSWORD: "your-indexer-password"Luego recargue MCP desde dentro de una sesión de Hermes:
/reload-mcpCodex CLI
Codex CLI registra servidores MCP mediante codex mcp add:
codex mcp add wazuh \
--env WAZUH_URL=https://your-wazuh-manager:55000 \
--env WAZUH_USERNAME=wazuh-wui \
--env WAZUH_PASSWORD=your-password \
--env WAZUH_INDEXER_URL=https://your-wazuh-indexer:9200 \
--env WAZUH_INDEXER_USERNAME=admin \
--env WAZUH_INDEXER_PASSWORD=your-indexer-password \
-- wazuh-mcpO, al ejecutar desde una descarga del código fuente:
codex mcp add wazuh \
--env WAZUH_URL=https://your-wazuh-manager:55000 \
--env WAZUH_USERNAME=wazuh-wui \
--env WAZUH_PASSWORD=your-password \
-- node /absolute/path/to/wazuh-mcp/dist/index.jsCodex escribe la entrada en ~/.codex/config.toml bajo [mcp_servers.wazuh]. Verifique con:
codex mcp listIndependiente
export WAZUH_URL=https://your-wazuh-manager:55000
export WAZUH_USERNAME=wazuh-wui
export WAZUH_PASSWORD=your-password
npm startDesarrollo
npm run dev # Watch mode with tsx
npm run lint # Type checking
npm test # Run testsHerramientas MCP
Herramientas de agente
Herramienta | Descripción |
| Lista todos los agentes con filtrado de estado opcional (active, disconnected, never_connected, pending) |
| Obtiene información detallada de un agente específico por ID |
| Obtiene estadísticas de CPU, memoria y disco de un agente |
Herramientas de alertas
Herramienta | Descripción |
| Recupera alertas recientes con filtrado por nivel, agente, regla y búsqueda de texto |
| Recupera una sola alerta por ID |
| Búsqueda de texto completo en todas las alertas |
Herramientas de reglas
Herramienta | Descripción |
| Lista reglas de detección con filtrado por nivel y grupo |
| Obtiene detalles completos de la regla, incluidos los mapeos de cumplimiento |
| Busca reglas por texto de descripción |
Herramientas SCA (Evaluación de configuración de seguridad)
Herramienta | Descripción |
| Lista políticas y puntuaciones SCA para un agente (benchmarks CIS, etc.) |
| Obtiene resultados de comprobaciones individuales con pasos de remediación y mapeos de cumplimiento |
Herramientas Syscollector (Inventario del sistema)
Herramienta | Descripción |
| Obtiene información del SO (nombre, versión, arquitectura, nombre de host) |
| Lista paquetes de software instalados con versiones |
| Lista procesos en ejecución con PID y líneas de comando |
| Lista puertos de red abiertos con procesos asociados |
| Lista interfaces de red y direcciones IP |
| Lista parches/hotfixes de Windows instalados |
Herramientas FIM y Rootcheck
Herramienta | Descripción |
| Obtiene resultados de monitoreo de integridad de archivos (archivos, claves de registro, hashes) |
| Obtiene hallazgos de escaneo de detección de rootkits |
Herramientas de gestor
Herramienta | Descripción |
| Obtiene registros del gestor Wazuh filtrados por nivel y módulo |
| Obtiene la configuración activa del gestor por sección |
Herramientas de grupo
Herramienta | Descripción |
| Lista todos los grupos de agentes |
| Lista agentes en un grupo específico |
Otras herramientas
Herramienta | Descripción |
| Lista decodificadores de registros con filtrado de nombre opcional |
| Obtiene la versión del gestor Wazuh e información de la API |
Recursos MCP
URI del recurso | Descripción |
| Todos los agentes registrados y su estado |
| Las 25 alertas de seguridad más recientes |
| Reglas de detección ordenadas por gravedad |
Prompts MCP
Prompt | Descripción |
| Investigación de alertas paso a paso con mapeo MITRE y remediación |
| Evaluación integral del estado del agente (estado, recursos, alertas) |
| Resumen de seguridad completo del entorno con cobertura de cumplimiento |
Ejemplos
Listar agentes activos
Use list_agents with status "active" to see all connected agents.Investigar un intento de fuerza bruta
Search alerts for "brute force" and investigate the top result,
including the MITRE ATT&CK technique and remediation steps.Comprobar el estado del agente
Run an agent health check on agent 001 - check its connection status,
resource usage, and any recent critical alerts.Encontrar reglas de alta gravedad
List all rules with level 12 or higher to see critical detection rules
and their compliance framework mappings.Pruebas
npm test # Run all tests
npm run test:watch # Watch modeLas pruebas utilizan respuestas simuladas de la API de Wazuh; no se necesita una instancia de Wazuh en vivo.
Estructura del proyecto
wazuh-mcp/
├── src/
│ ├── index.ts # MCP server entry point
│ ├── config.ts # Environment configuration
│ ├── client.ts # Wazuh REST API client (JWT auth)
│ ├── indexer-client.ts # Wazuh Indexer (OpenSearch) client
│ ├── types.ts # TypeScript type definitions
│ ├── resources.ts # MCP resource handlers
│ ├── prompts.ts # MCP prompt templates
│ └── tools/
│ ├── agents.ts # Agent management tools
│ ├── alerts.ts # Alert query tools
│ ├── rules.ts # Rule query tools
│ ├── decoders.ts # Decoder listing tool
│ ├── version.ts # Version info tool
│ ├── sca.ts # Security Configuration Assessment
│ ├── syscollector.ts # System inventory (OS, packages, ports, etc.)
│ ├── syscheck.ts # File Integrity Monitoring
│ ├── rootcheck.ts # Rootkit detection
│ ├── manager.ts # Manager logs and configuration
│ └── groups.ts # Agent group management
├── tests/
│ ├── client.test.ts # API client unit tests
│ └── tools.test.ts # Tool handler unit tests
├── package.json
├── tsconfig.json
├── tsup.config.ts
└── vitest.config.tsLicencia
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/solomonneas/wazuh-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server