wazuh-mcp 1.1.4 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +23 -5
- package/dist/{chunk-IGSZ2WD7.js → chunk-5Q2DPBC6.js} +435 -203
- package/dist/chunk-5Q2DPBC6.js.map +1 -0
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/{indexer-client-DXncQu0Y.d.ts → indexer-client-DYVRA6rG.d.ts} +13 -0
- package/dist/mcp-bin.js +1 -1
- package/package.json +5 -5
- package/dist/chunk-IGSZ2WD7.js.map +0 -1
package/README.md
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
<img src="docs/assets/wazuh-mcp-social-preview.jpg" alt="wazuh-mcp banner" width="900">
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
|
+
<p align="center">
|
|
6
|
+
<a href="https://lidless.dev"><img src="docs/assets/marks/wazuh-mcp-circle.png" width="48" alt="Lidless Labs"></a>
|
|
7
|
+
</p>
|
|
8
|
+
|
|
5
9
|
<h1 align="center">wazuh-mcp</h1>
|
|
6
10
|
|
|
7
11
|
<p align="center">
|
|
@@ -311,13 +315,16 @@ Set the following environment variables:
|
|
|
311
315
|
|
|
312
316
|
| Variable | Required | Default | Description |
|
|
313
317
|
|----------|----------|---------|-------------|
|
|
314
|
-
| `WAZUH_URL` | Yes | - | Wazuh API URL (e.g., `https://192.0.2.2:55000`) |
|
|
318
|
+
| `WAZUH_URL` | Yes | - | Wazuh API URL (e.g., `https://192.0.2.2:55000`). Must be `https://` (or `http://` with `WAZUH_ALLOW_INSECURE_HTTP=true`), and must not contain embedded credentials, a query string, or a fragment. A path prefix for a reverse proxy is allowed. |
|
|
315
319
|
| `WAZUH_USERNAME` | Yes | - | API username |
|
|
316
320
|
| `WAZUH_PASSWORD` | Yes | - | API password |
|
|
317
321
|
| `WAZUH_VERIFY_SSL` | No | `true` | Verifies SSL certificates by default. Set to `false` (also accepts `0`/`no`/`off`) to disable verification for trusted self-signed lab environments only. |
|
|
322
|
+
| `WAZUH_CA_FILE` | No | - | Path to a PEM CA bundle used to verify the manager's TLS certificate (private CA or self-signed). Read at startup; the server exits with an error if the file cannot be read. Prefer this over `WAZUH_VERIFY_SSL=false`. |
|
|
323
|
+
| `WAZUH_ALLOW_INSECURE_HTTP` | No | `false` | Allow plain `http://` for `WAZUH_URL` and `WAZUH_INDEXER_URL`. When unset, `http://` URLs are rejected at startup. When enabled and in use, the server prints a startup warning to stderr. Trusted lab networks only. |
|
|
318
324
|
| `WAZUH_TIMEOUT` | No | `30` | Request timeout in seconds. Must be a positive integer. |
|
|
319
325
|
| `WAZUH_ALLOW_SENSITIVE_CONFIG` | No | `false` | Server-side gate for `get_manager_config`. When unset/`false`, sensitive configuration values are always redacted even if the tool's `include_sensitive_config` argument is `true`. Set to `true` (also accepts `1`/`yes`/`on`) to allow unredacted output when explicitly requested. |
|
|
320
|
-
| `WAZUH_MCP_MAX_RESPONSE_BYTES` | No | `250000` | Maximum MCP tool response size before returning a truncated preview with metadata. |
|
|
326
|
+
| `WAZUH_MCP_MAX_RESPONSE_BYTES` | No | `250000` | Maximum MCP tool response size before returning a truncated preview with metadata. Values below `1024` are raised to `1024`. The truncated envelope itself always fits within the cap. |
|
|
327
|
+
| `WAZUH_MCP_MAX_STDIO_BUFFER_BYTES` | No | `8388608` (8 MiB) | Maximum stdio read-buffer size in bytes. Must be a positive integer. A single client message exceeding it makes the transport error and close. |
|
|
321
328
|
|
|
322
329
|
Alternative variable names `WAZUH_BASE_URL` and `WAZUH_USER` are also supported.
|
|
323
330
|
|
|
@@ -327,14 +334,17 @@ Wazuh 4.x stores alerts and vulnerability inventory in the Wazuh Indexer (OpenSe
|
|
|
327
334
|
|
|
328
335
|
| Variable | Required | Default | Description |
|
|
329
336
|
|----------|----------|---------|-------------|
|
|
330
|
-
| `WAZUH_INDEXER_URL` | No | - | Wazuh Indexer URL (e.g., `https://192.0.2.2:9200`) |
|
|
337
|
+
| `WAZUH_INDEXER_URL` | No | - | Wazuh Indexer URL (e.g., `https://192.0.2.2:9200`). Same URL rules as `WAZUH_URL`. |
|
|
331
338
|
| `WAZUH_INDEXER_USERNAME` | No | `admin` | Indexer username |
|
|
332
339
|
| `WAZUH_INDEXER_PASSWORD` | Yes, when `WAZUH_INDEXER_URL` is set | - | Indexer password. The server fails fast at startup if `WAZUH_INDEXER_URL` is set without it. |
|
|
333
340
|
| `WAZUH_INDEXER_VERIFY_SSL` | No | `true` | Verifies SSL certificates by default. Set to `false` (also accepts `0`/`no`/`off`) to disable verification for trusted self-signed lab environments only. |
|
|
341
|
+
| `WAZUH_INDEXER_CA_FILE` | No | - | Path to a PEM CA bundle used to verify the indexer's TLS certificate. Read at startup; the server exits with an error if the file cannot be read. |
|
|
334
342
|
| `WAZUH_INDEXER_TIMEOUT` | No | `30` | Indexer request timeout in seconds. Must be a positive integer. |
|
|
335
343
|
|
|
336
344
|
If `WAZUH_INDEXER_URL` is not set, alert and vulnerability tools will return a helpful configuration message. All other tools (agents, rules, decoders, version) work without the indexer.
|
|
337
345
|
|
|
346
|
+
Indexer searches count at most 10000 matching hits and carry a 30-second server-side `timeout`. When the real match count is higher, `pagination.total_is_lower_bound` is `true` and `total` is 10000. Alert and vulnerability tools accept `offset` up to 9999 and reject requests where `offset + limit` exceeds 10000 (OpenSearch's default `max_result_window`); narrow the query with filters or a time range instead of paging deeper.
|
|
347
|
+
|
|
338
348
|
SSL certificate verification is enabled by default (secure by default). When either SSL verification setting is explicitly set to `false`, the server prints a startup warning to stderr. TLS verification is disabled only for that configured Wazuh client.
|
|
339
349
|
|
|
340
350
|
### Sensitive Output Defaults
|
|
@@ -354,7 +364,7 @@ Several tools return minimized output by default to avoid exposing raw logs, IPs
|
|
|
354
364
|
|
|
355
365
|
### Untrusted SIEM Content
|
|
356
366
|
|
|
357
|
-
Alert and
|
|
367
|
+
Alert, log, and inventory fields originate on monitored endpoints: anyone who can write a log line to a monitored host (a failed SSH login with a crafted username, a web request path, a syslog message) or control a process, package, file, or hostname on it controls the text that lands in `full_log`, alert `rule_description`, `agent_name`, `location`, and `decoder`, raw event `data`, manager log descriptions, agent names and OS fields, syscollector process/package/port/interface/hotfix fields, FIM paths and owners, rootcheck events, SCA policy and check text, and vulnerability package and description fields. To blunt prompt injection against the calling agent, the server wraps those values in `<untrusted_siem_data>...</untrusted_siem_data>` markers, includes an `output.untrusted_data_note` warning in affected responses, and states in the tool descriptions that the content is attacker-influenced data, never instructions to follow.
|
|
358
368
|
|
|
359
369
|
### Input Validation
|
|
360
370
|
|
|
@@ -380,7 +390,7 @@ Transient manager `GET` requests and indexer search/readiness requests retry bri
|
|
|
380
390
|
|
|
381
391
|
## Prerequisites
|
|
382
392
|
|
|
383
|
-
- Node.js
|
|
393
|
+
- Node.js 22+
|
|
384
394
|
<!-- content-guard: allow port-reference -->
|
|
385
395
|
- A running Wazuh manager with API access (default port 55000)
|
|
386
396
|
- Wazuh API credentials (username/password)
|
|
@@ -505,3 +515,11 @@ wazuh-mcp/
|
|
|
505
515
|
## License
|
|
506
516
|
|
|
507
517
|
MIT. See [LICENSE](LICENSE).
|
|
518
|
+
|
|
519
|
+
---
|
|
520
|
+
|
|
521
|
+
<p align="center"><a href="https://lidless.dev">Part of <strong>Lidless Labs</strong></a> · the eye does not close</p>
|
|
522
|
+
|
|
523
|
+
<p align="center"><sub><strong>Security / SOC:</strong> <a href="https://github.com/lidless-labs/soc-stack">soc-stack</a> · <a href="https://github.com/lidless-labs/misp-mcp">misp-mcp</a> · <a href="https://github.com/lidless-labs/suricata-mcp">suricata-mcp</a> · <a href="https://github.com/lidless-labs/thehive-mcp">thehive-mcp</a> · <a href="https://github.com/lidless-labs/cortex-mcp">cortex-mcp</a> · <a href="https://github.com/lidless-labs/mitre-mcp">mitre-mcp</a> · <a href="https://github.com/lidless-labs/zeek-mcp">zeek-mcp</a> · <a href="https://github.com/lidless-labs/hotwash">hotwash</a></sub></p>
|
|
524
|
+
|
|
525
|
+
<p align="center"><sub><a href="https://lidless.dev">All tools</a> · <a href="https://github.com/lidless-labs">Lidless Labs on GitHub</a></sub></p>
|