wazuh-mcp
Сервер Model Context Protocol (MCP) для платформы Wazuh SIEM/XDR. Запрашивайте данные об агентах, оповещениях безопасности, правилах обнаружения и декодерах напрямую из Claude или любого MCP-совместимого клиента.
Функции
25 инструментов MCP — Агенты, оповещения, правила, декодеры, SCA, syscollector, FIM, rootcheck, группы и менеджер
3 ресурса MCP — Готовые представления для агентов, последних оповещений и сводок правил
3 подсказки MCP — Расследование оповещений, проверка работоспособности агентов и обзоры безопасности
JWT-аутентификация — Автоматическое управление токенами с обновлением по истечении срока действия
Полное соответствие требованиям — PCI-DSS, GDPR, HIPAA, NIST 800-53, MITRE ATT&CK
Пагинация — Все конечные точки списка поддерживают пагинацию через limit/offset
Типобезопасность — Полный TypeScript со строгим режимом и валидацией схем Zod
Предварительные требования
Node.js 20+
Запущенный менеджер Wazuh с доступом к API (порт по умолчанию 55000)
Учетные данные API Wazuh (имя пользователя/пароль)
(Опционально) Доступ к Wazuh Indexer (OpenSearch) для запросов оповещений
Установка
git clone https://github.com/solomonneas/wazuh-mcp.git
cd wazuh-mcp
npm install
npm run buildКонфигурация
Установите следующие переменные окружения:
Переменная | Обязательно | По умолчанию | Описание |
| WAZUH_URL | Да | - | URL API Wazuh (например, https://10.0.0.2:55000) |
| WAZUH_USERNAME | Да | - | Имя пользователя API |
| WAZUH_PASSWORD | Да | - | Пароль API |
| WAZUH_VERIFY_SSL | Нет | false | Установите true для проверки SSL-сертификатов |
Также поддерживаются альтернативные имена переменных WAZUH_BASE_URL и WAZUH_USER.
Wazuh Indexer (OpenSearch) — требуется для оповещений
Wazuh 4.x хранит оповещения в Wazuh Indexer (OpenSearch), а не в REST API. Чтобы включить инструменты для работы с оповещениями (get_alerts, get_alert, search_alerts) и ресурс wazuh://alerts/recent, настройте подключение к индексатору:
Переменная | Обязательно | По умолчанию | Описание |
| WAZUH_INDEXER_URL | Нет | - | URL Wazuh Indexer (например, https://10.0.0.2:9200) |
| WAZUH_INDEXER_USERNAME | Нет | admin | Имя пользователя индексатора |
| WAZUH_INDEXER_PASSWORD | Нет | - | Пароль индексатора |
| WAZUH_INDEXER_VERIFY_SSL | Нет | false | Установите true для проверки SSL-сертификатов |
Если WAZUH_INDEXER_URL не задан, инструменты для работы с оповещениями вернут полезное сообщение о конфигурации. Все остальные инструменты (агенты, правила, декодеры, версия) работают без индексатора.
Использование
Claude Desktop
Добавьте в ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) или %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"wazuh": {
"command": "wazuh-mcp",
"env": {
"WAZUH_URL": "https://your-wazuh-manager:55000",
"WAZUH_USERNAME": "wazuh-wui",
"WAZUH_PASSWORD": "your-password",
"WAZUH_INDEXER_URL": "https://your-wazuh-indexer:9200",
"WAZUH_INDEXER_USERNAME": "admin",
"WAZUH_INDEXER_PASSWORD": "your-indexer-password"
}
}
}
}Claude Code
claude mcp add wazuh \
--env WAZUH_URL=https://your-wazuh-manager:55000 \
--env WAZUH_USERNAME=wazuh-wui \
--env WAZUH_PASSWORD=your-password \
--env WAZUH_INDEXER_URL=https://your-wazuh-indexer:9200 \
--env WAZUH_INDEXER_USERNAME=admin \
--env WAZUH_INDEXER_PASSWORD=your-indexer-password \
-- wazuh-mcpДобавьте --scope user, чтобы сделать его доступным из любого каталога, а не только из текущего проекта.
OpenClaw
Если вы запускаете из исходного кода, а не из установленного через npm бинарного файла, укажите command/args на собранный dist/index.js:
openclaw mcp set wazuh '{
"command": "node",
"args": ["/absolute/path/to/wazuh-mcp/dist/index.js"],
"env": {
"WAZUH_URL": "https://your-wazuh-manager:55000",
"WAZUH_USERNAME": "wazuh-wui",
"WAZUH_PASSWORD": "your-password",
"WAZUH_INDEXER_URL": "https://your-wazuh-indexer:9200",
"WAZUH_INDEXER_USERNAME": "admin",
"WAZUH_INDEXER_PASSWORD": "your-indexer-password"
}
}'Или при глобальной установке через npm:
openclaw mcp set wazuh '{
"command": "wazuh-mcp",
"env": {
"WAZUH_URL": "https://your-wazuh-manager:55000",
"WAZUH_USERNAME": "wazuh-wui",
"WAZUH_PASSWORD": "your-password",
"WAZUH_INDEXER_URL": "https://your-wazuh-indexer:9200",
"WAZUH_INDEXER_USERNAME": "admin",
"WAZUH_INDEXER_PASSWORD": "your-indexer-password"
}
}'Затем перезапустите шлюз OpenClaw, чтобы новый сервер был подхвачен:
systemctl --user restart openclaw-gateway
openclaw mcp list # confirm "wazuh" is registeredHermes Agent
Hermes Agent считывает конфигурацию MCP из ~/.hermes/config.yaml в ключе mcp_servers. Добавьте запись:
mcp_servers:
wazuh:
command: "wazuh-mcp"
env:
WAZUH_URL: "https://your-wazuh-manager:55000"
WAZUH_USERNAME: "wazuh-wui"
WAZUH_PASSWORD: "your-password"
WAZUH_INDEXER_URL: "https://your-wazuh-indexer:9200"
WAZUH_INDEXER_USERNAME: "admin"
WAZUH_INDEXER_PASSWORD: "your-indexer-password"Или при запуске из исходного кода вместо глобальной установки npm:
mcp_servers:
wazuh:
command: "node"
args: ["/absolute/path/to/wazuh-mcp/dist/index.js"]
env:
WAZUH_URL: "https://your-wazuh-manager:55000"
WAZUH_USERNAME: "wazuh-wui"
WAZUH_PASSWORD: "your-password"
WAZUH_INDEXER_URL: "https://your-wazuh-indexer:9200"
WAZUH_INDEXER_USERNAME: "admin"
WAZUH_INDEXER_PASSWORD: "your-indexer-password"Затем перезагрузите MCP внутри сессии Hermes:
/reload-mcpCodex CLI
Codex CLI регистрирует MCP-серверы через codex mcp add:
codex mcp add wazuh \
--env WAZUH_URL=https://your-wazuh-manager:55000 \
--env WAZUH_USERNAME=wazuh-wui \
--env WAZUH_PASSWORD=your-password \
--env WAZUH_INDEXER_URL=https://your-wazuh-indexer:9200 \
--env WAZUH_INDEXER_USERNAME=admin \
--env WAZUH_INDEXER_PASSWORD=your-indexer-password \
-- wazuh-mcpИли при запуске из исходного кода:
codex mcp add wazuh \
--env WAZUH_URL=https://your-wazuh-manager:55000 \
--env WAZUH_USERNAME=wazuh-wui \
--env WAZUH_PASSWORD=your-password \
-- node /absolute/path/to/wazuh-mcp/dist/index.jsCodex записывает запись в ~/.codex/config.toml в разделе [mcp_servers.wazuh]. Проверьте с помощью:
codex mcp listАвтономный режим
export WAZUH_URL=https://your-wazuh-manager:55000
export WAZUH_USERNAME=wazuh-wui
export WAZUH_PASSWORD=your-password
npm startРазработка
npm run dev # Watch mode with tsx
npm run lint # Type checking
npm test # Run testsИнструменты MCP
Инструменты агентов
Инструмент | Описание |
| Список всех агентов с опциональной фильтрацией по статусу (active, disconnected, never_connected, pending) |
| Получение подробной информации об агенте по ID |
| Получение статистики CPU, памяти и диска для агента |
Инструменты оповещений
Инструмент | Описание |
| Получение последних оповещений с фильтрацией по уровню, агенту, правилу и текстовому поиску |
| Получение одного оповещения по ID |
| Полнотекстовый поиск по всем оповещениям |
Инструменты правил
Инструмент | Описание |
| Список правил обнаружения с фильтрацией по уровню и группе |
| Получение полных сведений о правиле, включая соответствие требованиям |
| Поиск правил по описанию |
Инструменты SCA (Оценка конфигурации безопасности)
Инструмент | Описание |
| Список политик SCA и оценок для агента (бенчмарки CIS и т.д.) |
| Получение результатов отдельных проверок с шагами по исправлению и соответствием требованиям |
Инструменты Syscollector (Инвентаризация системы)
Инструмент | Описание |
| Получение информации об ОС (имя, версия, архитектура, имя хоста) |
| Список установленных пакетов ПО с версиями |
| Список запущенных процессов с PID и командными строками |
| Список открытых сетевых портов с соответствующими процессами |
| Список сетевых интерфейсов и IP-адресов |
| Список установленных исправлений/патчей Windows |
Инструменты FIM и Rootcheck
Инструмент | Описание |
| Получение результатов мониторинга целостности файлов (файлы, ключи реестра, хеши) |
| Получение результатов сканирования на наличие руткитов |
Инструменты менеджера
Инструмент | Описание |
| Получение логов менеджера Wazuh с фильтрацией по уровню и модулю |
| Получение активной конфигурации менеджера по разделам |
Инструменты групп
Инструмент | Описание |
| Список всех групп агентов |
| Список агентов в конкретной группе |
Другие инструменты
Инструмент | Описание |
| Список декодеров логов с опциональной фильтрацией по имени |
| Получение версии менеджера Wazuh и информации об API |
Ресурсы MCP
URI ресурса | Описание |
| Все зарегистрированные агенты и их статус |
| 25 самых последних оповещений безопасности |
| Правила обнаружения, отсортированные по серьезности |
Подсказки MCP
Подсказка | Описание |
| Пошаговое расследование оповещения с сопоставлением MITRE и исправлением |
| Комплексная оценка работоспособности агента (статус, ресурсы, оповещения) |
| Полная сводка безопасности среды с охватом соответствия требованиям |
Примеры
Список активных агентов
Use list_agents with status "active" to see all connected agents.Расследование попытки брутфорса
Search alerts for "brute force" and investigate the top result,
including the MITRE ATT&CK technique and remediation steps.Проверка работоспособности агента
Run an agent health check on agent 001 - check its connection status,
resource usage, and any recent critical alerts.Поиск правил с высоким уровнем серьезности
List all rules with level 12 or higher to see critical detection rules
and their compliance framework mappings.Тестирование
npm test # Run all tests
npm run test:watch # Watch modeТесты используют имитированные ответы API Wazuh — работающий экземпляр Wazuh не требуется.
Структура проекта
wazuh-mcp/
├── src/
│ ├── index.ts # MCP server entry point
│ ├── config.ts # Environment configuration
│ ├── client.ts # Wazuh REST API client (JWT auth)
│ ├── indexer-client.ts # Wazuh Indexer (OpenSearch) client
│ ├── types.ts # TypeScript type definitions
│ ├── resources.ts # MCP resource handlers
│ ├── prompts.ts # MCP prompt templates
│ └── tools/
│ ├── agents.ts # Agent management tools
│ ├── alerts.ts # Alert query tools
│ ├── rules.ts # Rule query tools
│ ├── decoders.ts # Decoder listing tool
│ ├── version.ts # Version info tool
│ ├── sca.ts # Security Configuration Assessment
│ ├── syscollector.ts # System inventory (OS, packages, ports, etc.)
│ ├── syscheck.ts # File Integrity Monitoring
│ ├── rootcheck.ts # Rootkit detection
│ ├── manager.ts # Manager logs and configuration
│ └── groups.ts # Agent group management
├── tests/
│ ├── client.test.ts # API client unit tests
│ └── tools.test.ts # Tool handler unit tests
├── package.json
├── tsconfig.json
├── tsup.config.ts
└── vitest.config.tsЛицензия
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/solomonneas/wazuh-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server