Ai4Ia Mcp Server — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Ai4Ia Mcp Server (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A Model Context Protocol Server for Role-Based Learning in AI-Assisted Cybersecurity Incident Analysis with Wazuh SIEM and OpenSearch
AI4IA-MCP is an intelligent Model Context Protocol (MCP) server that bridges AI assistants with Wazuh SIEM infrastructure. It provides natural language access to security alerts, vulnerability analysis, CVE databases, and network documentation through a comprehensive set of tools designed for security operations teams.
This server enables LLM assistants like Claude to perform complex security operations tasks including alert correlation, statistical analysis, vulnerability assessment, and incident investigation through conversational interfaces.
┌─────────────────┐
│ AI Assistant │
│ (Claude) │
└────────┬────────┘
│ MCP Protocol
│
┌────────▼────────┐
│ Wazuh AI4IA │
│ MCP Server │
│ (FastMCP) │
└────────┬────────┘
│
├──────────────┐
│ │
┌────────▼────────┐ ┌──▼─────────┐
│ OpenSearch │ │ Local │
│ Cluster │ │ Files │
│ (Wazuh Data) │ │ (CVE/PDF) │
└─────────────────┘ └────────────┘pip install -r requirements.txtCreate a .env file in the project root:
OPENSEARCH_HOST=localhost:9200
OPENSEARCH_USER=admin
OPENSEARCH_PASSWORD=your_secure_password_herePlace the following files in the project directory:
cve_data.csv - CVE vulnerability databaseGOAD.pdf - Network documentation (optional)NetDiagram.png - Network diagram (optional)The server connects to OpenSearch using the following indices:
wazuh-alerts-* - Security alertswazuh-monitoring-* - Agent monitoring datawazuh-statistics-* - System performance metricswazuh-states-vulnerabilities-* - Vulnerability statesThe cve_data.csv should contain the following columns:
vulnerability.id - CVE identifier (e.g., CVE-2024-12345)vulnerability.severity - Severity level (low, medium, high, critical)vulnerability.description - Detailed vulnerability descriptionget_alertsRetrieve Wazuh security alerts with flexible filtering.
# Example usage
get_alerts(
time_range="2h", # Last 2 hours
rule_level=10, # Critical alerts only
agent_name="server-01",
size=100
)Parameters:
time_range: Time window (e.g., "2h", "90m", "30m") - max 6 hoursrule_level: Filter by severity level (1-15)agent_name: Filter by specific agentsize: Number of results to return (default: 100)correlate_alertsFind related alerts that may indicate a coordinated attack.
# Example usage
correlate_alerts(
alert_id="ABC123...",
time_window="1h",
max_alerts=50
)Features:
get_alert_statisticsGenerate comprehensive statistical reports on alert patterns.
# Example usage
get_alert_statistics(
time_range="6h",
agent_name="web-server",
group="web"
)Provides:
analyze_vulnerabilityDeep analysis of detected vulnerabilities with CVE details.
# Example usage
analyze_vulnerability(
vulnerability_id="CVE-2024-21417",
start_time="now-12h",
limit=50
)Includes:
filter_network_cvesSearch the CVE database with multiple filter criteria.
# Example usage
filter_network_cves(
severity="critical",
year="2024",
type="SQL Injection",
limit=100
)get_agent_statusMonitor the health and status of all Wazuh agents.
# Example usage
get_agent_status()Returns:
get_statisticsRetrieve Wazuh system performance metrics.
# Example usage
get_statistics(timeframe="3h")Metrics:
read_network_documentationExtract text from PDF network documentation.
# Example usage
read_network_documentation(pdf_filename="GOAD.pdf")process_network_diagramAnalyze network topology diagrams.
# Example usage
process_network_diagram(
png_filename="NetDiagram.png",
analysis_type="detailed"
)Different tools have specific time range limitations for optimal performance:
These limits prevent rate limiting and ensure responsive query performance.
User: "Show me all critical alerts from the last 2 hours"
AI: [Uses get_alerts with rule_level=12+, time_range="2h"]
User: "What vulnerabilities were detected on affected systems?"
AI: [Uses analyze_vulnerability with affected agents]User: "Find all critical CVEs from 2024"
AI: [Uses filter_network_cves with severity="critical", year="2024"]
User: "Which systems are affected by CVE-2024-12345?"
AI: [Uses analyze_vulnerability with vulnerability_id]
User: "How is the Wazuh system performing?"
AI: [Uses get_statistics for system metrics]
User: "Show alert trends over the last 6 hours"
AI: [Uses get_alert_statistics for trend analysis]
"No alerts found": Check time range and filter criteria "CVE database not found": Ensure cve_data.csv is in the project directory "Time range exceeds limit": Reduce time range to specified maximum "Connection refused": Verify OpenSearch is running and accessible
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json~/.config/Claude/claude_desktop_config.json{
"mcpServers": {
"AI4IA": {
"command": "python",
"args": ["/absolute/path/to/AI4IA-MCP/mcp_server.py"]
}
}
}This project is licensed under the MIT License - see the LICENSE file for details.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.