Wazuh MCP Server

by gensecaihq

Not rated
GitHub

About

AI-powered security operations with Wazuh SIEM + Claude Desktop. Natural language threat detection, automated incident response & compliance.

Details

Author
gensecaihq
Categories
Other, Security, Infrastructure, AI

Quick Start: Multi-User SOC with Open WebUI

Open WebUI v0.6.31+ connects to our/mcpendpoint natively. Add it as an MCP tool server in Admin Settings, and your entire team gets AI-powered SIEM analysis with conversation history, RBAC, and a web UI.

Every tool is validated, rate-limited, scope-checked, and audit-logged.

The 14 state-changing tools (Active Response + Rollback) require thewazuh:writescope; everything else needs onlywazuh:read. ISO 27001 also adds aniso27001_assessmentguided prompt (5 prompts total).

- Docker 20.10+ with Compose v2
- Wazuh 4.8.0–4.14.7 with API access enabled

git clone https://github.com/gensecaihq/Wazuh-MCP-Server.git cd Wazuh-MCP-Server cp .env.example .env
WAZUH_HOST=your-wazuh-server WAZUH_USER=your-api-user WAZUH_PASS=your-api-password
docker compose up -d curl http://localhost:3000/health

A multi-arch image (amd64/arm64) is published to GitHub Container Registry on every release and on every push tomain:

docker pull ghcr.io/gensecaihq/wazuh-mcp-server:latest # main branch docker pull ghcr.io/gensecaihq/wazuh-mcp-server:4.3.0 # pinned release
docker run -d --name wazuh-mcp-server --env-file .env -p 3000:3000 \ ghcr.io/gensecaihq/wazuh-mcp-server:latest

- SettingsConnectorsAdd custom connector
- URL:https://your-server/mcp
- Add Bearer token in Advanced settings

Detailed setup:Claude Integration Guide

This server sits between an LLM and your SIEM. Security is not optional.

# Generate a secure API key python -c "import secrets; print('wazuh_' + secrets.token_urlsafe(32))"

Alert, security-event, and vulnerability tools return uniform record collections under adata.affected_itemsarray. SettingRESPONSE_FORMAT=gcfencodes those responses as aGraph Compact Formatgeneric wire instead of JSON, factoring the repeated field names into a single header so the response uses fewer tokens when it crosses the LLM boundary.

It is opt-in, lossless, and every response stays complete (a format change only, no cross-turn deduplication, so no alert is ever omitted). If encoding fails — or the encoder isn't installed — the tool falls back to JSON. It composes with the existingcompactfield-projection parameter.

The encoder is one zero-dependency package (pinned exact). Install it directly, or via thegcfextra from a source checkout:

pip install gcf-python==2.5.1 # direct pip install ".[gcf]" # or, from a clone of this repo

Production note:the server listens over plain HTTP — terminate TLS at a reverse proxy or load balancer. OAuth knobs (OAUTH_ENABLE_DCR— off by default,OAUTH_*_TTL) and rate-limit tuning (RATE_LIMIT_REQUESTS,RATE_LIMIT_WINDOW) are in the[Configuration Guide.

Query alerts, hunt threats, triage vulnerabilities, and run active responses across your entire Wazuh deployment — through natural conversation with any AI assistant.

55 security tools·dual-era MCP(2026-07-28 + legacy) ·multi-cluster·fully air-gappable·production-hardened

Quick Start·Tools·Security·Docs·Changelog·Upgrading

Your Wazuh SIEM generates thousands of alerts, vulnerability findings, and agent events daily. Investigating them means juggling dashboards, writing API queries, and manually correlating data across tools.

This MCP server turns that workflow into a conversation:

You: "Show me critical alerts from the last hour" AI: [calls get_wazuh_alerts] Found 3 critical alerts: 1. SSH brute force from 10.0.1.45 → agent-003 (Rule 5712, Level 10) 2. Rootkit detection on agent-007 (Rule 510, Level 12) 3. FIM change /etc/shadow on agent-001 (Rule 550, Level 10) You: "Block that source IP on agent-003" AI: [calls wazuh_block_ip] Blocked 10.0.1.45 via firewall-drop on agent-003. You: "Which agents have unpatched critical CVEs?" AI: [calls get_wazuh_critical_vulnerabilities] 3 agents with critical vulnerabilities...

It works withClaude Desktop,Open WebUI + Ollama(fully local, air-gapped),mcphost, or any MCP-compliant client.

This is a standard MCP tool server. It doesn't care what LLM you use — it just executes tools and returns results.

For security teams that can't send SIEM data to cloud APIs(compliance, air-gapped networks, data sovereignty), the local mode with Ollama keeps everything on-premises. Both modes coexist — same server, same tools, same API.

# 1. Start the MCP server docker compose up -d # 2. Install mcphost (Go binary, no dependencies) go install github.com/mark3labs/mcphost@latest # 3. Configure cat > ~/.mcphost.yml << 'EOF' mcpServers: wazuh: type: remote url: http://localhost:3000/mcp headers: ["Authorization: Bearer ${env://MCP_API_KEY}"] EOF # 4. Chat with your SIEM using a local model export MCP_API_KEY="your-key-from-server-logs" mcphost --model ollama/qwen2.5:7b

Quick Start: Multi-User SOC with Open WebUI

Open WebUI v0.6.31+ connects to our/mcpendpoint natively. Add it as an MCP tool server in Admin Settings, and your entire team gets AI-powered SIEM analysis with conversation history, RBAC, and a web UI.

Every tool is validated, rate-limited, scope-checked, and audit-logged.

The 14 state-changing tools (Active Response + Rollback) require thewazuh:writescope; everything else needs onlywazuh:read. ISO 27001 also adds aniso27001_assessmentguided prompt (5 prompts total).

- Docker 20.10+ with Compose v2
- Wazuh 4.8.0–4.14.7 with API access enabled

git clone https://github.com/gensecaihq/Wazuh-MCP-Server.git cd Wazuh-MCP-Server cp .env.example .env
WAZUH_HOST=your-wazuh-server WAZUH_USER=your-api-user WAZUH_PASS=your-api-password
docker compose up -d curl http://localhost:3000/health

A multi-arch image (amd64/arm64) is published to GitHub Container Registry on every release and on every push tomain:

docker pull ghcr.io/gensecaihq/wazuh-mcp-server:latest # main branch docker pull ghcr.io/gensecaihq/wazuh-mcp-server:4.3.0 # pinned release
docker run -d --name wazuh-mcp-server --env-file .env -p 3000:3000 \ ghcr.io/gensecaihq/wazuh-mcp-server:latest

- SettingsConnectorsAdd custom connector
- URL:https://your-server/mcp
- Add Bearer token in Advanced settings

Detailed setup:Claude Integration Guide

This server sits between an LLM and your SIEM. Security is not optional.

# Generate a secure API key python -c "import secrets; print('wazuh_' + secrets.token_urlsafe(32))"

Alert, security-event, and vulnerability tools return uniform record collections under adata.affected_itemsarray. SettingRESPONSE_FORMAT=gcfencodes those responses as aGraph Compact Formatgeneric wire instead of JSON, factoring the repeated field names into a single header so the response uses fewer tokens when it crosses the LLM boundary.

It is opt-in, lossless, and every response stays complete (a format change only, no cross-turn deduplication, so no alert is ever omitted). If encoding fails — or the encoder isn't installed — the tool falls back to JSON. It composes with the existingcompactfield-projection parameter.

The encoder is one zero-dependency package (pinned exact). Install it directly, or via thegcfextra from a source checkout:

pip install gcf-python==2.5.1 # direct pip install ".[gcf]" # or, from a clone of this repo

Production note:the server listens over plain HTTP — terminate TLS at a reverse proxy or load balancer. OAuth knobs (OAUTH_ENABLE_DCR— off by default,OAUTH__TTL) and rate-limit tuning (RATE_LIMIT_REQUESTS,RATE_LIMIT_WINDOW) are in theConfiguration Guide.

Wazuh Indexer (for alert search + vulnerabilities)

Managing several Wazuh deployments? Drop aclusters.jsonnext to your config (seeconfig/clusters.json.example) and every tool gains an optionalcluster_idargument plus alist_wazuh_clusterstool:

- Noclusters.json→ single-cluster behavior from env vars, exactly as before.
- Withclusters.json→ named clusters, each with its own Manager (and optionally Indexer) credentials;"${ENV_VAR}"values are resolved from the environment so secrets stay out of the file. The env-configured cluster remains reachable asdefault.
- Cross-Cluster Search→ point clusters at a shared OpenSearch CCS coordinator and setccs_prefix(the remote-cluster name); alert/vulnerability queries becomeeu:wazuh-alerts-
. An entry with"ccs_prefix": "*"gives you anallpseudo-cluster that searches every remote cluster at once.

src/wazuh_mcp_server/ ├── server.py # MCP protocol + 55 tool handlers ├── config.py # Environment-based configuration ├── auth.py # JWT + API key authentication ├── oauth.py # OAuth 2.0 with Dynamic Client Registration ├── security.py # Rate limiting, CORS, input validation ├── monitoring.py # Prometheus metrics, structured logging ├── resilience.py # Circuit breakers, retries, graceful shutdown ├── session_store.py # Pluggable sessions (in-memory + Redis) └── api/ ├── wazuh_client.py # Wazuh Manager REST API client └── wazuh_indexer.py # Wazuh Indexer (Elasticsearch) client

Combine this MCP server withWazuh Autopilotto build an agentic Security Operations Center.

While this server gives you conversational access to Wazuh, Autopilot runs an eleven-agent AI SOC team on top of itaround the clock— a seven-stage reactive pipeline (triage → correlation → investigation → response) plus four proactive specialists (vulnerability management, threat intel, threat hunting, detection engineering). Every containment action is gated behind two-tier human approval. Runs on OpenClaw, Hermes, or NVIDIA NemoClaw.

Manual SOC: Alert → Analyst reviews → Hours → Response Agentic SOC: Alert → AI triages → Seconds → Response ready for approval

We welcome contributions. SeeIssuesfor bugs and feature requests,Discussionsfor questions.

- Wazuh— Open source security platform
-
Model Context Protocol— AI tool integration standard
-
Ollama— Local LLM inference
-
Open WebUI— Self-hosted AI chat interface
-
mcphost— MCP CLI host with LLM support

Legend:💻 Code · 🐛 Issues · 🔀 Pull Requests · 💬 Discussions

Enforces organisational AI usage policies at the agent layer — blocks prohibited model calls, enforces data residency rules, logs policy violations, and ensures AI governance policies are machine-executable.

Guardrails service for AI agents. Default-deny tool call evaluation with LLM safety analysis, priority-ordered decision matrix, and human-in-the-loop escalations. Session recording, behavioral analysis, MCP proxy, secret redaction, and real-time audit.

Trust and safety layer for AI agents — scores MCP servers for security risk, capability flags, and prompt injection.

Security gateway that blocks prompt-injection-driven tool calls (poisoned payments, fabricated results) using cryptographic receipts, value-provenance enforcement, and multi-model consensus. Sits in front of any MCP server.

Vaara is the tamper-evident runtime evidence layer for AI systems. It covers EU AI Act compliance, and any other case where you need to prove what an agent actually did. Open source, no SaaS, no telemetry.

KHEPRA MCP Server smithery badge MCP Registry License Container PQC Sovereign compliance engine with 36,195 STIG/CCI/NIST/CMMC mappings. Air-gappable. Zero token costs. Run ert_scan → get a Godfather Report with dollar-denominated business impact. The only MCP compliance server that runs on your metal — with the World's First DoD PQC STIG built in. PQC-01-STIG-V1R1 — Full Whitepaper → 17 controls covering CNSA 2.0, FIPS 203/204/205, and the NSA's May 2026 MCP security advisory. The world's first DoD-style Post-Quantum Cryptography STIG, including the first PQC controls for agentic AI and MCP deployments.

Comprehensive audit logging for agent-to-agent interactions — immutable event trails, tamper-evident hashing, structured log export (SIEM-compatible), and compliance-grade retention for regulated industries.

Cryptographic runtime governance for AI agents. 20 tools. Sealed policy artifacts, continuous measurement, tamper-evident proof. Ed25519 + SHA-256.

AI Agent Supply Chain Security - Intercepts and validates every package installation, git clone, and script download triggered by AI coding agents before it executes.

Structured AI incident reporting for EU AI Act Article 62 — generates mandatory incident reports, severity classification, root cause analysis, and regulator-ready submissions for serious AI incidents.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.