EventWhisper — A Windows Event Log MCP
EventWhisper exposes fast, scriptable access to Windows .evtx
logs via an MCP (Model Context Protocol) server.
It’s pure Python (uses the evtx
library), instead of a PowerShell wrapper and does not execute commands on the host — safer for incident response, digital forensics, and threat hunting.
The server exposes two primary tools:
- List EVTX files (optionally recursive) for any directory.
- Filter events to directly search for specific records.
Built specifically for IR/DFIR & hunting so you don’t need to look up Event IDs all day. Designed, developed, and tested on Windows with Claude — and usable from any MCP client.
Features
- Targeted filtering: time window, EventID(s), and case-insensitive keywords (include/exclude)
- Field projection: return only the dotted paths you need (huge output reduction)
- Input normalization: accepts flexible input formats so it still works if types/format aren’t perfect.
- MCP-ready: plugs into Claude Desktop (and other MCP clients)
Demo
https://github.com/user-attachments/assets/e1878c86-56f6-466b-bbc4-04d1edeeb36b
Requirements (Windows)
EventWhisper can be set up with Poetry, whether you run it inside Claude or standalone.
On Windows, make sure Poetry is on your PATH
.
Install Poetry (PowerShell):
Add Poetry to PATH (user install):
Verify:
Install & Run
Primarily developed for use with Claude, but you can run the MCP server standalone and plug it into other LLMs.
Clone and install:
Run the MCP server:
Claude MCP configuration
Add this to Claude Desktop’s MCP config (e.g., %AppData%\Claude\claude_desktop_config.json
):
Open Settings → Developer to confirm EventWhisper is registered and “running”.
When prompted, allow the tool:
Try a first prompt:
Use EventWhisper to list
.evtx
files inC:\Windows\System32\winevt\Logs
.
Development
EventWhisper was written to be simple and maintainable. We use pytest for tests and ruff for linting/formatting. Run everything locally (or via pre-commit):
When making pull requests, ensure all tests pass and coverage thresholds are met.
Every new utility or feature should include clear tests and follow PEP 8. Tests live in the tests/
directory.
Core layout & API
Primary logic lives in eventwhisper/evtxio/evtxio.py
— EVTX iteration/filtering/projection.
The core server function is get_events_from_evtx()
(a wrapper around the iterator iter_events_from_evtx()
):
Constants live in eventwhisper/utils/config.py
and include both:
RESULTS_LIMIT
— max number of events returned (LLMs have token/char caps).SCAN_LIMIT
— max events scanned to keep responses fast on huge logs.
Example Python usage
Run it with poetry run python example.py
.
Troubleshooting
- Big logs: results are capped by
RESULTS_LIMIT
and scanning is bounded to keep responses fast. If your MCP client doesn’t realize results are capped, run a second, narrower query. - “Blocked” files: if you downloaded
.evtx
from the Internet, right-click → Properties → Unblock. - Paths: in Python, prefer raw strings for Windows paths, e.g.,
r"C:\path\file.evtx"
. - README video: GitHub doesn’t render
<video>
; use a thumbnail → MP4 link (see Demo section).
Roadmap
- Faster scanning for very large
.evtx
files - Better normalization for malformed/corrupted EVTX
- Convenience utilities (e.g., quick overview: counts, unique EventIDs, time range)
- Optional paging / multi-query strategies for huge datasets
License
Distributed under the GPLv3. See LICENSE.
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
Enables fast, scriptable access to Windows .evtx event logs for incident response and digital forensics. Supports filtering events by time windows, Event IDs, and keywords with field projection to reduce output size.
Related MCP Servers
- -securityAlicense-qualityIntegrates with the Eventbrite API to provide AI-assisted event management capabilities for viewing events, tracking attendees, and generating analytics reports.Last updated -11MIT License
- -securityAlicense-qualityProvides programmatic access to ingest and query Windows event logs (especially Sysmon logs), enabling security monitoring, incident response, and log analysis automation.Last updated -MIT License
- AsecurityAlicenseAqualityEnables LLMs to query and analyze logs from SEQ structured logging server with capabilities for searching events, retrieving event details, analyzing log patterns, and accessing saved searches.Last updated -5MIT License
- -securityFlicense-qualityProvides access to event data from the Eventfinda API, allowing AI agents to search for events by location and retrieve detailed information including descriptions, dates, addresses, and ticket details.Last updated -2