solomonneas/wazuh-mcp
GitHub: solomonneas/wazuh-mcp
为 Wazuh SIEM/XDR 平台提供 MCP 协议集成,让 AI 助手能够以自然语言方式查询和调查安全事件。
Stars: 0 | Forks: 0
# wazuh-mcp
[](https://www.typescriptlang.org/)
[](https://nodejs.org/)
[](https://modelcontextprotocol.io/)
[](https://opensource.org/licenses/MIT)
一个用于 [Wazuh](https://wazuh.com/) SIEM/XDR 平台的 [Model Context Protocol](https://modelcontextprotocol.io/) (MCP) 服务器。可以直接从 Claude 或任何兼容 MCP 的客户端查询 Agent、安全警报、检测规则和解码器。
## 功能特性
- **25 个 MCP 工具** - 涵盖 Agents、警报、规则、解码器、SCA、Syscollector、FIM、Rootcheck、Groups 和 Manager
- **3 个 MCP 资源** - 预构建的 Agents、近期警报和规则摘要视图
- **3 个 MCP 提示词** - 警报调查、Agent 健康检查和安全概览
- **JWT 认证** - 自动 Token 管理,过期时自动刷新
- **完整合规映射** - PCI-DSS, GDPR, HIPAA, NIST 800-53, MITRE ATT&CK
- **分页支持** - 所有列表端点支持 limit/offset 分页
- **类型安全** - 完整 TypeScript 严格模式及 Zod Schema 验证
## 前置条件
- Node.js 20+
- 运行中且开启 API 访问的 Wazuh Manager (默认端口 55000)
- Wazuh API 凭证 (用户名/密码)
- (可选) Wazuh Indexer (OpenSearch) 访问权限,用于警报查询
## 安装
```
git clone https://github.com/solomonneas/wazuh-mcp.git
cd wazuh-mcp
npm install
npm run build
```
## 配置
设置以下环境变量:
| 变量 | 必填 | 默认值 | 描述 |
|----------|----------|---------|-------------|
| `WAZUH_URL` | 是 | - | Wazuh API URL (例如, `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` 资源,请配置 Indexer 连接:
| 变量 | 必填 | 默认值 | 描述 |
|----------|----------|---------|-------------|
| `WAZUH_INDEXER_URL` | 否 | - | Wazuh Indexer URL (例如, `https://10.0.0.2:9200`) |
| `WAZUH_INDEXER_USERNAME` | 否 | `admin` | Indexer 用户名 |
| `WAZUH_INDEXER_PASSWORD` | 否 | - | Indexer 密码 |
| `WAZUH_INDEXER_VERIFY_SSL` | 否 | `false` | 设置为 `true` 以验证 SSL 证书 |
如果未设置 `WAZUH_INDEXER_URL`,警报工具将返回一条有用的配置提示信息。所有其他工具(Agents、规则、解码器、版本)无需 Indexer 即可正常工作。
## 用法
### Claude Desktop
添加到您的 Claude Desktop 配置 (`claude_desktop_config.json`) 中:
```
{
"mcpServers": {
"wazuh": {
"command": "node",
"args": ["/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"
}
}
}
}
```
### OpenClaw
添加到您的 `openclaw.json` 中:
```
{
"mcp": {
"servers": {
"wazuh": {
"type": "stdio",
"command": "node",
"args": ["/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"
}
}
}
}
}
```
### 独立运行
```
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 工具
### Agent 工具
| 工具 | 描述 |
|------|-------------|
| `list_agents` | 列出所有 Agents,支持可选的状态过滤 (active, disconnected, never_connected, pending) |
| `get_agent` | 根据 ID 获取特定 Agent 的详细信息 |
| `get_agent_stats` | 获取 Agent 的 CPU、内存和磁盘统计信息 |
### 警报工具
| 工具 | 描述 |
|------|-------------|
| `get_alerts` | 检索近期警报,支持按级别、Agent、规则和文本搜索进行过滤 |
| `get_alert` | 根据 ID 检索单个警报 |
| `search_alerts` | 对所有警报进行全文搜索 |
### 规则工具
| 工具 | 描述 |
|------|-------------|
| `list_rules` | 列出检测规则,支持级别和分组过滤 |
| `get_rule` | 获取完整的规则详情,包含合规映射 |
| `search_rules` | 根据描述文本搜索规则 |
### SCA 工具 (安全配置评估)
| 工具 | 描述 |
|------|-------------|
| `get_sca_policies` | 列出 Agent 的 SCA 策略和分数(CIS 基准等) |
| `get_sca_checks` | 获取各项检查结果,包含修复步骤和合规映射 |
### Syscollector 工具 (系统清单)
| 工具 | 描述 |
|------|-------------|
| `get_agent_os` | 获取操作系统信息(名称、版本、架构、主机名) |
| `get_agent_packages` | 列出已安装的软件包及版本 |
| `get_agent_processes` | 列出正在运行的进程及其 PID 和命令行 |
| `get_agent_ports` | 列出开放的网络端口及其关联进程 |
| `get_agent_network` | 列出网络接口和 IP 地址 |
| `get_agent_hotfixes` | 列出已安装的 Windows 补丁/修复程序 |
### FIM & Rootcheck 工具
| 工具 | 描述 |
|------|-------------|
| `get_fim_files` | 获取文件完整性监控结果(文件、注册表键、哈希值) |
| `get_rootcheck` | 获取 Rootkit 检测扫描结果 |
### Manager 工具
| 工具 | 描述 |
|------|-------------|
| `get_manager_logs` | 获取按级别和模块过滤的 Wazuh Manager 日志 |
| `get_manager_config` | 按部分获取生效的 Manager 配置 |
### Group 工具
| 工具 | 描述 |
|------|-------------|
| `list_groups` | 列出所有 Agent Groups |
| `get_group_agents` | 列出特定 Group 中的 Agents |
### 其他工具
| 工具 | 描述 |
|------|-------------|
| `list_decoders` | 列出日志解码器,支持按名称过滤 |
| `get_wazuh_version` | 获取 Wazuh Manager 版本和 API 信息 |
## MCP 资源
| 资源 URI | 描述 |
|-------------|-------------|
| `wazuh://agents` | 所有已注册的 Agents 及其状态 |
| `wazuh://alerts/recent` | 最近 25 条安全警报 |
| `wazuh://rules/summary` | 按严重程度排序的检测规则 |
## MCP 提示词
| 提示词 | 描述 |
|--------|-------------|
| `investigate-alert` | 逐步警报调查,包含 MITRE 映射和修复建议 |
| `agent-health-check` | 全面的 Agent 健康评估(状态、资源、警报) |
| `security-overview` | 完整的环境安全摘要及合规覆盖情况 |
## 示例
### 列出活跃的 Agents
```
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.
```
### 检查 Agent 健康状况
```
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
```
测试使用模拟的 Wazuh API 响应 - 无需运行中的 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
标签:AI安全, AMSI绕过, API集成, Chat Copilot, Claude Desktop, GDPR, GNU通用公共许可证, HIPAA, JWT认证, LLM集成, MCP Server, MITM代理, Model Context Protocol, NIST, Node.js, PB级数据处理, PCI-DSS, TypeScript, Wazuh, Zod, 人工智能安全, 可观测性, 合规性, 威胁检测, 安全插件, 安全运维, 端点安全, 网络安全, 自动化攻击, 补丁管理, 隐私保护