Skip to main content
Glama

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 build

Configuració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-mcp

Añ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 registered

Hermes 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-mcp

Codex 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-mcp

O, 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.js

Codex escribe la entrada en ~/.codex/config.toml bajo [mcp_servers.wazuh]. Verifique con:

codex mcp list

Independiente

export WAZUH_URL=https://your-wazuh-manager:55000
export WAZUH_USERNAME=wazuh-wui
export WAZUH_PASSWORD=your-password
npm start

Desarrollo

npm run dev    # Watch mode with tsx
npm run lint   # Type checking
npm test       # Run tests

Herramientas MCP

Herramientas de agente

Herramienta

Descripción

list_agents

Lista todos los agentes con filtrado de estado opcional (active, disconnected, never_connected, pending)

get_agent

Obtiene información detallada de un agente específico por ID

get_agent_stats

Obtiene estadísticas de CPU, memoria y disco de un agente

Herramientas de alertas

Herramienta

Descripción

get_alerts

Recupera alertas recientes con filtrado por nivel, agente, regla y búsqueda de texto

get_alert

Recupera una sola alerta por ID

search_alerts

Búsqueda de texto completo en todas las alertas

Herramientas de reglas

Herramienta

Descripción

list_rules

Lista reglas de detección con filtrado por nivel y grupo

get_rule

Obtiene detalles completos de la regla, incluidos los mapeos de cumplimiento

search_rules

Busca reglas por texto de descripción

Herramientas SCA (Evaluación de configuración de seguridad)

Herramienta

Descripción

get_sca_policies

Lista políticas y puntuaciones SCA para un agente (benchmarks CIS, etc.)

get_sca_checks

Obtiene resultados de comprobaciones individuales con pasos de remediación y mapeos de cumplimiento

Herramientas Syscollector (Inventario del sistema)

Herramienta

Descripción

get_agent_os

Obtiene información del SO (nombre, versión, arquitectura, nombre de host)

get_agent_packages

Lista paquetes de software instalados con versiones

get_agent_processes

Lista procesos en ejecución con PID y líneas de comando

get_agent_ports

Lista puertos de red abiertos con procesos asociados

get_agent_network

Lista interfaces de red y direcciones IP

get_agent_hotfixes

Lista parches/hotfixes de Windows instalados

Herramientas FIM y Rootcheck

Herramienta

Descripción

get_fim_files

Obtiene resultados de monitoreo de integridad de archivos (archivos, claves de registro, hashes)

get_rootcheck

Obtiene hallazgos de escaneo de detección de rootkits

Herramientas de gestor

Herramienta

Descripción

get_manager_logs

Obtiene registros del gestor Wazuh filtrados por nivel y módulo

get_manager_config

Obtiene la configuración activa del gestor por sección

Herramientas de grupo

Herramienta

Descripción

list_groups

Lista todos los grupos de agentes

get_group_agents

Lista agentes en un grupo específico

Otras herramientas

Herramienta

Descripción

list_decoders

Lista decodificadores de registros con filtrado de nombre opcional

get_wazuh_version

Obtiene la versión del gestor Wazuh e información de la API

Recursos MCP

URI del recurso

Descripción

wazuh://agents

Todos los agentes registrados y su estado

wazuh://alerts/recent

Las 25 alertas de seguridad más recientes

wazuh://rules/summary

Reglas de detección ordenadas por gravedad

Prompts MCP

Prompt

Descripción

investigate-alert

Investigación de alertas paso a paso con mapeo MITRE y remediación

agent-health-check

Evaluación integral del estado del agente (estado, recursos, alertas)

security-overview

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 mode

Las 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.ts

Licencia

MIT

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)

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