mcp-hayabusa
This MCP server wraps the Hayabusa Windows event log forensic tool, enabling LLM clients to analyze .evtx files directly. Capabilities include:
Forensic analysis: Run detection timelines (CSV/JSON), keyword/regex search, extract and decode base64 strings, extract pivot keywords (users, IPs, processes, etc.), summarize logon events, and detect critical systems (domain controllers, file servers).
Metrics and summarization: Count events by Event ID or computer name, view log channel metadata (channels, event count, date range), and produce combined high-level first-pass scans (
scan_evtx).Rule and detection management: Get Hayabusa version and output profiles; update, list, and filter Sigma detection rules; analyze ATT&CK detection coverage; and suggest relevant rules by free-text query or ATT&CK technique.
Read-only resources: Browse rule catalogs by category, view full rule details by Sigma ID, and explore ATT&CK coverage by technique or tactic.
Click on "Install 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., "@mcp-hayabusaGenerate a CSV timeline from the system.evtx file in C:\logs"
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.
mcp-hayabusa
See CHANGELOG.md for release notes.
An MCP (Model Context Protocol) server that wraps Hayabusa, the Rust-based Windows event log (.evtx) fast forensic timeline generator and threat hunting tool.
It shells out to a local hayabusa binary and exposes its analysis capabilities as MCP tools that an LLM client (Claude Desktop, Claude Code, etc.) can call directly against .evtx files.
Prerequisites
Python >= 3.10
The hayabusa binary, either on
PATHor pointed to via theHAYABUSA_BINenvironment variable.
Related MCP server: mcp-hayabusa
Install
pip install -e ".[dev]"Run
mcp-hayabusaor
python -m mcp_hayabusaThe server communicates over stdio, so it's meant to be launched by an MCP client rather than run interactively.
Example Claude Desktop / Claude Code config
{
"mcpServers": {
"hayabusa": {
"command": "mcp-hayabusa",
"env": {
"HAYABUSA_BIN": "C:\\tools\\hayabusa\\hayabusa.exe"
}
}
}
}Tools
Tool | Description |
| Get the installed hayabusa binary's version. |
| List available output profiles. |
| Update the Sigma detection rule set. |
| List available Hayabusa/Sigma detection rules from the local rules directory, with an optional keyword filter. |
| Run |
| Run |
| Count event occurrences by Event ID. |
| Count events per computer name. |
| Output |
| Summarize successful and failed logon events. |
| Extract pivot keywords (users, computers, IPs, processes, command lines, etc.) by category. |
| Extract and decode base64-encoded strings from event fields. |
| Detect likely domain controllers and file servers from the logs. |
| Keyword/regex search over |
| High-level first-pass scan: combines log metadata, a detection timeline (filtered by min level and an optional rule-title keyword filter), and event ID metrics. Returns a concise |
| ATT&CK detection coverage over the installed rule set: an overall technique/tactic breakdown sorted weakest-covered first, or a focused answer for one |
| Rank installed Sigma rules by relevance to a free-text query (title match > tags match > description match), optionally scoped to an ATT&CK |
Resources
Unlike the tools above (which run analysis against .evtx files you point them at), these are read-only MCP resources for browsing the installed detection rule set itself — no .evtx file required. ATT&CK technique/tactic data is derived entirely from each Sigma rule's own tags: field (e.g. attack.t1059.001, attack.execution), not a bundled MITRE dataset, so it always matches whatever rules are actually installed. Each technique also gets a mitre_url (computed from the ID, e.g. https://attack.mitre.org/techniques/T1059/001/) and each tactic a hand-maintained display_name (e.g. credential-access → "Credential Access") — see CLAUDE.md for why technique IDs are not similarly enriched with human-readable names.
Resource URI | Description |
| Browsable rule catalog index, grouped by category, with per-category rule counts. |
| Full detail for a single rule by its Sigma |
| ATT&CK technique ID -> detecting rules (detection coverage by technique). |
| Rules detecting a single ATT&CK technique, e.g. |
| ATT&CK tactic -> detecting rules (detection coverage by tactic). |
Tests
pytestAll tests run against mocked subprocess calls, so no real hayabusa binary or .evtx file is required. Coverage is split across tests/test_hayabusa.py (the CLI wrapper functions), tests/test_knowledge.py (rule catalog/ATT&CK aggregation, against real small YAML fixtures), tests/test_config.py (binary resolution via HAYABUSA_BIN/PATH), and tests/test_server.py (the MCP tool and resource registrations themselves).
This does not apply to validate-rule-execution.py below, which is a separate, real-binary-required check, not part of pytest.
Custom Detection Rule Validation
This project's custom Sigma rules under rules/ are checked two ways:
validate-rule.py(.claude/skills/detection-engineering/scripts/validate-rule.py) — metadata-only: ATT&CK tag,level,falsepositives, and that a sibling.testcases.mdfile exists. Needs onlypyyaml, no real binary. Runs in CI (validate-rulesjob).validate-rule-execution.py(.claude/skills/detection-engineering/scripts/validate-rule-execution.py) — actually runs each rule against a real.evtxfixture via a realhayabusabinary and checks it fires/doesn't fire as documented in machine-readable```yamlblocks embedded in the rule's.testcases.md. Requires themcp_hayabusapackage installed (pip install -e .) and a realhayabusabinary onPATH/HAYABUSA_BIN. Runs in CI (validate-rule-executionjob, which downloads a pinned hayabusa binary), but you can also run it locally before treating a rule change as done:python .claude/skills/detection-engineering/scripts/validate-rule-execution.py rules/Fixtures are resolved from the
HAYABUSA_SAMPLE_EVTX_DIRenvironment variable if set (point this at a fuller local corpus, e.g. EVTX-ATTACK-SAMPLES), otherwise from the small real fixtures vendored undertests/fixtures/evtx/(seetests/fixtures/evtx/PROVENANCE.mdfor their sourcing). Exit codes:0all cases passed,1a case contradicted its documented expectation,2a usage/parse error,3no failures but at least one rule's cases were all skipped (missing binary or fixture) — kept distinct from0so a missing prerequisite can never look like a clean pass.
Threat Intelligence Ingestion
The /ingest-ti command (.claude/commands/ingest-ti.md) ingests IOC data from local files, normalizes it, and correlates it against this project's Sigma rule coverage. Two scripts back it, under .claude/skills/ingest-ti/scripts/:
ingest_ti.py— normalizes one input file (a native{type, value, confidence, source, first_seen, attack_technique, notes}JSON list, or a MISPEvent.Attribute[]JSON export) into that fixed schema. Needs only the Python standard library. Exit codes:0clean,1some indicators skipped/coerced,2usage/parse error.correlate_ti.py— takes 1+ normalized files, dedups/merges IOCs sharing a(type, value)key, and checks every ATT&CK technique they reference against this repo's installed Sigma rules viaanalyze_coverage/suggest_rule(mcp_hayabusa.knowledge). Optionally correlates against a saved Hayabusa scan result (--hayabusa-result) via a textual substring match. Exit codes:0clean,1issues found and/or an uncovered technique,2usage/parse error.
python .claude/skills/ingest-ti/scripts/ingest_ti.py intel/misp_export.json > /tmp/norm1.json
python .claude/skills/ingest-ti/scripts/correlate_ti.py /tmp/norm1.json --hayabusa-result artifacts/scan.jsonv1 supports native and MISP JSON only — no STIX/TAXII or live TI feed APIs (see .claude/skills/ingest-ti/SKILL.md's "Explicitly out of scope for v1"). Both scripts are unit-tested the normal mocked-nothing way in tests/test_ingest_ti.py/tests/test_correlate_ti.py, covered by the existing pytest job — no dedicated CI job is needed since neither script touches an external binary or network.
Lint / Typecheck
ruff check .
mypyBoth run in CI (see the lint job in .github/workflows/test.yml), alongside mypy tests since the tests directory isn't covered by [tool.mypy]'s default package selection.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityBmaintenanceEnables Windows Event Log (EVTX) analysis by wrapping Hayabusa, exposing scan and rule retrieval tools.MIT
- Flicense-qualityBmaintenanceEnables scanning Windows EVTX event log files with Hayabusa, returning structured detection results through an MCP tool.
- Flicense-qualityBmaintenanceAn MCP server that wraps the Hayabusa CLI, enabling analysis of Windows EVTX event log files and browsing of its detection rule set.
- AlicenseAqualityBmaintenanceEnables MCP clients to run Hayabusa detection scans over Windows event log (.evtx) files for forensic analysis and threat hunting.2MIT
Related MCP Connectors
A paid remote MCP for ClawManager, built to return verdicts, receipts, usage logs, and audit-ready J
Offline methodology engine for authorized penetration testing, CTF, and security research.
VirusTotal MCP — file / URL / domain / IP reputation (BYO key)
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/omeryemba/mcp-hayabusa'
If you have feedback or need assistance with the MCP directory API, please join our Discord server