wazuh-mcp
Ein Model Context Protocol (MCP) Server für die Wazuh SIEM/XDR-Plattform. Fragen Sie Agenten, Sicherheitswarnungen, Erkennungsregeln und Decoder direkt von Claude oder einem beliebigen MCP-kompatiblen Client ab.
Funktionen
25 MCP-Tools - Agenten, Warnungen, Regeln, Decoder, SCA, Syscollector, FIM, Rootcheck, Gruppen und Manager
3 MCP-Ressourcen - Vorgefertigte Ansichten für Agenten, aktuelle Warnungen und Regelzusammenfassungen
3 MCP-Prompts - Warnungsuntersuchung, Agenten-Gesundheitsprüfungen und Sicherheitsübersichten
JWT-Authentifizierung - Automatische Token-Verwaltung mit Erneuerung bei Ablauf
Vollständige Compliance-Zuordnung - PCI-DSS, GDPR, HIPAA, NIST 800-53, MITRE ATT&CK
Paginierung - Alle Listen-Endpunkte unterstützen Limit/Offset-Paginierung
Typsicher - Vollständiges TypeScript mit Strict-Mode und Zod-Schema-Validierung
Voraussetzungen
Node.js 20+
Ein laufender Wazuh-Manager mit API-Zugriff (Standard-Port 55000)
Wazuh-API-Anmeldedaten (Benutzername/Passwort)
(Optional) Zugriff auf den Wazuh-Indexer (OpenSearch) für Warnungsabfragen
Installation
git clone https://github.com/solomonneas/wazuh-mcp.git
cd wazuh-mcp
npm install
npm run buildKonfiguration
Legen Sie die folgenden Umgebungsvariablen fest:
Variable | Erforderlich | Standard | Beschreibung |
| WAZUH_URL | Ja | - | Wazuh-API-URL (z. B. https://10.0.0.2:55000) |
| WAZUH_USERNAME | Ja | - | API-Benutzername |
| WAZUH_PASSWORD | Ja | - | API-Passwort |
| WAZUH_VERIFY_SSL | Nein | false | Auf true setzen, um SSL-Zertifikate zu verifizieren |
Alternative Variablennamen WAZUH_BASE_URL und WAZUH_USER werden ebenfalls unterstützt.
Wazuh-Indexer (OpenSearch) - Erforderlich für Warnungen
Wazuh 4.x speichert Warnungen im Wazuh-Indexer (OpenSearch), nicht in der REST-API. Um die Warnungs-Tools (get_alerts, get_alert, search_alerts) und die Ressource wazuh://alerts/recent zu aktivieren, konfigurieren Sie die Indexer-Verbindung:
Variable | Erforderlich | Standard | Beschreibung |
| WAZUH_INDEXER_URL | Nein | - | Wazuh-Indexer-URL (z. B. https://10.0.0.2:9200) |
| WAZUH_INDEXER_USERNAME | Nein | admin | Indexer-Benutzername |
| WAZUH_INDEXER_PASSWORD | Nein | - | Indexer-Passwort |
| WAZUH_INDEXER_VERIFY_SSL | Nein | false | Auf true setzen, um SSL-Zertifikate zu verifizieren |
Wenn WAZUH_INDEXER_URL nicht festgelegt ist, geben die Warnungs-Tools eine hilfreiche Konfigurationsmeldung zurück. Alle anderen Tools (Agenten, Regeln, Decoder, Version) funktionieren ohne den Indexer.
Verwendung
Claude Desktop
Hinzufügen zu ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) oder %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-mcpFügen Sie --scope user hinzu, um es von jedem Verzeichnis aus verfügbar zu machen, anstatt nur vom aktuellen Projekt aus.
OpenClaw
Wenn Sie von einem Quell-Checkout aus arbeiten, anstatt von der npm-installierten Binärdatei, verweisen Sie command/args auf die erstellte dist/index.js:
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"
}
}'Oder mit der globalen npm-Installation:
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"
}
}'Starten Sie dann das OpenClaw-Gateway neu, damit der neue Server übernommen wird:
systemctl --user restart openclaw-gateway
openclaw mcp list # confirm "wazuh" is registeredHermes Agent
Hermes Agent liest die MCP-Konfiguration aus ~/.hermes/config.yaml unter dem Schlüssel mcp_servers. Fügen Sie einen Eintrag hinzu:
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"Oder bei Ausführung aus einem Quell-Checkout anstelle der globalen npm-Installation:
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"Laden Sie dann MCP innerhalb einer Hermes-Sitzung neu:
/reload-mcpCodex CLI
Codex CLI registriert MCP-Server über 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-mcpOder bei Ausführung aus einem Quell-Checkout:
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 schreibt den Eintrag in ~/.codex/config.toml unter [mcp_servers.wazuh]. Überprüfen Sie dies mit:
codex mcp listStandalone
export WAZUH_URL=https://your-wazuh-manager:55000
export WAZUH_USERNAME=wazuh-wui
export WAZUH_PASSWORD=your-password
npm startEntwicklung
npm run dev # Watch mode with tsx
npm run lint # Type checking
npm test # Run testsMCP-Tools
Agenten-Tools
Tool | Beschreibung |
| Alle Agenten auflisten mit optionaler Statusfilterung (active, disconnected, never_connected, pending) |
| Detaillierte Informationen für einen bestimmten Agenten nach ID abrufen |
| CPU-, Speicher- und Festplattenstatistiken für einen Agenten abrufen |
Warnungs-Tools
Tool | Beschreibung |
| Aktuelle Warnungen abrufen mit Filterung nach Ebene, Agent, Regel und Textsuche |
| Eine einzelne Warnung nach ID abrufen |
| Volltextsuche über alle Warnungen |
Regel-Tools
Tool | Beschreibung |
| Erkennungsregeln auflisten mit Ebenen- und Gruppenfilterung |
| Vollständige Regeldetails abrufen, einschließlich Compliance-Zuordnungen |
| Regeln nach Beschreibungstext durchsuchen |
SCA-Tools (Security Configuration Assessment)
Tool | Beschreibung |
| SCA-Richtlinien und Bewertungen für einen Agenten auflisten (CIS-Benchmarks usw.) |
| Einzelne Prüfungsergebnisse mit Korrekturschritten und Compliance-Zuordnungen abrufen |
Syscollector-Tools (Systeminventar)
Tool | Beschreibung |
| Betriebssysteminformationen abrufen (Name, Version, Architektur, Hostname) |
| Installierte Softwarepakete mit Versionen auflisten |
| Laufende Prozesse mit PIDs und Befehlszeilen auflisten |
| Offene Netzwerkports mit zugehörigen Prozessen auflisten |
| Netzwerkschnittstellen und IP-Adressen auflisten |
| Installierte Windows-Hotfixes/Patches auflisten |
FIM & Rootcheck-Tools
Tool | Beschreibung |
| Ergebnisse der Dateiintegritätsüberwachung (FIM) abrufen (Dateien, Registrierungsschlüssel, Hashes) |
| Ergebnisse der Rootkit-Erkennungsscans abrufen |
Manager-Tools
Tool | Beschreibung |
| Wazuh-Manager-Protokolle abrufen, gefiltert nach Ebene und Modul |
| Aktive Manager-Konfiguration nach Abschnitt abrufen |
Gruppen-Tools
Tool | Beschreibung |
| Alle Agentengruppen auflisten |
| Agenten in einer bestimmten Gruppe auflisten |
Andere Tools
Tool | Beschreibung |
| Protokoll-Decoder auflisten mit optionaler Namensfilterung |
| Wazuh-Manager-Version und API-Informationen abrufen |
MCP-Ressourcen
Ressourcen-URI | Beschreibung |
| Alle registrierten Agenten und ihr Status |
| Die 25 aktuellsten Sicherheitswarnungen |
| Erkennungsregeln sortiert nach Schweregrad |
MCP-Prompts
Prompt | Beschreibung |
| Schritt-für-Schritt-Untersuchung von Warnungen mit MITRE-Zuordnung und Korrekturmaßnahmen |
| Umfassende Gesundheitsbewertung des Agenten (Status, Ressourcen, Warnungen) |
| Zusammenfassung der Sicherheit der gesamten Umgebung mit Compliance-Abdeckung |
Beispiele
Aktive Agenten auflisten
Use list_agents with status "active" to see all connected agents.Brute-Force-Versuch untersuchen
Search alerts for "brute force" and investigate the top result,
including the MITRE ATT&CK technique and remediation steps.Agenten-Gesundheit prüfen
Run an agent health check on agent 001 - check its connection status,
resource usage, and any recent critical alerts.Regeln mit hohem Schweregrad finden
List all rules with level 12 or higher to see critical detection rules
and their compliance framework mappings.Testen
npm test # Run all tests
npm run test:watch # Watch modeTests verwenden simulierte Wazuh-API-Antworten - keine Live-Wazuh-Instanz erforderlich.
Projektstruktur
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.tsLizenz
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