zeek-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ZEEK_LOG_DIR | No | Path to current Zeek logs | /opt/zeek/logs/current |
| ZEEK_LOG_FORMAT | No | Log format: json or tsv | json |
| SURICATA_EVE_LOG | No | Path to Suricata eve.json | /opt/nids/suricata/logs/eve.json |
| ZEEK_LOG_ARCHIVE | No | Path to archived/rotated logs | /opt/zeek/logs |
| ZEEK_MAX_RESULTS | No | Maximum results per query | 1000 |
| SURICATA_FAST_LOG | No | Path to Suricata fast.log | /opt/nids/suricata/logs/fast.log |
| SURICATA_RULES_DIR | No | Path to Suricata rules directory | /opt/nids/suricata/rules |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| zeek_query_connectionsB | Search Zeek connection logs with flexible filters. Supports CIDR notation for IPs, connection state filtering, duration/byte thresholds, and time ranges. |
| zeek_connection_summaryA | Get statistical summary of connections over a time period - top talkers, services, bytes, and connection counts. |
| zeek_long_connectionsC | Find unusually long-lived connections that may indicate C2 beacons, tunnels, or persistent backdoors. |
| zeek_query_dnsA | Search Zeek DNS query logs. Supports wildcard domain matching, query type filtering, and response code filtering. |
| zeek_dns_summaryA | DNS query statistics - top queried domains, NXDOMAIN counts (potential DGA detection), query type distribution, and top DNS clients. |
| zeek_dns_tunneling_checkB | Detect potential DNS tunneling by analyzing query entropy, subdomain lengths, and TXT/NULL query volumes. |
| zeek_query_httpA | Search Zeek HTTP request logs. Supports wildcard matching on host and URI, user agent filtering, and status code filtering. |
| zeek_suspicious_httpB | Find suspicious HTTP activity including POSTs to raw IPs, unusual user agents, large POST bodies, requests to high ports, and base64 in URLs. |
| zeek_query_sslA | Search Zeek SSL/TLS connection logs. Filter by SNI hostname, TLS version, certificate validation status, subject, and issuer. |
| zeek_expired_certsA | Find connections using expired or self-signed certificates - potential indicators of man-in-the-middle or malicious infrastructure. |
| zeek_query_filesC | Search Zeek file extraction logs. Filter by MIME type, filename, hash values, source IP, and file size. |
| zeek_executable_downloadsB | Find executable file transfers on the network - PE, ELF, Mach-O binaries and scripts that may indicate malware delivery. |
| zeek_query_noticesB | Search Zeek security notices (built-in and custom detections). Notices include port scans, invalid certificates, protocol violations, and custom alerts. |
| zeek_query_sshB | Search Zeek SSH connection logs. Filter by source/destination IP, authentication status, and connection direction. |
| zeek_ssh_bruteforceA | Detect SSH brute force attempts by identifying sources with multiple failed authentication attempts exceeding a threshold. |
| zeek_investigate_hostA | Comprehensive investigation of all activity for a specific host across all Zeek log types - connections, DNS, HTTP, SSL, files, notices, SSH, and software. |
| zeek_investigate_uidA | Follow a specific connection UID across all Zeek log types to reconstruct the complete session lifecycle. |
| zeek_software_inventoryA | List detected software and versions on the network from Zeek's protocol analysis. Useful for asset discovery and vulnerability assessment. |
| zeek_query_dhcpB | Search Zeek DHCP logs for lease assignments, device discovery, and hostname-to-IP mapping. Useful for asset inventory and identifying rogue devices. |
| zeek_dhcp_asset_mapA | Build an asset map from DHCP logs: MAC address to IP/hostname mappings. Useful for identifying all devices on the network and spotting unknown/rogue devices. |
| zeek_detect_beaconingA | Detect potential C2 beaconing by analyzing connection interval regularity. Finds source-destination pairs with suspiciously consistent callback intervals (low jitter). Higher scores indicate more regular beaconing patterns. |
| zeek_detect_anomaliesB | Run statistical anomaly detection across connection logs. Detects port scanning, data exfiltration (statistical outliers in bytes sent), and high-volume connections to unusual ports without identified services. |
| zeek_ja3_fingerprintsA | Extract and analyze JA3/JA3S TLS fingerprints from SSL logs. Identifies client TLS implementations and can detect known malicious fingerprints. JA3 fingerprints persist even when domains/IPs change, making them valuable for tracking threat actors. |
| zeek_ja3_huntA | Hunt for known malicious JA3 fingerprints across SSL logs. Compares all observed JA3 hashes against a built-in database of malware families (CobaltStrike, Emotet, TrickBot, etc.) and returns any matches. |
| zeek_network_baselineA | Generate a statistical baseline of normal network activity. Calculates averages, standard deviations, and distributions for connections, bytes, services, and protocols. Use as a reference point to identify deviations that may indicate compromise. |
| zeek_detect_outliersB | Compare current network activity against a baseline and identify statistical outliers. Flags hosts with unusual byte volumes, connection counts, port diversity, or timing patterns that deviate significantly from the norm. |
| suricata_query_alertsB | Search Suricata IDS/IPS alerts from eve.json. Filter by signature, severity, source/destination IP, protocol, and time range. Returns the most recent alerts matching the criteria. |
| suricata_alert_summaryB | Get a high-level summary of Suricata alerts: top signatures, categories, severity distribution, top source/destination IPs, and alert timeline. |
| suricata_correlate_zeekB | Cross-reference a Suricata alert with Zeek logs using community_id or IP/port/time matching. Returns the Suricata alert details alongside instructions to investigate the same flow in Zeek. |
| suricata_eve_statsA | Get Suricata engine statistics from eve.json stats events: packet counts, decoder stats, flow metrics, and detection engine performance. |
| pcap_listA | List available PCAP files in the capture directory with file sizes and timestamps. |
| pcap_analyzeA | Replay a PCAP file through Zeek and return the generated log summary. Creates connection, DNS, HTTP, SSL, and other logs from the packet capture. Useful for forensic analysis of captured traffic. |
| thehive_create_alertA | Create a TheHive alert from NIDS findings. Includes observables (IPs, domains, hashes), severity, TLP marking, and alert description. Use after investigating suspicious activity in Zeek/Suricata logs. |
| thehive_create_caseA | Create a TheHive case for in-depth investigation. Escalate from alerts or create directly from significant NIDS findings. Cases support tasks, observables, and collaborative investigation. |
| thehive_search_casesA | Search existing TheHive cases and alerts. Find related investigations, check for duplicates, or review open cases. |
| misp_search_iocsA | Search MISP for indicators of compromise (IOCs). Look up IPs, domains, hashes, URLs, and other observables against MISP's threat intelligence database. Returns matching events, attributes, and context. |
| misp_bulk_lookupA | Check multiple IOCs against MISP in a single call. Useful for batch-checking IPs, domains, or hashes found during Zeek/Suricata analysis. |
| misp_add_eventA | Create a MISP event from NIDS findings to share threat intelligence. Includes attributes (IOCs), tags, and threat level classification. |
| nids_sensor_statusA | Get the current status of the NIDS sensor: available Zeek log files with sizes, record counts, and freshness. Also checks Suricata eve.json status. Use this to understand what data is available before running queries. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| triage-alert | Triage a Suricata alert by cross-referencing with Zeek logs for full context. Determines if the alert is a true positive, false positive, or needs escalation. |
| investigate-host | Full host investigation workflow - cross-log analysis, anomaly identification, and connection profiling for a specific IP address. |
| hunt-for-c2 | Threat hunting workflow for command-and-control communication patterns using long connections, DNS anomalies, suspicious HTTP, and beaconing analysis. |
| network-baseline | Generate a network activity baseline showing normal traffic patterns, top talkers, common services, and DNS behavior. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| log-types | List of all Zeek log types with their field descriptions |
| stats | Current Zeek log directory statistics and available log files |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/lidless-labs/zeek-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server