zeek-mcp
ActiveMCP server for Zeek + Suricata network logs.
WHAT IT DOES
zeek-mcp is a Model Context Protocol server for Zeek and Suricata. It parses your network-security-monitoring logs and exposes them as tools an AI client can call directly: connection logs, DNS activity, HTTP requests, SSL certificates, file extractions, security notices, and Suricata IDS alerts.
Beyond raw queries, it ships analytics: statistical C2 beaconing detection with jitter scoring, port-scan and data-exfiltration anomaly detection, and DNS-tunneling checks via Shannon entropy. Suricata alerts cross-correlate back to the matching Zeek connection for full context.
It reads both Zeek's native TSV and JSON, handles gzip-archived and date-rotated logs, and matches IPv4/IPv6 CIDR ranges and domain wildcards. 25 tools, 2 resources, and 4 guided-investigation prompts in total.
INSTALL
Published to npm as zeek-mcp.
Install the global binary, or run it on demand with npx.
Requires Node.js 20+ and a Zeek sensor producing logs.
CAPABILITIES / TOOLS EXPOSED
Connection analysis
DNS analysis
HTTP analysis
SSL/TLS analysis
File analysis
Notices, SSH & DHCP
Cross-log investigation & analytics
Suricata IDS & sensor
Plus 2 resources (zeek://log-types,
zeek://stats) and 4 prompts
(triage-alert, investigate-host,
hunt-for-c2, network-baseline).
Full reference in the README.
CLIENT CONFIG
Stdio transport. Point any MCP host at the zeek-mcp binary and set the log paths in env. Example mcpServers entry (Claude Desktop / Claude Code):
{
"mcpServers": {
"zeek": {
"command": "zeek-mcp",
"env": {
"ZEEK_LOG_DIR": "/opt/nids/zeek/logs",
"ZEEK_LOG_FORMAT": "tsv",
"SURICATA_EVE_LOG": "/opt/nids/suricata/logs/eve.json"
}
}
}
}
Config keys: ZEEK_LOG_DIR,
ZEEK_LOG_FORMAT (json or
tsv), ZEEK_LOG_ARCHIVE,
SURICATA_EVE_LOG, and optional MISP / TheHive / PCAP vars.