Skip to main content
Glama
mcp-hayabusa

mcp-hayabusa

by msadigo

mcp-hayabusa

Tests License: MIT Python 3.10+

An MCP (Model Context Protocol) server that wraps Hayabusa, the Windows event log fast forensics timeline and threat-hunting tool, so an MCP client (e.g. Claude Code) can run detection scans over .evtx files.

Prerequisites

  • Python 3.10+

  • The hayabusa binary, downloaded from the Hayabusa releases page (or built from source), available on PATH, or pointed to via the HAYABUSA_BIN environment variable.

    scripts/download_hayabusa.py will fetch the latest release for your platform and extract it to ./hayabusa/:

    python scripts/download_hayabusa.py
    # then either add ./hayabusa to PATH, or:
    export HAYABUSA_BIN=./hayabusa/hayabusa   # ./hayabusa/hayabusa.exe on Windows

    Pass --version vX.Y.Z to pin a release, --musl for a musl build on Linux, or --force to re-download.

Related MCP server: mcp-hayabusa

Install

pip install -e .

Run

mcp-hayabusa

Or point an MCP client's config at the installed console script (mcp-hayabusa) or at python -m mcp_hayabusa.server.

Configuration

Env var

Purpose

HAYABUSA_BIN

Full path (or PATH-resolvable name) of the hayabusa binary to invoke.

Copy .env.example to .env and fill it in as a reference for what to set. Nothing auto-loads .env: export the variables yourself (or use a tool like direnv) before running mcp-hayabusa/ mcp dev/mcp run, or, if installing into the Claude Desktop app, pass it straight to mcp install src/mcp_hayabusa/server.py --env-file .env.

Tools

scan_evtx

Runs hayabusa csv-timeline or hayabusa json-timeline against a single .evtx file or a directory of .evtx files, always non-interactively.

Parameters: target, is_file, output_format (csv/json/jsonl), rules_dir, min_level, utc, output_path.

Returns the command that was run, exit code, a preview of up to 20 result records, the total record count, and truncated stdout/stderr. Pass output_path explicitly to keep the full result file on disk; otherwise a temporary file is used and removed after the preview is extracted.

get_hayabusa_rules

Lists Hayabusa/Sigma detection rules, optionally filtered by keyword — useful for browsing/searching what's available before running scan_evtx with a rule_filter, since both use the same case-insensitive text match.

Parameters: keyword, rules_dir, max_results.

Returns total_matched (true count) and up to max_results rules, each with path, id, title, level, status, description, author, tags, and logsource.

Resources

A read-only, browsable detection knowledge base — Sigma rules and their ATT&CK mappings — for a client to navigate directly instead of only through tool calls.

URI

Kind

Description

hayabusa://attack

static

Every ATT&CK technique ID present in the loaded rule set, with a rule count each.

hayabusa://attack/{technique_id}

template

Rules tagged with one technique, e.g. hayabusa://attack/T1003 (case-insensitive).

hayabusa://rules/{path}

template

Raw Sigma rule YAML (including its detection: logic) for one rule file.

path in hayabusa://rules/{path} is a rule's path field from get_hayabusa_rules or an ATT&CK resource, with every / percent-encoded (%2F) — MCP resource URI templates only match a single path segment.

Available Tools

2 tools
get_hayabusa_rulesA

List available Hayabusa/Sigma detection rules, optionally filtered by keyword.

Useful for understanding what rules exist before running scan_evtx — e.g. call with keyword="mimikatz" to see which rules would be loaded by scan_evtx(rule_filter="mimikatz"), since both use the same case-insensitive match against rule file text.

Args: keyword: Only return rules whose rule file text contains this string (case-insensitive), e.g. "lateral" or "mimikatz". Omit to list all rules (subject to max_results). rules_dir: Optional path to a custom Sigma/Hayabusa rules directory. Defaults to Hayabusa's bundled ./rules. max_results: Cap on the number of rules returned (default 50). total_matched in the response is always the true match count.

Returns: A dict with total_matched (true count of matching rule files) and rules: a list of {path, id, title, level, status, description, author, tags, logsource}, capped at max_results.

Inputs: keyword, rules_dir, max_results.

scan_evtxA

Run a Hayabusa detection scan over Windows Event Log (.evtx) data.

Wraps hayabusa csv-timeline / hayabusa json-timeline, always run non-interactively (no rule-config wizard, no launch banner).

Args: target: Path to a single .evtx file (set is_file=True) or a directory containing .evtx files. is_file: True if target is a single .evtx file rather than a directory. output_format: "csv" (uses csv-timeline), or "json"/"jsonl" (both use json-timeline; jsonl adds Hayabusa's -L flag). This controls Hayabusa's own output format, not the shape of the dict returned by this tool — see result_detail for that. rules_dir: Optional path to a custom Sigma/Hayabusa rules directory or file (passed as -r). Defaults to Hayabusa's bundled ./rules. Ignored if rule_filter is set (see below). rule_filter: Only run rules whose rule file text contains this string (case-insensitive), e.g. "lateral" or "mimikatz". Hayabusa has no native free-text rule filter, so this copies matching rule files from rules_dir (or Hayabusa's default ./rules) into a temporary rules directory and scans with just those loaded. min_level: Optional minimum alert level to load: "informational", "low", "medium", "high", or "critical" (passed as -m). utc: Output timestamps in UTC instead of local time (-U). output_path: Where to write the full result file. If omitted, a temporary file is used and deleted after a preview is extracted, so the full result set is only kept on disk when you pass this explicitly. result_detail: "summary" (default) returns counts by level, the top matching rules, and a condensed preview (key fields only); stdout/stderr tails are only included on non-zero exit. "full" returns the complete record preview with all fields plus stdout/stderr tails, as before. max_results: Cap on the number of preview records returned (default 20). Does not affect record_count, which is always the true total.

Returns: A dict shaped per result_detail; see above.

Inputs: target (required), utc, is_file, min_level, +6 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.5/5.0

    Scored across 2 tools

    Disambiguation5/5

    The two tools have clearly distinct purposes: one lists available rules, the other performs a scan. There is no overlap or ambiguity.

    Naming Consistency5/5

    Both tools use consistent snake_case naming with a verb_noun pattern (get_hayabusa_rules, scan_evtx), which is predictable and clear.

    Tool Count4/5

    Two tools is slightly on the low side, but it aligns with the focused scope of the MCP server (rule listing and scanning). It is reasonable for a targeted purpose.

    Completeness4/5

    The core workflow of listing rules and scanning EVTX files is covered. Minor gaps exist (e.g., no tool for retrieving previous scan results or managing rules), but the essential functionality is present.

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      Enables an LLM client to scan Windows event log files (EVTX) for suspicious activity using Hayabusa, and browse its detection rules directly in conversation.
      -
    • F
      license
      Not graded
      quality
      D
      maintenance
      Enables scanning Windows EVTX event log files with Hayabusa, returning structured detection results through an MCP tool.
      -
    • F
      license
      Not graded
      quality
      D
      maintenance
      An MCP server that wraps the Hayabusa CLI, enabling analysis of Windows EVTX event log files and browsing of its detection rule set.
      -
    • F
      license
      Not graded
      quality
      D
      maintenance
      Enables EVTX (Windows Event Log) analysis via Hayabusa, providing tools to scan event logs and retrieve detection rules.
      -