zeek-mcp
zeek-mcp is an MCP server for querying, analyzing, and correlating Zeek and Suricata network security logs from an AI client.
Search Zeek connection, DNS, HTTP, SSL/TLS, file, notice, SSH, DHCP, and software logs with filters such as CIDR, wildcards, time ranges, ports, hashes, and status codes.
Summarize connections and DNS activity; find long-lived connections, suspicious HTTP, expired/self-signed certificates, executable downloads, SSH brute force, and DHCP asset mappings.
Investigate a host or follow a connection UID across multiple log types.
Run analytics for C2 beaconing, statistical anomalies, DNS tunneling entropy, JA3/JA3S fingerprinting and malicious-hash hunting, network baselining, and outlier detection.
Query, summarize, and correlate Suricata alerts, and inspect Suricata engine statistics.
List PCAPs and replay a PCAP through Zeek, subject to the mutation gate.
Search/create TheHive alerts and cases, and search/add MISP IOCs and events; creation tools require credentials and the mutation gate.
Check NIDS sensor status, available log files, freshness, and health.
Use MCP resources and prompts for log metadata, stats, alert triage, host investigation, C2 hunting, and network baselining.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@zeek-mcp show me connection logs from 10.0.0.0/24 in the last hour"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
zeek-mcp is a Model Context Protocol (MCP) server that lets an AI client read, query, and correlate Zeek and Suricata network security monitoring logs. It exists because network telemetry lives in dense per-protocol log files (conn, dns, http, ssl, files, notice, plus Suricata eve.json) that are tedious to grep by hand during an investigation, and an LLM is good at pivoting across them if you give it structured access. It differs from a generic log-reader MCP by speaking Zeek and Suricata natively: it parses both JSON and TSV, understands CIDR and wildcard matching, walks date-rotated and gzipped archives, and ships purpose-built detections (beaconing, DNS tunneling, JA3 hunting, anomaly and baseline analysis) rather than handing the model raw text.
What it does
zeek-mcp turns a Zeek and Suricata sensor into a queryable surface for an AI agent doing network security monitoring (NSM). Point it at your Zeek log directory and Suricata eve.json, register it with any MCP client, and the model can search connection logs, follow a connection UID across every log type, profile DNS for DGA and tunneling, inspect SSL/TLS certificates and JA3 fingerprints, find executable downloads on the wire, cross-reference Suricata alerts against Zeek context, and escalate findings into TheHive or MISP. Detection logic that would otherwise be a pile of ad-hoc queries (C2 beaconing by interval regularity, statistical anomaly detection, network baselining) is exposed as first-class tools, so the agent asks one question instead of reconstructing the analysis from raw logs every time.
It reads logs; it does not run the sensor, mutate capture, or replace your SIEM. Everything is read-only against Zeek and Suricata data, with the single exception of the optional TheHive and MISP tools that create alerts, cases, and events when you provide credentials.
Related MCP server: Zeek-MCP
Installation
git clone https://github.com/lidless-labs/zeek-mcp.git
cd zeek-mcp
npm install
npm run buildPrerequisites
Node.js 22+
Zeek sensor generating logs (JSON or TSV format)
Suricata (optional, for IDS alert correlation)
Quickstart
zeek-mcp is published on npm and runs over stdio, so any MCP client can launch it with npx. Add this to your client's MCP config (the example below is for Claude Desktop / Claude Code, adjust env paths to your sensor):
{
"mcpServers": {
"zeek": {
"command": "npx",
"args": ["-y", "zeek-mcp"],
"env": {
"ZEEK_LOG_DIR": "/opt/zeek/logs/current",
"ZEEK_LOG_FORMAT": "tsv",
"SURICATA_EVE_LOG": "/opt/suricata/logs/eve.json"
}
}
}
}Then ask your agent something like "summarize the top talkers in the last connection log and flag any beaconing" and it will call the relevant tools.
To try it locally against the bundled sample data:
npx -y zeek-mcp # or: git clone, npm install, npm run build, then node dist/index.jsSet ZEEK_LOG_DIR to the included test-data/ directory to explore without a live sensor (see Development).
Usage
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"zeek": {
"command": "npx",
"args": ["-y", "zeek-mcp"],
"env": {
"ZEEK_LOG_DIR": "/opt/zeek/logs/current",
"ZEEK_LOG_FORMAT": "tsv",
"SURICATA_EVE_LOG": "/opt/suricata/logs/eve.json"
}
}
}
}Claude Code
claude mcp add zeek \
--env ZEEK_LOG_DIR=/opt/zeek/logs/current \
--env ZEEK_LOG_FORMAT=tsv \
--env SURICATA_EVE_LOG=/opt/suricata/logs/eve.json \
-- npx -y zeek-mcpAdd --scope user to make it available from any directory instead of only the current project.
OpenClaw
With the published package:
openclaw mcp set zeek '{
"command": "npx",
"args": ["-y", "zeek-mcp"],
"env": {
"ZEEK_LOG_DIR": "/opt/zeek/logs/current",
"ZEEK_LOG_FORMAT": "tsv",
"SURICATA_EVE_LOG": "/opt/suricata/logs/eve.json"
}
}'Or, when running from a source checkout instead of the npm package, point command/args at the built dist/index.js:
openclaw mcp set zeek '{
"command": "node",
"args": ["/absolute/path/to/zeek-mcp/dist/index.js"],
"env": {
"ZEEK_LOG_DIR": "/opt/zeek/logs/current",
"ZEEK_LOG_FORMAT": "tsv",
"SURICATA_EVE_LOG": "/opt/suricata/logs/eve.json"
}
}'Then restart the OpenClaw gateway so the new server is picked up:
systemctl --user restart openclaw-gateway
openclaw mcp list # confirm "zeek" is registeredCodex CLI
Codex CLI registers MCP servers via codex mcp add:
codex mcp add zeek \
--env ZEEK_LOG_DIR=/opt/zeek/logs/current \
--env ZEEK_LOG_FORMAT=tsv \
--env SURICATA_EVE_LOG=/opt/suricata/logs/eve.json \
-- npx -y zeek-mcpCodex writes the entry to ~/.codex/config.toml under [mcp_servers.zeek]. Verify with codex mcp list.
Standalone
ZEEK_LOG_DIR=/opt/zeek/logs/current ZEEK_LOG_FORMAT=tsv node dist/index.jsDevelopment
ZEEK_LOG_DIR=./test-data npm run devTools
zeek-mcp registers 39 tools. Read-only Zeek/Suricata query and analysis tools make up most of the set; TheHive/MISP creation and PCAP replay require the mutation gate described below.
Connection Analysis
Tool | Description |
| Search connection logs with flexible filters (CIDR, protocol, duration, bytes) |
| Statistical summary: top talkers, services, bytes, connection counts |
| Find long-lived connections (potential C2 beacons, tunnels) |
DNS Analysis
Tool | Description |
| Search DNS queries with domain wildcards and response code filtering |
| Top domains, NXDOMAIN counts (DGA detection), query type distribution |
| Detect DNS tunneling via entropy analysis and encoding detection |
HTTP Analysis
Tool | Description |
| Search HTTP requests by host, URI, method, user agent, status code |
| Find suspicious HTTP: POSTs to IPs, unusual agents, large bodies, base64 in URLs |
SSL/TLS Analysis
Tool | Description |
| Search SSL/TLS by SNI, version, validation status, certificate fields |
| Find expired, self-signed, or invalid certificates |
File Analysis
Tool | Description |
| Search file extractions by MIME type, hash, filename, size |
| Find executable transfers (PE, ELF, scripts) on the wire |
Security Notices
Tool | Description |
| Search Zeek security notices (port scans, invalid certs, custom alerts) |
SSH Analysis
Tool | Description |
| Search SSH connections by auth status, direction, client/server |
| Detect SSH brute force attempts exceeding a failure threshold |
DHCP & Asset Discovery
Tool | Description |
| Search DHCP logs for lease assignments and device discovery |
| Build MAC-to-IP/hostname asset map for network inventory |
Cross-Log Investigation
Tool | Description |
| Full host investigation across all log types |
| Follow a connection UID across all log types |
Software Discovery
Tool | Description |
| List detected software and versions on the network |
Analytics
Tool | Description |
| Detect C2 beaconing by analyzing connection interval regularity and jitter |
| Statistical anomaly detection: port scans, data exfiltration, unusual ports |
| Extract and analyze JA3/JA3S TLS fingerprints from SSL logs |
| Hunt known-malicious JA3 fingerprints (CobaltStrike, Emotet, TrickBot, etc.) across SSL logs |
| Generate a statistical baseline of normal network activity as a reference point |
| Compare current activity against a baseline and flag statistical outliers |
Suricata IDS
Tool | Description |
| Search Suricata alerts by signature, severity, IP, protocol, time |
| High-level alert summary: top signatures, categories, IPs, severity distribution |
| Cross-reference Suricata alerts with Zeek logs for full context |
| Suricata engine statistics: packets, flows, detection performance |
PCAP Analysis
Tool | Description |
| List available PCAP files in the capture directory with sizes and timestamps |
| Replay a PCAP file through Zeek and return the generated log summary. Requires mutation gate. |
Incident Response
Tool | Description |
| Create a TheHive alert from NIDS findings (observables, severity, TLP). Requires mutation gate. |
| Create a TheHive case for in-depth, collaborative investigation. Requires mutation gate. |
| Search existing TheHive cases and alerts for related work or duplicates |
| Search MISP for IOCs (IPs, domains, hashes, URLs) and return matching events |
| Check multiple IOCs against MISP in a single call |
| Create a MISP event from NIDS findings to share threat intelligence. Requires mutation gate. |
Sensor Management
Tool | Description |
| Live sensor status: log inventory, sizes, freshness, health checks |
External telemetry
Tool descriptions and results identify network, log, filename, and remote service content as untrusted evidence. Returned strings and keys must never be treated as instructions or permission to act. JSON result fields retain their shape, with delimiter characters escaped in the serialized text. String values longer than 4096 characters are shortened and marked with [truncated]. A separate text block carries the provenance notice, so the first result block remains parseable JSON.
PCAP replay still requires ZEEK_ALLOW_MUTATION=1 and confirm: true. Script arguments cannot begin with a dash. Host replay resolves the capture root and input to canonical paths, rejects inputs outside that root, and requires a regular file. Docker replay keeps the existing /pcaps mount mapping. Restrict write access to the capture directory and its parent directories to trusted operators.
Resources
Resource | URI | Description |
Log Types |
| All Zeek log types with field descriptions |
Stats |
| Sensor statistics and available log types |
Prompts
Prompt | Description |
| Triage a Suricata alert by cross-referencing with Zeek logs |
| Guided host investigation workflow across all logs |
| Threat hunting for C2 communication patterns |
| Generate a network activity baseline |
Supported Log Types
conn, dns, http, ssl, files, notice, weird, x509, smtp, ssh, dpd, software, dhcp, ntp, ocsp, websocket
Configuration
Mutation gate
State-changing tools use the same two-step opt-in as suricata-mcp. By default, thehive_create_alert, thehive_create_case, misp_add_event, and pcap_analyze refuse to run. Set ZEEK_ALLOW_MUTATION=1 in the server environment, restart the server, and pass confirm: true on each invocation. Values such as true do not enable the gate. Read-only tools do not require either opt-in. TheHive and MISP creation also require their API credentials.
PCAP replay creates analysis files and starts Zeek locally or in a container. Enable the gate only when these operations are intended.
Variable | Default | Description |
| disabled | Set to exactly |
Zeek
Variable | Default | Description |
|
| Path to current Zeek logs |
|
| Path to archived/rotated logs |
|
| Log format: |
|
| Maximum results per query |
|
| Maximum input lines scanned per query across selected files, including comments and malformed lines. Queries stop at this budget and report |
|
| Maximum calendar dates in a query window. Larger ranges are rejected before log-directory access. |
Default timestamp-descending queries retain at most the requested result limit while scanning. Other sort fields and ascending queries retain at most the scan budget before sorting. A truncated response describes only the scanned prefix, so its latest records and analysis summaries may be incomplete. Default timestamp queries prioritize files overlapping the requested window, scanning archive dates and rotation filenames in descending order. Current logs go first when the window includes today. Later rotations and current logs outside the window remain eligible after the primary files. Reaching the scan budget reports truncation conservatively, even if the file ends at that line. Budgets apply per query: host and UID investigations run several bounded queries. The separate DHCP readers do not use these query-engine budgets.
Archive dates and rotated filename clocks are interpreted in the server's local timezone. Set TZ to match the sensor when reading its archives. Files closed before the requested window starts are skipped, except on dates with a daylight-saving transition. Later rotations remain eligible because connections can be logged after their first-packet timestamp. Archive selection still covers only dates in the requested window, so delayed records written to later date directories can be missed.
Suricata
Variable | Default | Description |
|
| Path to Suricata eve.json |
|
| Path to Suricata fast.log |
|
| Path to Suricata rules directory |
PCAP Analysis
Variable | Default | Description |
|
| Directory of PCAP files. |
|
| Path to the Zeek binary. |
|
| Docker container to run Zeek in. Set to empty to run Zeek directly on the host. |
|
| Working directory for generated logs. |
MISP
Variable | Default | Description |
|
| MISP base URL. |
| (none) | MISP API key. Required for MISP tools. |
|
| Set to |
TheHive
Variable | Default | Description |
|
| TheHive base URL. |
| (none) | TheHive API key. Required for TheHive tools. |
|
| Set to |
Features
39 tools for querying and analyzing Zeek + Suricata logs
2 resources for log type metadata and sensor stats
4 prompts for guided investigation workflows
Dual format support - JSON and TSV (Zeek's native tab-separated format)
Suricata integration - Query
eve.jsonalerts, cross-correlate with Zeek, engine stats
CIDR matching - Filter by IP ranges (10.0.0.0/8, 192.168.1.0/24) with full IPv6 support
Wildcard matching - Search domains and URIs with patterns (
*.example.com)Beaconing detection - Statistical C2 beacon analysis with jitter scoring
Anomaly + baseline detection - Port scan, data exfiltration, unusual ports, statistical outliers vs a baseline
DNS tunneling detection - Shannon entropy analysis with encoding detection
JA3/JA3S fingerprinting - Track TLS clients and hunt known-malicious fingerprints across SSL logs
PCAP replay - Run a packet capture through Zeek and analyze the generated logs
Incident response - Escalate findings into TheHive (alerts/cases) and MISP (IOC lookups/events)
DHCP asset mapping - MAC-to-IP/hostname device inventory
Compressed + rotated logs - Reads
.gzarchives and navigates Zeek's date-based log directories
Why not something else?
Grepping the logs by hand. Zeek and Suricata logs are precise but verbose, and a real investigation means pivoting from one connection UID into dns, http, ssl, and files. zeek-mcp gives the agent a
zeek_investigate_uid/zeek_investigate_hostpivot and structured filters instead of you reconstructingawkone-liners under pressure.A generic file/log MCP. A plain log-reader hands the model raw lines and hopes it parses them. zeek-mcp understands Zeek's TSV header format and Suricata's
eve.jsonschema, does CIDR and IPv6 matching, reads gzipped and date-rotated archives, and ships detections (beaconing, DNS tunneling, JA3 hunting) that a generic reader cannot.Your SIEM's query language. A SIEM is the system of record. zeek-mcp is the lightweight, local, stdio path for an AI agent to read the same telemetry directly off the sensor during triage or homelab work, with no indexing tier or query DSL to learn. Use both: investigate quickly here, escalate to TheHive/MISP from the same session.
What zeek-mcp is not
zeek-mcp is not a Zeek/Suricata replacement, a packet-capture engine, a SIEM, or a background agent.
It does not:
run, configure, or manage your Zeek or Suricata sensor
capture packets or modify traffic (it reads logs, and replays existing PCAPs only on request)
index, store, or retain your telemetry between calls
run on a schedule, open network listeners, or send notifications on its own
write to Zeek/Suricata data anywhere
TheHive and MISP creation writes alerts, cases, and events using your credentials. PCAP replay creates analysis files. These four tools require ZEEK_ALLOW_MUTATION=1 and per-call confirm: true.
Testing
npm test110 tests covering parsers (JSON + TSV), query engine, CIDR/wildcard filters, analytics (entropy, beaconing, anomaly detection), Suricata eve.json parsing, DHCP log parsing, and sensor status.
Generate Test Data
For a deterministic large JSON connection log without accumulating it in memory:
npm run generate-logs -- --output=./example-logs --fixture-count=200000The fixture mode writes only conn.log, with sequential timestamps and example identifiers. It accepts 1 to 1000000 records.
npm run generate-logs
npx tsx scripts/generate-zeek-logs.ts --output=/tmp/zeek-logs --format=jsonProject Structure
zeek-mcp/
src/
index.ts # MCP server entry point + tool registration
config.ts # Environment config + validation
types.ts # Zeek log type definitions (16 log types)
resources.ts # MCP resources
prompts.ts # MCP prompts (4 workflows)
parser/
index.ts # Format-agnostic parser + log resolution
json.ts # JSON log parser
tsv.ts # TSV log parser with header detection
query/
engine.ts # Query engine with filtering/sorting
filters.ts # CIDR match (v4+v6), wildcard, range operators
aggregation.ts # Statistical aggregation functions
tools/
connections.ts # Connection analysis tools
dns.ts # DNS analysis tools
http.ts # HTTP analysis tools
ssl.ts # SSL/TLS analysis tools
files.ts # File analysis tools
notices.ts # Security notice tools
ssh.ts # SSH analysis tools
investigation.ts # Cross-log investigation tools
software.ts # Software/asset discovery
dhcp.ts # DHCP log tools + asset mapping
beaconing.ts # Beaconing detection tool
anomaly.ts # Anomaly detection tool
ja3.ts # JA3/JA3S fingerprinting + hunt
baseline.ts # Network baseline + outlier detection
suricata.ts # Suricata eve.json tools
pcap.ts # PCAP listing + Zeek replay
thehive.ts # TheHive alert/case tools
misp.ts # MISP IOC lookup + event tools
sensor.ts # Sensor status + health checks
analytics/
entropy.ts # Shannon entropy calculation
beaconing.ts # Beacon detection algorithms
anomaly.ts # Statistical anomaly detection
tests/ # Vitest unit + integration tests
test-data/ # Sample Zeek + Suricata logs
scripts/
generate-zeek-logs.ts # Mock data generatorContributing
Issues and pull requests are welcome. See CONTRIBUTING.md for the contribution path and SECURITY.md for how to report vulnerabilities privately. By participating you agree to the Code of Conduct.
License
Available Tools
39 toolsmisp_add_eventA
Create a MISP event from NIDS findings to share threat intelligence. Includes attributes (IOCs), tags, and threat level classification.
Inputs: info (required), tags, analysis, attributes, +2 more.
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.
Inputs: indicators (required).
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.
Inputs: value (required), type, limit, includeEventInfo.
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.
Inputs: no named parameters.
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.
Inputs: filename (required), scripts, timeoutSeconds.
pcap_listA
List available PCAP files in the capture directory with file sizes and timestamps.
Inputs: no named parameters.
suricata_alert_summaryB
Get a high-level summary of Suricata alerts: top signatures, categories, severity distribution, top source/destination IPs, and alert timeline.
Inputs: limit, timeTo, timeFrom.
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.
Inputs: dstIp, limit, srcIp, communityId, +1 more.
suricata_eve_statsA
Get Suricata engine statistics from eve.json stats events: packet counts, decoder stats, flow metrics, and detection engine performance.
Inputs: no named parameters.
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.
Inputs: dstIp, limit, proto, srcIp, +6 more.
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.
Inputs: title (required), description (required), pap, tlp, +6 more.
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.
Inputs: title (required), description (required), pap, tlp, +4 more.
thehive_search_casesA
Search existing TheHive cases and alerts. Find related investigations, check for duplicates, or review open cases.
Inputs: tags, limit, query, status, +2 more.
zeek_connection_summaryA
Get statistical summary of connections over a time period - top talkers, services, bytes, and connection counts.
Inputs: timeTo, groupBy, timeFrom.
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.
Inputs: timeTo, timeFrom, minSeverity.
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.
Inputs: dstIp, srcIp, timeTo, minScore, +3 more.
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.
Inputs: timeTo, timeFrom, stdDevThreshold.
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.
Inputs: timeTo, timeFrom.
zeek_dns_summaryA
DNS query statistics - top queried domains, NXDOMAIN counts (potential DGA detection), query type distribution, and top DNS clients.
Inputs: timeTo, timeFrom.
zeek_dns_tunneling_checkB
Detect potential DNS tunneling by analyzing query entropy, subdomain lengths, and TXT/NULL query volumes.
Inputs: timeTo, timeFrom, entropyThreshold.
zeek_executable_downloadsB
Find executable file transfers on the network - PE, ELF, Mach-O binaries and scripts that may indicate malware delivery.
Inputs: timeTo, timeFrom.
zeek_expired_certsA
Find connections using expired or self-signed certificates - potential indicators of man-in-the-middle or malicious infrastructure.
Inputs: timeTo, timeFrom.
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.
Inputs: ip (required), timeTo, timeFrom.
zeek_investigate_uidA
Follow a specific connection UID across all Zeek log types to reconstruct the complete session lifecycle.
Inputs: uid (required).
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.
Inputs: dstIp, limit, srcIp, timeTo, +3 more.
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.
Inputs: timeTo, timeFrom, customHashes.
zeek_long_connectionsC
Find unusually long-lived connections that may indicate C2 beacons, tunnels, or persistent backdoors.
Inputs: minDuration (required), limit, timeTo, timeFrom.
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.
Inputs: timeTo, timeFrom.
zeek_query_connectionsB
Search Zeek connection logs with flexible filters. Supports CIDR notation for IPs, connection state filtering, duration/byte thresholds, and time ranges.
Inputs: dstIp, limit, proto, srcIp, +10 more.
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.
Inputs: mac, limit, timeTo, msgType, +4 more.
zeek_query_dnsA
Search Zeek DNS query logs. Supports wildcard domain matching, query type filtering, and response code filtering.
Inputs: limit, qtype, query, rcode, +4 more.
zeek_query_filesC
Search Zeek file extraction logs. Filter by MIME type, filename, hash values, source IP, and file size.
Inputs: md5, limit, srcIp, sha256, +6 more.
zeek_query_httpA
Search Zeek HTTP request logs. Supports wildcard matching on host and URI, user agent filtering, and status code filtering.
Inputs: uri, host, limit, srcIp, +6 more.
zeek_query_noticesB
Search Zeek security notices (built-in and custom detections). Notices include port scans, invalid certificates, protocol violations, and custom alerts.
Inputs: msg, note, dstIp, limit, +3 more.
zeek_query_sshB
Search Zeek SSH connection logs. Filter by source/destination IP, authentication status, and connection direction.
Inputs: dstIp, limit, srcIp, timeTo, +3 more.
zeek_query_sslA
Search Zeek SSL/TLS connection logs. Filter by SNI hostname, TLS version, certificate validation status, subject, and issuer.
Inputs: dstIp, limit, srcIp, issuer, +6 more.
zeek_software_inventoryA
List detected software and versions on the network from Zeek's protocol analysis. Useful for asset discovery and vulnerability assessment.
Inputs: host, timeTo, timeFrom, softwareType.
zeek_ssh_bruteforceA
Detect SSH brute force attempts by identifying sources with multiple failed authentication attempts exceeding a threshold.
Inputs: timeTo, timeFrom, threshold.
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.
Inputs: timeTo, timeFrom.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 39 tools
Tools are clearly organized by source (zeek, suricata, misp, thehive, pcap, nids) and action, with distinct purposes. Even within Zeek, query tools target specific log types and detection tools address different anomalies, minimizing confusion.
All tool names follow a consistent pattern: source_prefix (zeek_, suricata_, misp_, etc.) followed by a verb or descriptor. Underscores and lowercase are used uniformly, making the set predictable and easy to navigate.
With 39 tools, the server is heavily weighted, exceeding the typical well-scoped range. While the tools are justified by the breadth of NIDS functionality, the count is borderline high and may overwhelm agents.
The tool set covers the full lifecycle of network threat detection and response: data acquisition (pcap, logs), querying (all log types), anomaly detection, threat intelligence integration (MISP), case management (TheHive), and cross-referencing (Suricata-Zeek). No obvious gaps.
Maintenance
Related MCP Connectors
Syslog receiver and MCP server for homelab log intelligence.
Syslog receiver and MCP server for homelab log intelligence.
MCP server for querying and analyzing data from ad platforms, analytics tools, and spreadsheets
Cybersecurity MCP server for URL scanning, threat intelligence, and domain reputation.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceSuricataMCP is a Model Context Protocol Server that allows MCP clients to autonomously use suricata for network traffic analysis. It enables programmatic interaction with Suricata through tools like get\_suricata\_version, get\_suricata\_help, and get\_alerts\_from\_pcap\_file.14-
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that integrates Zeek network analysis capabilities with LLM chatbots, allowing them to analyze PCAP files and parse network logs through natural language interactions.7Apache 2.0
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables querying logs and metrics from Graylog, Prometheus, and InfluxDB 2.x. It provides tools for executing Lucene log searches, PromQL queries, and Flux queries directly within MCP-compatible clients.MIT
- FlicenseNot gradedqualityNot gradedmaintenanceA production-oriented, read-only MCP server for secure ELK stack analysis, compatible with OpenClaw.-