Skip to main content
Glama
Sbharadwaj05

wazuh-mcp-server

by Sbharadwaj05

πŸ” SB SIEM MCP

Note: Independent, third-party project β€” not affiliated with or endorsed by Wazuh Inc. Actively developed and tested against live Wazuh instances; review and test before production deployment.

28 MCP tools. 9 domains. Tested on Wazuh 4.14.5 against live instances. AI-powered security operations for Wazuh SIEM/XDR.

"Show me all critical alerts in the last 6 hours, cross-reference with MITRE ATT&CK, and check if any affected hosts have unpatched CVEs."

One prompt. Your AI assistant queries 7,514 alerts, checks 5,038 FIM records, scans 12 CVEs, cross-references 750 MITRE techniques, audits CIS compliance, and triggers incident response β€” all through your Wazuh infrastructure.


How It Works (30 seconds)

You already have Wazuh running somewhere. The MCP server is a local process that your AI client spawns as a child β€” just like a language server or linter.

Your Machine                              Your Wazuh Server
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Zed / Claude       β”‚                   β”‚                  β”‚
β”‚   β”‚                β”‚                   β”‚  Wazuh API       β”‚
β”‚   β–Ό                β”‚                   β”‚  :55000          β”‚
β”‚ python -m          │───────HTTPS──────▢│                  β”‚
β”‚ wazuh_mcp.server   β”‚                   β”‚  Wazuh Indexer   β”‚
β”‚ (child process)    │───────HTTPS──────▢│  :9200           β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

No Docker required. No containers. No agents to install. Just point it at your existing Wazuh and start asking questions in natural language.


Related MCP server: Wazuh MCP Server

πŸ›‘οΈ Security Features (Defense in Depth)

  • Input validation β€” Shell metacharacter blocking, regex for agent IDs, IPs, CVEs, MITRE IDs

  • Rate limiting β€” Token-bucket: 30/60s for read tools, 5/120s for destructive

  • Output sanitization β€” Redacts AWS keys, JWT tokens, SSH keys, API keys, passwords from LLM-bound data

  • Audit logging β€” Append-only JSONL trail for all destructive actions

  • Confirmation gate β€” Two-step confirm=True + expiring token for active response tools

  • RBAC β€” 4 built-in roles: viewer, analyst, admin, soc with hierarchical access

  • Dependabot + pip-audit + CodeQL β€” Automated dependency scanning on every push + weekly schedule

  • Non-root Docker β€” Production container runs as unprivileged wazuhmcp user

  • TLS support β€” Verify server certificates, or disable for local dev via WAZUH_INSECURE

  • Prometheus metrics β€” 7 metrics exposed on :9090/metrics for SOC monitoring (latency, errors, rate limits)

  • OpenAPI 3.0 / Swagger UI β€” Interactive API docs at /docs, raw spec at /openapi.json


πŸ“Š Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Your AI Client           β”‚         β”‚  Wazuh Infrastructure     β”‚
β”‚  (Zed / Claude / Cursor)  β”‚         β”‚                          β”‚
β”‚          β”‚                β”‚         β”‚  Wazuh API :55000        β”‚
β”‚          β–Ό                β”‚         β”‚  β”œβ”€ Agents, Groups       β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”‚         β”‚  β”œβ”€ SCA, FIM, MITRE     β”‚
β”‚  β”‚  MCP Server       │────HTTPS────▢│  β”œβ”€ Manager, Cluster    β”‚
β”‚  β”‚  28 tools         β”‚     β”‚         β”‚  └─ Active Response     β”‚
β”‚  β”‚                  β”‚     β”‚         β”‚                          β”‚
β”‚  β”‚  WazuhClient ────┼────HTTPS────▢│  Wazuh Indexer :9200    β”‚
β”‚  β”‚  IndexerClient ────     β”‚         β”‚  β”œβ”€ Alerts (7,514+)     β”‚
β”‚  β”‚  RateLimiter     β”‚     β”‚         β”‚  β”œβ”€ Vulnerabilities      β”‚
β”‚  β”‚  Sanitizer       β”‚     β”‚         β”‚  └─ Events, Rules       β”‚
β”‚  β”‚  RBACEnforcer    β”‚     β”‚         β”‚                          β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β”‚         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚          β”‚                β”‚
β”‚    :9090/metrics           β”‚
β”‚    :8000/docs              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

The MCP server talks to both the Wazuh REST API (port 55000, for management) and the Wazuh Indexer (port 9200, for alerts/vulnerabilities). In Wazuh 4.x/5.x, alerts and vulnerabilities are indexer-only β€” not available via the REST API. The server's IndexerClient handles this transparently.


πŸ“Š What This Does

Workflow

Example Prompt

Tools Used

Alert Triage

"Summarize today's alerts by severity and MITRE technique"

list_alerts, alert_summary, get_alert

Threat Hunting

"Search for IOC 10.0.0.50 across all events and FIM records"

search_events, query_fim, search_mitre

Compliance Audit

"Show me all agents failing CIS benchmark checks"

sca_status, sca_checks, compliance_report

Rules Coverage

"What's my NIST 800-53 detection coverage?"

rules_coverage_map, rules_info

Vulnerability Mgmt

"Which systems have critical unpatched CVEs?"

query_vulnerabilities, vulnerability_heatmap

Incident Timeline

"Reconstruct what happened around alert #45821"

incident_timeline, search_events, query_fim

Fleet Management

"List disconnected agents and their groups"

list_agents, get_agent, agent_health, list_groups

Threat Intel

"Show me the CDB blocklists and MITRE techniques for T1059"

list_cdb_lists, get_cdb_list, search_mitre

Incident Response ⚠️

"Block IP 203.0.113.55 on all web servers"

run_active_response (with confirmation)


πŸ“¦ Installation

pip (from PyPI β€” coming soon)

pip install sb-siem-mcp

From source

git clone https://github.com/Sbharadwaj05/sb-siem-mcp.git
cd sb-siem-mcp
pip install -e ".[dev]"

Docker (one‑command demo β€” spins up Wazuh + MCP for testing)

⚠️ This bundles a full Wazuh stack for quick demos. In production, you already have Wazuh running β€” just use the pip install above and point to your existing Wazuh.

πŸ”’ The MCP endpoint has no built-in client authentication. The demo server binds to localhost:8000 β€” keep it local. For remote access, place it behind a reverse proxy with auth. See Production Hardening below.

git clone https://github.com/Sbharadwaj05/sb-siem-mcp.git
cd sb-siem-mcp
docker compose up -d

# Wazuh Dashboard:   https://localhost:443
# Swagger UI:         http://localhost:8000/docs
# Prometheus Metrics: http://localhost:9090/metrics

Configuration

Create a .env file:

# Required
WAZUH_API_URL=https://your-wazuh-manager:55000
WAZUH_USERNAME=wazuh-wui
WAZUH_PASSWORD=your-api-password

# Required for alerts, vulnerabilities, rules (Wazuh 4.x/5.x)
WAZUH_INDEXER_URL=https://your-wazuh-manager:9200
WAZUH_INDEXER_USER=admin
WAZUH_INDEXER_PASS=your-indexer-password

# Optional
WAZUH_INSECURE=true                    # Skip TLS verification (dev only)
WAZUH_RBAC_ROLE=analyst                # Restrict tools by role
WAZUH_RATE_LIMIT_TOKENS=30             # Rate limit burst
WAZUH_RATE_LIMIT_PERIOD=60             # Rate limit window

Important: The Wazuh Indexer (port 9200) must be accessible from the MCP server. By default it only listens on localhost. See Troubleshooting for the one-line fix.

Claude Desktop / Zed / Cursor

{
  "mcpServers": {
    "wazuh": {
      "command": "python",
      "args": ["-m", "wazuh_mcp.server"],
      "cwd": "/path/to/sb-siem-mcp/src",
      "env": {
        "WAZUH_API_URL": "https://192.168.56.102:55000",
        "WAZUH_USERNAME": "wazuh-wui",
        "WAZUH_PASSWORD": "your-api-password",
        "WAZUH_INSECURE": "true",
        "WAZUH_INDEXER_PASS": "your-indexer-password"
      }
    }
  }
}

πŸ”§ Complete Tool Reference (28 tools, 9 domains)

πŸ”” Alerts & Triage (3)

Tool

Description

Data Source

wazuh_list_alerts

Query alerts by severity, agent, rule ID, MITRE, search

Wazuh Indexer

wazuh_get_alert

Fetch single alert by ID with full context

Wazuh Indexer

wazuh_alert_summary

Aggregated: severity distribution, top rules/IPs, MITRE coverage

Wazuh Indexer

πŸ” Threat Hunting (4)

Tool

Description

Data Source

wazuh_search_events

Submit raw events for Wazuh parsing/analysis

Wazuh API

wazuh_query_fim

File Integrity Monitoring β€” file changes, additions, deletions

Wazuh API

wazuh_query_vulnerabilities

CVE inventory per agent, filterable by severity

Wazuh Indexer

wazuh_search_mitre

MITRE ATT&CK techniques, tactics, mitigations, groups

Wazuh API

πŸ“‹ Compliance (3)

Tool

Description

Data Source

wazuh_sca_status

SCA policy scores per agent (CIS, PCI DSS, NIST, GDPR)

Wazuh API

wazuh_sca_checks

Per-check pass/fail detail with rationales and remediation

Wazuh API

wazuh_compliance_report

Fleet-wide compliance aggregation across all agents

Wazuh API

πŸ–₯️ Agents & Groups (6)

Tool

Description

Data Source

wazuh_list_agents

List agents with status, OS, version, search, pagination

Wazuh API

wazuh_get_agent

Deep-dive on single agent: config, modules, groups

Wazuh API

wazuh_agent_health

Fleet health: status counts, OS breakdown, stale agents

Wazuh API

wazuh_list_groups

List agent groups with counts and checksums

Wazuh API

wazuh_get_group

Group details, configuration, member counts

Wazuh API

wazuh_group_agents

All agents in a specific group

Wazuh API

πŸ“š CDB Lists (2)

Tool

Description

Data Source

wazuh_list_cdb_lists

List CDB threat-intel files (IP blocklists, IOC databases)

Wazuh API

wazuh_get_cdb_list

Read contents of a CDB list file

Wazuh API

βš™οΈ Manager & Cluster (5)

Tool

Description

Data Source

wazuh_manager_stats

Daemon statistics (EPS, queues, processed events)

Wazuh API

wazuh_manager_logs

Manager log retrieval with category and search filters

Wazuh API

wazuh_cluster_status

Cluster health: enabled/running state

Wazuh API

wazuh_cluster_node_stats

Per-node daemon stats (falls back to manager stats for single-node)

Wazuh API

wazuh_rules_info

Search rules by framework/MITRE (falls back to indexer on 4.14.x bug)

Wazuh API / Indexer

πŸ“Š Security Analysis (3)

Tool

Description

Data Source

wazuh_rules_coverage_map

MITRE/NIST/PCI/GDPR/HIPAA coverage matrix vs your rules

Wazuh Indexer

wazuh_vulnerability_heatmap

Risk-scored CVE heatmap across all agents

Wazuh Indexer

wazuh_incident_timeline

Auto-generated chronological attack timeline from an alert

Wazuh Indexer

⚠️ Incident Response (2)

Tool

Description

Data Source

wazuh_run_active_response

Trigger firewall-drop, host-deny, restart-wazuh (with confirmation gate)

Wazuh API

wazuh_agent_command

Execute command on remote agent (with confirmation gate)

Wazuh API

πŸ”’ SAFETY: Destructive tools require two-step confirm=True + one-time expiring token. A misconfigured LLM cannot silently block IPs or quarantine hosts. All destructive actions are recorded in an append-only audit log.


πŸ–₯️ Observability

Prometheus Metrics (:9090/metrics)

Metric

Type

Description

wazuh_mcp_tool_calls_total

Counter

Tool invocations by name + status (success/error)

wazuh_mcp_tool_duration_seconds

Histogram

P50/P95/P99 latency per tool

wazuh_mcp_rate_limits_total

Counter

Rate-limit rejections per tool

wazuh_mcp_api_up

Gauge

Wazuh API connectivity (1=up, 0=down)

wazuh_mcp_audit_entries_total

Counter

Destructive actions logged

wazuh_mcp_active_requests

Gauge

In-flight tool calls

wazuh_mcp_tool_errors_total

Counter

Errors by tool + error type

OpenAPI / Swagger (:8000/docs)

Interactive API docs for all 28 tools. Raw OpenAPI 3.0 spec at /openapi.json.

Audit Log (~/.wazuh-mcp/audit.jsonl)

Append-only JSON Lines. One entry per destructive action. Never truncated. Thread-safe.


πŸ” RBAC

Four built-in roles with hierarchical, cumulative access:

Role

Access

Tools

viewer

Read-only

Alerts, agents, compliance, rules

analyst

+ Investigation

All viewer + hunting, MITRE, CDB lists, analysis

admin

+ Administration

All analyst + manager stats, logs, cluster

soc

+ Response ⚠️

All admin + active response, agent commands

export WAZUH_RBAC_ROLE=analyst
# Or custom policy: WAZUH_RBAC_POLICY=/path/to/rbac.json

πŸ“ Project Structure

sb-siem-mcp/
β”œβ”€β”€ src/wazuh_mcp/
β”‚   β”œβ”€β”€ server.py           # FastMCP entry point (stdio + SSE transport)
β”‚   β”œβ”€β”€ client.py           # Wazuh REST API client (JWT, Basic Auth, fallback)
β”‚   β”œβ”€β”€ indexer.py          # Wazuh Indexer / OpenSearch client (alerts, vulns)
β”‚   β”œβ”€β”€ rbac.py             # Role-Based Access Control (4 roles, custom policies)
β”‚   β”œβ”€β”€ audit.py            # Immutable audit logging (JSONL, append-only)
β”‚   β”œβ”€β”€ sanitizer.py        # Output sanitization (credential redaction)
β”‚   β”œβ”€β”€ rate_limiter.py     # Token-bucket per-tool rate limiting
β”‚   β”œβ”€β”€ validators.py       # Input validation (regex, shell metacharacter blocking)
β”‚   β”œβ”€β”€ metrics.py          # Prometheus metrics exporter (7 metrics)
β”‚   β”œβ”€β”€ openapi.py          # OpenAPI 3.0 spec + Swagger UI generator
β”‚   β”œβ”€β”€ output.py           # Token-efficient field selection (5 modes)
β”‚   β”œβ”€β”€ utils.py            # JSON formatters, pagination helpers
β”‚   └── tools/              # 9 tool modules, 28 MCP tools
β”‚       β”œβ”€β”€ alerts.py       # 3 tools: list, get, summary
β”‚       β”œβ”€β”€ hunting.py      # 4 tools: events, fim, vulns, mitre
β”‚       β”œβ”€β”€ compliance.py   # 3 tools: sca status, checks, report
β”‚       β”œβ”€β”€ agents.py       # 3 tools: list, get, health
β”‚       β”œβ”€β”€ groups.py       # 3 tools: list, get, group agents
β”‚       β”œβ”€β”€ lists.py        # 2 tools: list cdb, get cdb
β”‚       β”œβ”€β”€ manager.py      # 5 tools: stats, logs, cluster, node, rules
β”‚       β”œβ”€β”€ analysis.py     # 3 tools: coverage, heatmap, timeline
β”‚       └── response.py     # 2 tools: active response, agent command (safety-gated)
β”œβ”€β”€ tests/                  # pytest-asyncio test suite (12 tests, all passing)
β”œβ”€β”€ docs/                   # SECURITY, DEVELOPMENT, ADVANCED_FEATURES, TROUBLESHOOTING
β”œβ”€β”€ scripts/setup.sh        # One-command Wazuh + MCP dev environment
β”œβ”€β”€ docker-compose.yml      # Wazuh 4.9 + MCP server + Prometheus
β”œβ”€β”€ Dockerfile              # Multi-stage production build (non-root)
β”œβ”€β”€ openapi.json            # Generated OpenAPI 3.0 specification (24 paths)
β”œβ”€β”€ .github/workflows/      # CI (test matrix), Release, Security Scan
β”œβ”€β”€ CHANGELOG.md
└── README.md

πŸš€ Quick Start

# 1. Clone
git clone https://github.com/Sbharadwaj05/sb-siem-mcp.git
cd sb-siem-mcp

# 2. Configure
cp .env.example .env
# Edit .env with your Wazuh API + Indexer credentials

# 3. Install
pip install -e ".[dev]"

# 4. Verify connectivity
python -c "
from wazuh_mcp.client import WazuhClient
import asyncio
async def t():
    c = WazuhClient(insecure=True)
    print('Agents:', (await c.list_agents(limit=1)).get('total_affected_items','?'))
    print('Alerts:', (await c.list_alerts(limit=1)).get('total_affected_items','?'))
    await c.close()
asyncio.run(t())
"

# 5. Connect to AI client
# Copy claude_desktop_config.json.example into your MCP config

πŸ”’ Production Hardening

This project ships with safe defaults, but the docker-compose demo stack disables several security features for ease of local testing. Do not use the demo config in production without these changes:

1. Enable TLS Everywhere

  • Set WAZUH_INSECURE=false β€” the docker-compose now defaults to false.

  • Re-enable the Wazuh Indexer security plugin β€” remove DISABLE_SECURITY_PLUGIN=true and plugins.security.disabled=true from the wazuh.indexer service. Generate proper certificates instead.

  • Set FILEBEAT_SSL_VERIFICATION_MODE=full on the Wazuh Manager.

2. Restrict the MCP Endpoint

The MCP server exposes an HTTP endpoint on port 8000. This endpoint has no built-in client authentication. In production:

  • Bind to 127.0.0.1 if the AI client runs on the same host, OR

  • Place the MCP server behind a reverse proxy with mutual TLS / API key auth, OR

  • Use network-level controls (firewall rules, security groups) to restrict access.

3. Secure the Wazuh Indexer

The Indexer (port 9200) must be network-accessible from the MCP server.

  • Use TLS with certificate verification (WAZUH_INSECURE=false).

  • Store Indexer credentials in a secrets manager (Docker secrets, Kubernetes secrets, HashiCorp Vault) β€” never in plaintext .env files in production.

  • Consider IP whitelisting at the network/firewall layer.

4. Harden the Audit Log

  • The default audit log location is ~/.wazuh-mcp/audit.jsonl. In production, set WAZUH_AUDIT_LOG=/var/log/wazuh-mcp/audit.jsonl (or another persistent volume outside the home directory).

  • For true immutability, ship audit logs to an external SIEM or use a write-once-read-many (WORM) filesystem.

5. RBAC: Enable It

RBAC is disabled by default (WAZUH_RBAC_ROLE is unset β†’ all tools available). In production, set WAZUH_RBAC_ROLE=analyst (or stricter) and configure tool permissions in your AI client to match.

6. Version Compatibility

This server targets Wazuh 4.x (tested on 4.14.5). Wazuh 5.x replaces the Indexer with a new storage back-end β€” this server will require updates to work with 5.x. Check your Wazuh version before deploying.

πŸ”’ Security Policy

See docs/SECURITY.md for full defense-in-depth documentation (6 layers), production deployment checklist, and vulnerability reporting process.

πŸ› οΈ Troubleshooting

See docs/TROUBLESHOOTING.md for solutions to:

  • Wazuh dashboard version mismatch

  • /alerts returning 404 (indexer setup)

  • /rules returning 500 (Wazuh 4.14.x bug + indexer fallback)

  • Indexer 401 authentication

  • Filebeat connection issues

  • MCP server connectivity

  • Rate limiting and confirmation gate behavior

  • Complete network architecture diagram

πŸ“„ License

MIT Β© Sbharadwaj05

Need custom detection rules, SIEM tuning, or an MCP server built? Topmate: https://topmate.io/subhash_bharadwaj or DM for Fiverr gig links.

Available Tools

28 tools
wazuh_agent_commandA

⚠️ DESTRUCTIVE: Execute an arbitrary command on a remote Wazuh agent via the active-response infrastructure.

πŸ”’ SAFETY: Same confirmation flow as wazuh_run_active_response. You MUST confirm explicitly before the command runs.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesTarget agent ID
commandYesFull command string to execute on the agent (use with extreme caution)
confirmNoπŸ”’ SAFETY: Set to True only after reviewing the confirmation prompt.
confirmation_tokenNoπŸ”’ SAFETY: The token from the confirmation prompt.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description uses a 'DESTRUCTIVE' warning and mentions the confirmation flow, which adds transparency. However, it does not detail specific behavioral traits such as potential impact on the agent, permissions required, or whether the command runs synchronously. With no annotations, the description carries full burden but is not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is exceptionally concise: two lines with clear front-loading of the destructive warning. Every sentence adds value, including the safety reminder. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although the output schema exists and the description covers key safety aspects, it omits details like return value format, required agent state (e.g., online), or that the command runs via active-response. For a destructive tool with 4 parameters, more context would be beneficial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with each parameter already well-described (e.g., 'Full command string to execute on the agent (use with extreme caution)'). The tool description adds little beyond what the schema provides, repeating safety cues. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool executes an arbitrary command on a remote Wazuh agent via active-response infrastructure. The verb 'execute' and resource 'remote Wazuh agent' are specific. It distinguishes from siblings like wazuh_run_active_response by mentioning the same confirmation flow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides some guidance on the confirmation flow and safety requirement, but does not explicitly state when to use this tool versus alternatives like wazuh_run_active_response. It lacks explicit when-not-to-use conditions or comparison to siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wazuh_agent_healthA

Get a fleet-wide health overview: counts by connection status, agents by OS/platform, version distribution, and stale agents. Use this for daily ops check or before an investigation.

ParametersJSON Schema
NameRequiredDescriptionDefault
stale_threshold_hoursNoHours after which an agent is considered stale (default: 24)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It indicates a read-only, aggregate operation (counts, distributions), but does not explicitly state that it is non-destructive, mention potential performance impact, or specify if it requires special permissions. More explicit safety or scope details would improve transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is a single, efficient sentence that delivers the core functionality first and then lists details. It is well-structured and contains no superfluous words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, output schema present), the description covers the key results: connection counts, OS/platform, version distribution, and stale agents. It does not elaborate on the output format or edge cases, but with an output schema available, this is acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, stale_threshold_hours, is already fully documented in the input schema with a clear description and default value. The tool description adds no additional meaning beyond that, so a baseline score of 3 is appropriate given 100% schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool fetches a fleet-wide health overview with specific breakdowns: counts by connection status, OS/platform, version distribution, and stale agents. The verb 'Get' and resource 'health overview' are precise, and it distinguishes from sibling tools like wazuh_list_agents which show raw agent lists.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use this for daily ops check or before an investigation,' providing clear context for when to use. However, it does not mention when not to use it or suggest alternatives, such as using wazuh_list_agents for detailed agent data.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wazuh_alert_summaryA

Get a high-level summary of recent alerts: severity distribution, top attacking IPs, most triggered rules, and MITRE technique coverage. Use this as the first step in security posture assessment or shift handoff.

ParametersJSON Schema
NameRequiredDescriptionDefault
hours_backNoNumber of hours to look back for the summary (default: 24)
min_levelNoMinimum alert level to include (default: 7, moderate and above)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It implies read-only behavior but does not explicitly state idempotency, auth requirements, or rate limits. It lists what the summary contains, which adds some transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with key information, no redundancy. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With output schema present and simple parameters (2 optional), the description is complete for its complexity. Could mention return format briefly, but not required.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear descriptions for both parameters. The description does not add significant meaning beyond the schema, meeting the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it provides a high-level summary of recent alerts, listing specific components like severity distribution, top IPs, rules, and MITRE coverage. This distinguishes it from sibling tools like wazuh_list_alerts (lists all alerts) and wazuh_get_alert (single alert).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use this as the first step in security posture assessment or shift handoff,' giving clear when-to-use context. Could mention when not to use or alternatives, but current guidance is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wazuh_cluster_node_statsA

Get detailed statistics for a specific Wazuh cluster node. Shows per-node EPS, queue sizes, daemon status, and resource utilization. Essential for diagnosing cluster imbalances.

ParametersJSON Schema
NameRequiredDescriptionDefault
node_idYesCluster node ID to inspect (e.g., 'master-node', 'worker-1')

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden. It clearly states the tool retrieves statistics and enumerates the data categories (EPS, queues, daemon, utilization). This is sufficient to convey that the operation is read-only and diagnostic. Additional details about error handling or limits are not needed given the simplicity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero waste. The first sentence states the action and resource, the second adds value by listing examples and use case. Front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with an output schema, the description is complete. It explains the tool's purpose, the kind of data returned, and its utility. No gaps remain given the sibling context and available structured metadata.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with a clear description of 'node_id' including examples. The description does not add new information beyond stating it is 'for a specific Wazuh cluster node', which is already implicit in the parameter name and schema. Per guidance, baseline 3 is appropriate when schema already documents parameters well.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses specific verb 'Get detailed statistics' and identifies the resource as 'a specific Wazuh cluster node'. It lists the types of data shown (EPS, queue sizes, daemon status, resource utilization), clearly distinguishing it from sibling tools like wazuh_cluster_status which likely covers cluster-wide stats.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'Essential for diagnosing cluster imbalances' provides a clear use case. While it does not explicitly state when not to use or list alternatives, the purpose is specific enough that an agent can infer it is for deep-dive node analysis versus higher-level cluster overview tools. This is adequate but not exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wazuh_cluster_statusA

Get the Wazuh cluster health status: node list, sync status, and connectivity between manager nodes. Use this when checking if the cluster is healthy or diagnosing replication failures.

ParametersJSON Schema
NameRequiredDescriptionDefault
include_nodesNoInclude detailed per-node information in the response

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries burden. It implies read-only operation but does not disclose potential costs, permissions needed, or other behavioral traits beyond what is stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: first sentence states purpose, second gives usage context. No redundant words; efficient and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity (one optional param, output schema present), the description adequately covers purpose and usage. However, could benefit from clarifying scope (e.g., all nodes vs current node) even though implied.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single boolean parameter 'include_nodes' is self-explanatory from the schema description. The tool's description adds no additional meaning beyond the schema's description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies the verb 'Get' and resource 'Wazuh cluster health status', listing specific return contents (node list, sync status, connectivity) which clearly distinguishes it from sibling like wazuh_cluster_node_stats.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use ('when checking if the cluster is healthy or diagnosing replication failures') but does not mention when not to use or alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wazuh_compliance_reportA

Generate a compliance summary report across agents. Shows which agents have SCA enabled, their compliance scores, and failed-check counts grouped by policy. Ideal for audit prep.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idsNoComma-separated agent IDs or agent groups (default: fetch all from agent list)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must carry behavioral info. It accurately describes output as a report without side effects. Could mention it does not modify state, but implied by 'report'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences: action, output details, use case. Every sentence adds distinct value with no redundancy. Front-loaded with key info.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, description does not need to detail return format. It names key fields (agent, scores, failed-check counts, policy). Missing mention of data freshness or limits, but sufficient for decision-making.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a parameter description clarifying comma-separated agent IDs/groups. The tool description adds minimal extra meaning beyond that; baseline score holds.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly specifies the tool generates a compliance summary report and details what it shows (SCA enabled, scores, failed-check counts grouped by policy). Distinct from siblings like wazuh_sca_checks which focus on individual checks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States 'Ideal for audit prep' giving a clear use case, but does not explicitly mention when to use alternatives like wazuh_sca_status or wazuh_sca_checks for finer detail.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wazuh_get_agentA

Get detailed information about a specific agent: configuration, enabled modules, OS details, group membership, and connection history.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesThe agent ID to inspect (e.g., '001')

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It states it gets detailed information but does not disclose behavioral traits such as whether it mutates state, required permissions, error handling for invalid agent IDs, or rate limits. Limited transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, efficient, front-loaded with the verb 'Get'. Every word adds meaning, no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple get-info tool with an output schema, the description is sufficiently complete. It covers the key aspects of what is retrieved. Could briefly mention that response details are in the output schema, but not necessary.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (one required parameter with description). The description adds value by listing the types of information returned (configuration, OS details, etc.), which goes beyond the schema's description of agent_id.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Get detailed information about a specific agent' and lists specific data categories (configuration, enabled modules, OS details, group membership, connection history). This distinguishes it from siblings like wazuh_list_agents (which lists agents) and wazuh_agent_health (likely health-focused).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving detailed agent info but does not explicitly state when to use this tool versus alternatives like wazuh_agent_health or wazuh_list_agents. No exclusions or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wazuh_get_alertA

Fetch a single Wazuh alert by its ID with full contextual detail. Use this when investigating a specific alert from wazuh_list_alerts results.

ParametersJSON Schema
NameRequiredDescriptionDefault
alert_idYesThe alert ID to retrieve (from wazuh_list_alerts output)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears the full burden of disclosing behavioral traits. It claims 'full contextual detail' but does not describe whether the operation is read-only, requires authentication, or has any side effects. The tool is likely read-only, but this is not stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of two concise, front-loaded sentences. The first sentence defines the tool's action and result, the second provides usage guidance. No extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has one simple parameter and an output schema (as indicated by context signals), the description is fairly complete. It explains the purpose and when to use it. It could elaborate on what 'full contextual detail' entails, but the output schema likely covers the return format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers 100% of the single parameter 'alert_id', including its description. The tool description adds 'full contextual detail' about the response, but does not elaborate on the parameter beyond what the schema provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Fetch', the resource 'single Wazuh alert', and the key attribute 'by its ID'. It explicitly distinguishes from sibling 'wazuh_list_alerts' by specifying that this tool is for investigating a specific alert from that tool's results.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use the tool: 'when investigating a specific alert from wazuh_list_alerts results.' This provides clear context and differentiation from sibling listing tools. It does not mention when not to use, but the guidance is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wazuh_get_cdb_listB

Read the contents of a specific CDB list. CDB lists are used for IP reputation, user whitelists, IOC matching, and more. Returns the key-value entries in the list.

ParametersJSON Schema
NameRequiredDescriptionDefault
list_nameYesCDB list name to read (e.g., 'audit-keys', 'security-eventchannel')
searchNoSearch within list entries
limitNoMaximum entries to return
offsetNoPagination offset

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears full burden for behavioral traits. It indicates the operation is read-only ('Read the contents') and returns key-value entries. However, it does not disclose potential errors, authentication requirements, or rate limits. The description is adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: first states the action, second provides context and return format. No redundant information. Slight room for improvement with bullet points or examples.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read tool with an output schema, the description adequately covers purpose, use case, and return type. It does not mention pagination or filtering beyond what's in the schema, but the schema itself provides that. Given the tool's simplicity, it is complete enough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already well-documented. The description adds common-use examples for CDB lists but does not improve parameter understanding beyond the schema. Baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads a specific CDB list and explains the purpose of CDB lists (IP reputation, whitelists, IOC matching). It distinguishes from general list retrieval (wazuh_list_cdb_lists) by specifying 'contents of a specific CDB list', but could explicitly contrast with the sibling tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives (e.g., wazuh_list_cdb_lists to first obtain list names). The description does not mention prerequisites or typical usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wazuh_get_groupA

Get detailed information about a specific agent group, including its configuration and member agents.

ParametersJSON Schema
NameRequiredDescriptionDefault
group_idYesGroup ID to inspect (e.g., 'default', 'web-servers')

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description uses 'get' which implies read-only, but it does not explicitly state that this is a read-only operation with no side effects. Since no annotations are provided, the description should more clearly disclose the read-only nature to aid safe agent usage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence of 15 words, directly stating the tool's purpose and what it returns. No unnecessary words or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description mentions the returned details (configuration and member agents) and, combined with the output schema, provides sufficient context. It does not mention prerequisites like group existence, but the simple parameter and output schema mitigate the need.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides 100% coverage for the only parameter (group_id) with a clear description and examples. The tool description does not add any additional parameter information beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it gets detailed information about a specific agent group, including configuration and member agents. This distinguishes it from siblings like wazuh_list_groups (list all groups) and wazuh_group_agents (list agents in a group), as it provides a single group's full details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

While the description implies this tool is for detailed group info, it does not explicitly state when to use it versus siblings like wazuh_list_groups for overviews or wazuh_group_agents for agent lists. No usage prerequisites or exclusions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wazuh_group_agentsB

List all agents belonging to a specific agent group.

ParametersJSON Schema
NameRequiredDescriptionDefault
group_idYesGroup ID to list agents for (e.g., 'web-servers')
limitNoMaximum agents to return
offsetNoPagination offset

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description indicates a read-only listing operation, which implies no side effects. However, no annotations are provided, and the description does not disclose any additional behavioral traits such as authentication requirements or rate limits. It is minimal but adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise: a single sentence that communicates the core purpose without any fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists and the input schema covers all parameters, the description is complete enough for a simple listing tool. It could mention that it returns agent details, but that is covered by the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description does not add any extra semantics beyond what the schema already provides for group_id, limit, and offset.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists agents by group, distinguishing it from sibling tools that list all agents (wazuh_list_agents) or single agent details (wazuh_get_agent). However, it does not explicitly differentiate from similar list tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. For example, no mention that this filters agents by group, while wazuh_list_agents returns all agents.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wazuh_incident_timelineA

After identifying a security incident, reconstruct a timeline of all related events leading to it. Takes an alert ID, traces back through related events on the same agent, and builds a chronological timeline of what happened.

ParametersJSON Schema
NameRequiredDescriptionDefault
alert_idYesThe starting alert ID to build a timeline from
lookback_hoursNoHours to look back for related events (default: 24)
max_eventsNoMaximum timeline events to include

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full responsibility for behavioral disclosure. It discloses that the tool traces back through related events on the 'same agent' and builds a chronological timeline. While it does not mention whether it is read-only or potential failure modes, the key behavioral aspects are sufficiently covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely conciseβ€”two sentences that immediately convey the tool's purpose and key behavior. No superfluous information, and the critical details are front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema and moderate complexity, the description adequately covers the core functionality (tracing events on the same agent, chronological timeline). It does not explain edge cases or what constitutes 'related events,' but the output schema likely handles return structure, making this sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema coverage is 100%, with all three parameters having descriptions (alert_id, lookback_hours, max_events). The description reinforces the purpose of the tool but does not add significant new meaning beyond the schema. Thus, baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: after identifying a security incident, reconstruct a timeline of related events from a given alert ID. It uses specific verbs ('reconstruct', 'traces back', 'builds') and distinguishes itself from siblings like wazuh_get_alert (single alert) and wazuh_search_events (general search).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates when to use the tool ('after identifying a security incident'), providing clear context. However, it does not explicitly state when not to use it or mention alternative tools for different scenarios, which would be helpful for an AI agent deciding between similar tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wazuh_list_agentsA

List all Wazuh agents with their status, OS, version, and last connection. Filter by status ('active', 'disconnected', 'never_connected'), search by name or IP, and control pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by connection status: 'active', 'disconnected', 'never_connected', 'pending'
older_thanNoShow agents not seen in this duration (e.g., '1d', '4h', '30m')
searchNoSearch by agent name, IP, or ID
sortNoSort field, prefix with '-' for descending (e.g., '-last_keepalive')
limitNoMaximum agents to return (1-500)
offsetNoPagination offset

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It states what the tool returns and its filtering capabilities, which is expected. However, it does not disclose any side effects, authorization needs, or rate limits, which would be required for a higher score.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the core action and output, then lists key features. Every part is informative and there is no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 6 optional parameters, an output schema, and is a simple listing operation, the description covers the main points: what it does, what it returns, and how to filter/paginate. It omits details about sorting and the 'older_than' parameter, but the output schema exists to provide additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents each parameter. The description adds value by summarizing key parameters (status, search, pagination) but does not introduce new meaning or usage details beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List'), resource ('all Wazuh agents'), and the key attributes returned ('status, OS, version, and last connection'). It effectively distinguishes from sibling tools like wazuh_get_agent (single agent) and wazuh_agent_health (health status).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides specific usage guidance: filtering by status, searching by name/IP, and controlling pagination. It implicitly tells the agent when to use this tool (for listing agents with filters), but lacks explicit comparison to alternatives like wazuh_get_agent for single-agent queries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wazuh_list_alertsA

Query Wazuh security alerts with powerful filters. Use this to triage incidents, hunt for specific threat patterns, or get an overview of recent security events.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idNoFilter alerts to a specific agent ID (e.g., '001')
agents_listNoComma-separated agent IDs to filter (e.g., '001,002,003')
min_levelNoMinimum rule level (3-15). Higher = more severe. Use 12+ for critical only.
rule_idNoFilter by a specific Wazuh rule ID (e.g., '5710' for SSH brute force)
rule_idsNoComma-separated rule IDs (e.g., '5710,5712,5760')
mitre_idNoFilter by MITRE ATT&CK technique ID (e.g., 'T1110' for brute force)
searchNoFree-text search across alert fields (IP, hostname, command, etc.)
sortNoSort field, prefix with '-' for descending (e.g., '-timestamp')
limitNoMaximum number of alerts to return (1-500)
offsetNoPagination offset for scrolling through results

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does not disclose whether the tool is read-only, what the response format looks like, or any side effects. The name implies a read operation, but explicit statements about behavior are missing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no redundancy. The first sentence states the core purpose, and the second lists use cases. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 10 optional parameters and an output schema exists, the description is brief but adequate. It could mention pagination defaults or output structure, but the parameter schema covers details, and the output schema likely clarifies return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains each parameter. The description adds value by framing the tool's purpose but does not provide additional semantic meaning beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a clear verb 'Query' and resource 'Wazuh security alerts', and provides specific use cases (triage, hunt, overview). While it doesn't explicitly differentiate from siblings like wazuh_get_alert or wazuh_alert_summary, the use cases imply a general listing/filtering role.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives concrete scenarios for using this tool: triaging incidents, hunting for threat patterns, or getting an overview. However, it does not mention when to avoid using it or suggest alternative tools for single-alert retrieval or summaries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wazuh_list_cdb_listsA

List all CDB (Constant Database) lists configured in Wazuh. CDB lists store key-value data used by rules β€” IP blocklists, user whitelists, IOC databases, etc. Essential for understanding what threat intelligence feeds are active.

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoSearch lists by name
limitNoMaximum lists to return
offsetNoPagination offset

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It states 'List all CDB lists' accurately, but does not disclose behavioral nuances such as performance, pagination details, or authentication requirements. Adequate for a simple read operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is three sentences: primary action, explanation of CDB lists, and value statement. No extraneous information; front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a simple list tool with output schema and well-documented parameters, the description is mostly complete. It could add a brief note about pagination or search functionality, but overall adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. Description does not add additional meaning beyond schema descriptions for search, limit, and offset. No extra context provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'List all CDB lists' with a specific verb and resource, and explains what CDB lists are. Distinguishes from sibling wazuh_get_cdb_list implicitly, but could explicitly mention when to use each.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description mentions it's 'Essential for understanding what threat intelligence feeds are active,' which implies a use case. It does not provide when-not-to-use guidance or explicitly refer to alternatives like wazuh_get_cdb_list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wazuh_list_groupsA

List all Wazuh agent groups. Groups are used to organize agents by function (e.g., 'web-servers', 'database', 'production'). Useful for scoping queries and active responses to specific agent sets.

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoSearch groups by name
limitNoMaximum groups to return
offsetNoPagination offset

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description provides basic behavioral context (listing groups, utility) but lacks details on authentication, rate limits, or pagination behavior beyond what the schema implies.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences that front-load the main action and provide context, with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity and the presence of an output schema, the description covers the purpose and use case well, though it could mention the return format explicitly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond the schema's parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all Wazuh agent groups, explains their purpose, and distinguishes itself from siblings like 'wazuh_get_group' by focusing on listing all groups.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for scoping queries and active responses but does not explicitly mention when not to use it or compare to alternative tools like 'wazuh_get_group' or 'wazuh_group_agents'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wazuh_manager_logsA

Retrieve Wazuh manager logs for troubleshooting. Filter by category ('ossec', 'api', 'all'), search for specific errors or warnings, and paginate through results.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoLog category: 'all', 'ossec', or 'api'
searchNoSearch logs for specific text (error messages, etc.)
limitNoMaximum log entries to return (1-200)
offsetNoPagination offset

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses filtering, searching, and pagination, but lacks details on potential errors, rate limits, or response structure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence that is front-loaded and informative, with no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Description covers purpose, parameters, and usage context. Output schema exists, so no need to explain return values. Could mention potential limitations or common use cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. Description restates parameter purposes (category filter, search, pagination) but does not add significant new meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool retrieves Wazuh manager logs for troubleshooting, distinguishing it from sibling tools that focus on agents, alerts, or other aspects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description implies usage for troubleshooting and mentions filtering by category, search, and pagination, but does not explicitly state when to use this tool over others or specify exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wazuh_manager_statsA

Retrieve Wazuh manager daemon statistics: events per second (EPS), queue sizes, processed events, and daemon health. Essential for capacity planning and troubleshooting performance issues.

ParametersJSON Schema
NameRequiredDescriptionDefault
daemonNoSpecific daemon to query: 'analysisd', 'remoted', 'syscheckd', 'wmodules', 'authd', 'monitord', 'logcollector'. Leave empty for all.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It describes the tool as a retrieval operation with no side effects mentioned, but it does not explicitly state it is read-only or discuss any impact. A 3 is appropriate as it is truthful but lacks depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with the main action. Every word adds value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one optional parameter and an output schema, the description covers purpose and use cases. It could mention that omitting daemon returns all stats, but the schema’s default behavior is clear. The output schema handles return value details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage for the single parameter 'daemon', listing valid values. The description adds high-level context about the stats returned but doesn't detail how the parameter affects output. Baseline 3 for good schema coverage with minor added value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves Wazuh manager daemon statistics, listing specific metrics (EPS, queue sizes, etc.). It distinguishes from sibling tools like wazuh_cluster_node_stats and wazuh_manager_logs by focusing on manager daemon internals vs. cluster or logs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly identifies use cases: 'capacity planning and troubleshooting performance issues.' While it doesn't mention when not to use or alternatives, the context is sufficient for typical selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wazuh_query_fimA

Query File Integrity Monitoring (FIM) records. See what files were added, modified, or deleted on an agent. Essential for breach impact analysis and configuration drift detection.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesAgent ID to query FIM records for (e.g., '001')
file_pathNoFilter by file path (e.g., '/etc/passwd' or '/var/www/*')
event_typeNoEvent type filter: 'added', 'modified', or 'deleted'
searchNoFree-text search across FIM fields
limitNoMaximum records to return (1-500)
offsetNoPagination offset

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits. It states the tool shows file changes (added, modified, deleted) but does not cover pagination limits, performance implications, or error handling for missing agents.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two efficient sentences with no wasted words. Front-loaded with purpose and use cases.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 6 parameters (1 required) and an output schema, the description covers purpose, use cases, and basic behavior. It is mostly complete but lacks details on limits and error scenarios.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% so all parameters are described there. Description adds context about use cases but does not significantly enhance meaning beyond the schema's parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'Query' and resource 'File Integrity Monitoring (FIM) records', and specifies what it does: show added, modified, or deleted files. The name and description make it distinct from sibling tools like wazuh_query_vulnerabilities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description mentions 'Essential for breach impact analysis and configuration drift detection', implying when to use it, but lacks explicit guidance on when not to use it or how it differs from alternatives like wazuh_search_events which may also query FIM data.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wazuh_query_vulnerabilitiesC

Query the Wazuh vulnerability-detector inventory. Find CVEs affecting your fleet, filtered by severity, agent, or specific CVE ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesAgent ID to query vulnerabilities for (e.g., '001')
cveNoFilter by specific CVE ID (e.g., 'CVE-2024-3094')
severityNoFilter by severity: 'Critical', 'High', 'Medium', or 'Low'
searchNoFree-text search (package name, etc.)
limitNoMaximum vulnerabilities to return (1-500)
offsetNoPagination offset

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and description lacks behavioral details like read-only nature, pagination (though params hint), error handling, or required permissions. Does not disclose any side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences. Front-loaded with primary action. No unnecessary words. Could be structured with more detail on usage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 6 parameters, output schema present, and no annotations, description covers basic purpose but lacks behavioral and usage context. Adequate but incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline 3. Description only reiterates filter options already in schema; no additional semantic context or parameter usage examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it queries vulnerability-detector inventory for CVEs with filters. Includes specific filter examples (severity, agent, CVE ID). However, it does not differentiate from sibling tool wazuh_vulnerability_heatmap.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool over siblings, prerequisites (e.g., agent existence), or scenarios. Only implicit context that it's for querying vulnerabilities.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wazuh_rules_coverage_mapA

Generate a coverage map showing which Wazuh rules map to which MITRE ATT&CK techniques, NIST 800-53 controls, PCI DSS requirements, GDPR articles, and HIPAA controls. Essential for compliance gap analysis and detection engineering.

ParametersJSON Schema
NameRequiredDescriptionDefault
frameworkNoFilter by framework: 'mitre', 'nist_800_53', 'pci_dss', 'gdpr', 'hipaa'. Leave empty for all frameworks.
min_levelNoMinimum rule level to include (default: 5)
limitNoMaximum rules to analyze (1-1000)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full responsibility for behavioral disclosure. It states the tool 'generate[s] a coverage map' and mentions analysis, but does not describe side effects (likely read-only), computational cost, or limits in detail. The limit parameter (1-1000) is implied but not emphasized as a behavioral constraint. The output schema exists and covers return values, partially mitigating the lack of description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the primary action and resource, then adds context. It is concise and efficient, with no redundant information. A slightly more structured format (e.g., separate sentences for purpose and usage) could improve readability, but the current form is effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has moderate complexity (3 parameters, output schema present). The description covers the main use case and the output is detailed by the output schema. It does not explain the return format or provide examples, but given the schema richness, this is acceptable. Sibling tools exist but are not referenced, which would have improved completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%: each parameter has a description (framework with list of frameworks, min_level default 5, limit default 500). The description adds context by listing the frameworks and tying to compliance analysis, but does not provide significant additional meaning beyond the schema. The baseline of 3 is appropriate given high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verbs ('generate a coverage map') and clearly identifies the resource ('Wazuh rules' mapping to multiple frameworks). It names the specific compliance frameworks (MITRE ATT&CK, NIST 800-53, etc.) and explicitly states the purpose ('compliance gap analysis and detection engineering'). This clearly distinguishes it from sibling tools like 'wazuh_compliance_report' or 'wazuh_search_mitre' which have different scopes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions the tool is 'essential for compliance gap analysis and detection engineering', providing a clear use case. However, it does not explicitly state when to use this tool versus alternatives (e.g., 'wazuh_compliance_report' for general reporting or 'wazuh_search_mitre' for MITRE-specific queries). No exclusions or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wazuh_rules_infoA

Search and list Wazuh detection rules. Filter by rule level, compliance framework (PCI DSS, GDPR, HIPAA, NIST 800-53), or MITRE ATT&CK technique. Essential for understanding your detection coverage and tuning rules.

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoSearch rules by name, description, or ID
levelNoFilter by rule level (0-15). Higher = more severe.
pciNoFilter by PCI DSS requirement (e.g., '10.2.5')
gdprNoFilter by GDPR article (e.g., 'Art._32')
hipaaNoFilter by HIPAA control (e.g., '164.312.b')
nist_800_53NoFilter by NIST 800-53 control (e.g., 'AU-12')
mitre_techniqueNoFilter by MITRE ATT&CK technique ID (e.g., 'T1059')
limitNoMaximum rules to return (1-500)
offsetNoPagination offset

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It describes the tool as a search/list operation with no side effects, but does not explicitly state read-only behavior, authentication requirements, or rate limits. The description is clear enough for a read-only query tool, but lacks explicit behavioral disclosures.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is conciseβ€”three sentences that front-load the primary purpose, followed by filtering capabilities and utility. No extraneous words, every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema (context states 'Has output schema: true'), the tool description does not need to explain return values. It covers purpose, key parameters, and use case adequately for a search/list tool with 9 parameters. Slight deduction for missing usage guidelines.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for all 9 parameters. The description mentions filter options but adds no semantic value beyond the schema's parameter descriptions (e.g., level range, compliance IDs). Baseline 3 is appropriate given high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool's purpose: 'Search and list Wazuh detection rules.' It includes specific filtering capabilities (rule level, compliance frameworks, MITRE ATT&CK) and frames it as essential for understanding detection coverage and tuning rules, clearly differentiating from sibling tools like wazuh_rules_coverage_map.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives (e.g., wazuh_rules_coverage_map), nor does it specify prerequisites or when not to use it. It only lists features without contextual usage advice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wazuh_run_active_responseA

⚠️ DESTRUCTIVE: Trigger an active-response command on a Wazuh agent. Can block IPs via firewall, quarantine hosts, run custom scripts, etc.

πŸ”’ SAFETY: By default, this tool DOES NOT execute anything. It returns a confirmation prompt showing exactly what will happen. You MUST call it again with confirm=True and the correct confirmation_token to execute.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesTarget agent ID (e.g., '001')
commandYesActive response command. Common values: - 'firewall-drop': Block an IP via iptables/ firewall - 'host-deny': Add IP to /etc/hosts.deny - 'restart-wazuh': Restart the Wazuh agent - Custom scripts defined in ossec.conf
argumentsNoCommand arguments as a JSON array string, e.g., '["srcip", "10.0.0.50", "-"]' for firewall-drop
confirmNoπŸ”’ SAFETY: Set to True ONLY after reviewing the confirmation prompt. You must also provide the confirmation_token.
confirmation_tokenNoπŸ”’ SAFETY: The token from the confirmation prompt. Required when confirm=True.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses the destructive nature, the safety layer (confirmation prompt, token requirement), and that it does not execute by default. This is highly transparent and covers all critical behavioral aspects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two clear paragraphs: first warns of destructiveness and lists examples, second explains safety process. Every sentence adds value, no redundancy. Front-loaded with critical warning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive tool with a complex safety flow, the description covers default behavior, confirmation process, token requirements, and common commands. Output schema exists, so no need to describe return values. Complete for the context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds context about the safety mechanism but does not elaborate on parameter details beyond what the schema already provides. The command and arguments examples are helpful but not extensive.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with 'Trigger an active-response command on a Wazuh agent' and lists examples like blocking IPs, quarantine, custom scripts. It clearly identifies the verb (trigger/run) and resource (active response on agent), distinguishing it from siblings like wazuh_agent_command which likely sends generic commands.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states the default no-execution behavior and the two-step confirmation process with token. It provides common command values and argument format. While it doesn't explicitly compare with siblings, the safety mechanism strongly guides usage, earning a 4.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wazuh_sca_checksA

Get detailed SCA check results β€” see exactly which compliance checks passed or failed on an agent. Filter by policy, search, or result status.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesAgent ID to query (e.g., '001')
policy_idNoFilter by SCA policy ID (from wazuh_sca_status output)
resultNoFilter by result: 'passed' or 'failed'
searchNoSearch within check titles, rationales, or descriptions
limitNoMaximum checks to return (1-500)
offsetNoPagination offset

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It only states that the tool returns check results with filtering, but does not mention whether it is read-only, authentication requirements, rate limits, or data freshness. The read-only nature is implied but not explicitly confirmed, which is a gap for a query tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that is front-loaded with the primary action. It contains no redundant words or information, earning its place by succinctly conveying functionality and key filtering options.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that the tool has an output schema (not shown but indicated), return values are already documented. With 6 parameters all described in the schema, and the tool description covering the main filtering options, the description is complete enough for a query tool. A score of 5 would require explicit usage timing or integration hints, which are absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The tool description adds a summary of filtering capabilities ('Filter by policy, search, or result status'), which aligns with the schema descriptions but does not add new meaning beyond them. The schema already adequately documents all parameters, including default values and types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves SCA check results for an agent, with filtering by policy, search, or result status. The verb 'Get' and resource 'SCA check results' are specific, and it distinguishes from sibling tools like 'wazuh_sca_status' which deals with policy-level status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for detailed compliance checks, but it does not explicitly state when to use this tool versus alternatives like 'wazuh_sca_status' or 'wazuh_compliance_report'. No 'when not to use' guidance is provided, leaving the agent to infer context from sibling names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wazuh_sca_statusA

Get the Security Configuration Assessment (SCA) compliance status for an agent. Shows which policies are applied, pass/fail counts, and overall compliance scores.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idNoAgent ID (default: '000' for the manager itself)000

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It describes the returned data (policies, counts, scores) but does not explicitly state whether the operation is read-only, non-destructive, or has any side effects. The read-only nature is implied but not confirmed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with the verb 'Get' and resource 'SCA compliance status'. No redundant words; every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has a single parameter and output schema, the description adequately covers the tool's purpose and what it returns. No gaps given the complexity level.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single parameter with a default and description. The description adds context about using the default for the manager itself, which complements but does not significantly extend the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves SCA compliance status for an agent, listing specific outputs (policies, pass/fail counts, overall scores). It distinguishes itself from sibling tools like wazuh_sca_checks by focusing on status rather than individual checks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for checking compliance status on a specific agent and mentions the default agent_id. However, it does not explicitly guide when to use this tool versus alternatives like wazuh_sca_checks (detailed checks) or provide usage exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wazuh_search_eventsA

Search raw security events across all Wazuh agents. Use this for deep threat hunting β€” search for IOCs like IPs, file hashes, commands, or process names in the raw event stream.

ParametersJSON Schema
NameRequiredDescriptionDefault
searchYesSearch term β€” IP address, file hash, command, process name, etc.
selectNoComma-separated fields to return (e.g., 'timestamp,agent.name,data.srcip')
sortNoSort field, prefix with '-' for descending
limitNoMaximum events to return (1-500)
offsetNoPagination offset

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It describes the tool as searching raw events and mentions IOCs, implying a read-only operation. However, it does not explicitly confirm it is non-destructive, nor does it disclose any pagination, rate limits, or scope limitations beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no wasted words. The first sentence specifies the action and scope; the second provides usage examples and purpose. Front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (5 parameters, output schema exists), the description adequately covers the core purpose and usage. The schema details parameters and the output schema explains return structure, so the description does not need to reiterate those.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds minimal value by giving examples of search terms (IPs, file hashes, commands) but these are already implied by the parameter description 'Search term β€” IP address, file hash, command, process name, etc.' in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Search raw security events across all Wazuh agents' β€” a specific verb and resource. It distinguishes from sibling tools like wazuh_search_mitre (MITRE techniques) and wazuh_list_alerts (alerts) by specifying 'raw security events' and mentioning IOCs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description specifies 'Use this for deep threat hunting' and provides IOC examples, giving clear context. However, it lacks explicit guidance on when not to use this tool or alternatives, such as wazuh_list_alerts for filtered alerts or wazuh_search_mitre for MITRE technique search.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wazuh_search_mitreA

Search the MITRE ATT&CK framework as integrated with Wazuh. Look up techniques, find which Wazuh rules map to a technique, or discover what techniques are covered by your detection ruleset.

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoSearch MITRE techniques by name, ID, or keyword (e.g., 'persistence', 'T1547')
technique_idNoExact MITRE technique ID (e.g., 'T1547.001')
limitNoMaximum results (1-200)
offsetNoPagination offset

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must convey behavioral traits. It describes search/lookup functionality but does not explicitly state that the tool is read-only (no side effects) or outline pagination behavior (despite limit/offset parameters). The output schema may cover return format, so the description is adequate but lacks explicit safety or pagination context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core function, followed by practical use cases. Every sentence provides value with no redundancy or filler. The structure is efficient and directly addresses what the tool does.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 optional parameters and an existing output schema, the description covers the main functionality (search, lookup, mapping) effectively. However, it omits details on how search and technique_id parameters work together, and does not mention pagination behavior (limit/offset) that users might need to know. Still, it is largely complete for a search tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description does not add meaning beyond the schema: it repeats the search keyword description and does not elaborate on how parameters interact (e.g., combining search and technique_id) or provide examples. No additional semantic value is offered.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states it searches the MITRE ATT&CK framework integrated with Wazuh, and lists specific use cases: looking up techniques, finding Wazuh rule mappings, and discovering technique coverage. This clearly distinguishes it from sibling tools like wazuh_rules_info or wazuh_rules_coverage_map, which focus on rule details rather than MITRE framework search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for MITRE-related inquiries but provides no explicit guidance on when to use it versus alternatives like wazuh_rules_info for rule details, or when not to use it. No alternatives or exclusions are mentioned, leaving usage context implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wazuh_vulnerability_heatmapA

Generate a vulnerability heatmap showing CVE severity distribution across agents. Identifies which systems have the most critical unpatched vulnerabilities. Essential for patch prioritization.

ParametersJSON Schema
NameRequiredDescriptionDefault
severityNoFilter by minimum severity: 'Critical', 'High', 'Medium', 'Low'

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It implies a read-only operation generating a heatmap, but does not disclose behavioral details such as data aggregation scope, time range considerations, or output format. Adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no wasted words. It efficiently conveys purpose, output, and use case.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given low complexity (1 optional parameter, has output schema), the description adequately covers purpose and use. It could mention that the output is a heatmap visualization, but overall it is sufficient for an agent to understand when and how to use it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the input schema already describes the 'severity' parameter and its possible values. The description does not add additional meaning beyond what the schema provides, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verbs ('Generate', 'Identifies') and resources ('vulnerability heatmap', 'CVE severity distribution across agents'). It clearly distinguishes from siblings like wazuh_query_vulnerabilities by focusing on visualization and patch prioritization.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states it is 'Essential for patch prioritization' and identifies systems with critical vulnerabilities, providing clear usage context. However, it does not explicitly mention when not to use or direct to alternatives among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 28 tool updatesv0.1.0
    • First observedwazuh_agent_command
    • First observedwazuh_agent_health
    • First observedwazuh_alert_summary
    • First observedwazuh_cluster_node_stats
    • First observedwazuh_cluster_status
    • First observedwazuh_compliance_report
    • First observedwazuh_get_agent
    • First observedwazuh_get_alert
    • First observedwazuh_get_cdb_list
    • First observedwazuh_get_group
    • First observedwazuh_group_agents
    • First observedwazuh_incident_timeline
    • First observedwazuh_list_agents
    • First observedwazuh_list_alerts
    • First observedwazuh_list_cdb_lists
    • First observedwazuh_list_groups
    • First observedwazuh_manager_logs
    • First observedwazuh_manager_stats
    • First observedwazuh_query_fim
    • First observedwazuh_query_vulnerabilities
    • First observedwazuh_rules_coverage_map
    • First observedwazuh_rules_info
    • First observedwazuh_run_active_response
    • First observedwazuh_sca_checks
    • First observedwazuh_sca_status
    • First observedwazuh_search_events
    • First observedwazuh_search_mitre
    • First observedwazuh_vulnerability_heatmap

TDQS

A3.8/5.0

Scored across 28 tools

Disambiguation5/5

Every tool has a clearly distinct purpose, from agent management to alert querying to compliance checks. Overlapping functions like listing vs. searching alerts are differentiated by scope and detail.

Naming Consistency5/5

All tools follow a consistent 'wazuh_verb_noun' pattern (e.g., wazuh_list_agents, wazuh_get_alert), making it predictable and easy for an agent to infer action and resource.

Tool Count4/5

With 28 tools, the set is comprehensive but still well-scoped for the Wazuh security management domain. While slightly above the typical 3-15 range, each tool addresses a specific function without redundancy.

Completeness5/5

The tool surface covers agent lifecycle, health, alerts, rules, compliance, vulnerability, FIM, cluster, logs, and active response. No obvious dead ends; destructive tools are paired with safety confirmation flows.

Maintenance

ActivityMaintained
ResponsivenessWithin a week

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    A
    maintenance
    An MCP server for the Wazuh SIEM/XDR platform that enables users to query agents, security alerts, detection rules, and decoders through Claude or other MCP clients. It provides specialized tools and prompts for investigating security alerts, performing agent health checks, and generating environmental security overviews.
    28
    10 npm
    4
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    An MCP server that enables conversational interaction with Wazuh SIEM, allowing users to investigate alerts, hunt threats, tune false positives, edit rules, and run security actions via natural language.
    MIT