mcp-hayabusa

mcp-hayabusa

Enables scanning Windows EVTX event log files with Hayabusa, returning structured detection results through an MCP tool.

Category
Visit Server

README

mcp-hayabusa

An MCP server that wraps Hayabusa for EVTX (Windows event log) analysis, exposing scan_evtx and get_hayabusa_rules tools to Claude.

Setup

  1. Install dependencies:

    pip install -r requirements.txt
    
  2. Download the Hayabusa binary and Sigma rules into ./hayabusa/:

    python download_hayabusa.py
    

    This fetches the latest release for your OS/architecture and extracts it to ./hayabusa/ (binary at ./hayabusa/hayabusa.exe on Windows or ./hayabusa/hayabusa elsewhere, plus rules/ and rules/config/).

  3. Keep the ruleset current (recommended before each scanning session):

    ./hayabusa/hayabusa.exe update-rules      # Windows
    ./hayabusa/hayabusa update-rules          # Linux/macOS
    

Running the server

python server.py

This starts the MCP server over stdio. Point an MCP client at it, e.g. in Claude Desktop's config:

{
  "mcpServers": {
    "hayabusa": {
      "command": "python",
      "args": ["C:\\path\\to\\mcp-hayabusa\\server.py"]
    }
  }
}

Tool: scan_evtx

Scans an EVTX file (or a directory of EVTX files) with Hayabusa and returns detections as structured JSON.

Parameters:

  • evtx_path (string, required) — path to a .evtx file or a directory containing them
  • min_severity (string, optional, default "informational") — minimum severity to include: informational, low, medium, high, critical
  • rule_filter (string, optional) — case-insensitive substring match against each detection's rule title (e.g. "lateral" or "mimikatz"); only matching detections are returned. Hayabusa has no native rule-title filter, so this is applied after the scan.
  • output_format (string, optional, default "summary") — "summary" returns condensed detections (Timestamp, RuleTitle, Level, Computer, Channel, EventID, RecordID); "full" includes the complete Details/ExtraFieldInfo payload for each detection
  • max_results (integer, optional) — caps the number of detections returned, applied after rule_filter

Returns:

{
  "evtx_path": "...",
  "min_severity": "...",
  "rule_filter": "...",
  "output_format": "...",
  "total_count": 68,
  "count": 42,
  "truncated": false,
  "detections": [ { "Timestamp": "...", "RuleTitle": "...", "Level": "...", "...": "..." } ]
}

total_count is the number of matching detections before max_results is applied; count is the number actually returned; truncated is true if max_results cut off results.

On failure (missing file, missing Hayabusa binary, invalid min_severity/output_format/max_results, scan timeout, or a Hayabusa scan error), it returns {"error": "..."} instead of raising.

Tool: get_hayabusa_rules

Lists available Hayabusa/Sigma detection rules from ./hayabusa/rules/, optionally filtered by keyword. Useful for seeing what detections exist before scanning, or for finding a good rule_filter value for scan_evtx. Hayabusa has no built-in rule-listing command, so this reads and parses the rule YAML files directly.

Parameters:

  • keyword (string, optional) — case-insensitive substring matched against each rule's title, description, tags, and id. If omitted, all rules are listed (subject to max_results)
  • max_results (integer, optional, default 100) — caps the number of rules returned

Returns:

{
  "keyword": "...",
  "total_count": 66,
  "count": 66,
  "truncated": false,
  "rules": [
    {
      "id": "...",
      "title": "...",
      "level": "...",
      "status": "...",
      "description": "...",
      "logsource": { "product": "windows", "service": "..." },
      "tags": ["attack.lateral-movement", "..."],
      "file": "hayabusa\\builtin\\System\\Sys_7045_Med_LateralMovement-PSEXEC.yml"
    }
  ]
}

total_count is the number of matching rules before max_results is applied; count is the number actually returned; truncated is true if max_results cut off results.

A keyword search checks a raw-text prefilter before parsing each rule's YAML, so it typically runs in ~1-2 seconds. Listing all ~5,000 rules with no keyword takes several seconds longer since every rule file must be parsed.

On failure (missing rules directory or invalid max_results), it returns {"error": "..."} instead of raising.

Requirements

  • Python with the mcp and pyyaml libraries (see requirements.txt)
  • The Hayabusa CLI, installed via download_hayabusa.py

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured