Windows Forensics MCP Server
Windows Forensics MCP Server enables Windows DFIR from Linux by parsing, searching, correlating, and timeline-building across native Windows forensic artifacts without a Windows runtime.
Parse and search EVTX logs: stats, security-event queries, attack summaries, event-ID explanations, filters, pagination, and JSONL export.
Analyze registry hives: keys/values, persistence, SAM users, USB history, system/network info, and paginated/exact/regex queries.
Examine execution artifacts: Prefetch, Amcache, SRUM, static PE analysis, and API import/attack-pattern detection.
Reconstruct file-system activity: MFT with ADS/timestomping detection, USN Journal changes, deleted files, and unified timelines.
Investigate user activity: browser history/downloads, LNK files, ShellBags, RecentDocs, and Windows Search EDB parsing.
Analyze API Monitor captures: parse APMX, extract call details, detect patterns, correlate handles, and summarize injection chains.
Hunt IOCs across artifacts and behavioral IoC packs; README also lists YARA, VirusTotal, DiE, PCAP, offline NTDS, and remote WinRM collection.
Run high-level orchestrators for execution proof, user-activity correlation, IOC hunting, and timeline building; ingest Eric Zimmerman CSVs.
Enables forensic analysis of Firefox browser history and downloads to reconstruct user activity on Windows systems.
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., "@Windows Forensics MCP Server show me failed logon attempts in Security.evtx"
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.
Windows Forensics MCP Server
Windows DFIR from Linux - A comprehensive forensics toolkit designed for Linux environments with no Windows runtime dependencies. Parse Windows artifacts natively, with an optional Rust SIDR sidecar for Windows Search.
Related Projects
mem_forensics-mcp - Unified Memory Forensics MCP Server - Multi-tier engine combining Rust speed with Vol3 coverage
mac_forensics-mcp - macOS DFIR - Unified Logs, FSEvents, Spotlight, Plists, SQLite databases, Extended Attributes
Related MCP server: Self-Assembling Forensic MCP Server
Features
Core Forensics
Category | Capabilities |
EVTX Logs | Compact structured queries, field filters, logon correlation, NTLM summaries, and JSONL export |
Offline NTDS | Query exact SAM accounts, domain SIDs, and trust metadata without credential decryption |
Registry | Analyze SAM, SYSTEM, SOFTWARE, SECURITY, and NTUSER.DAT; paginated queries, normalized FILETIMEs, and USBSTOR/WPD correlation |
Remote Collection | Collect artifacts via WinRM (password or pass-the-hash) |
Execution Artifacts
Category | Capabilities |
PE Analysis | Static analysis with hashes (MD5/SHA1/SHA256/imphash), imports, exports, packer detection |
Prefetch | Execution evidence with run counts, timestamps, loaded files |
Amcache | SHA1 hashes and first-seen timestamps from Amcache.hve |
SRUM | Exact application/time filtering, raw resource counters, network MB/MiB totals, and optional aggregation from SRUDB.dat |
File System Artifacts
Category | Capabilities |
MFT | Master File Table parsing with ADS metadata and timestomping detection |
USN Journal | Change journal for file operations and deleted file recovery |
Timeline | Unified timeline from MFT, USN, Prefetch, Amcache, EVTX |
User Activity
Category | Capabilities |
Browser | Edge, Chrome, Firefox history and downloads |
LNK Files | Windows shortcut analysis for recently accessed files |
ShellBags | Folder navigation history from both UsrClass.dat and NTUSER.DAT, incl. UNC shares and browsed archive interiors (libfwsi) |
RecentDocs | Registry-based recent document tracking |
Windows Search | SIDR-backed |
Network Forensics
Category | Capabilities |
PCAP Analysis | Parse PCAP/PCAPNG files - conversations, DNS queries, HTTP requests, suspicious connections |
API Monitor Capture Analysis
Category | Capabilities |
APMX Parsing | Parse API Monitor captures (.apmx64/.apmx86) - process metadata, API call extraction, parameter values |
Pattern Detection | Detect injection, hollowing, credential dumping, and other attack patterns from captured API call sequences with MITRE ATT&CK mapping |
Handle Correlation | Track handle values across calls to reconstruct attack chains (OpenProcess -> VirtualAllocEx -> WriteProcessMemory -> CreateRemoteThread) |
Injection Analysis | Extract enriched injection chain details: target PID/process, shellcode size, allocation addresses, technique classification |
API Knowledge Base | 26,944 Windows API definitions with parameter signatures, DLL mappings, and category browsing |
Malware Detection
Category | Capabilities |
YARA Scanning | 718 rules from signature-base - APT, ransomware, webshells, hacktools |
IoC Packs | Behavioral IoC packs for hunting across exported logs, filenames, and PCAP payloads; includes optional GPL-2.0 |
VirusTotal | Hash/IP/domain reputation lookups with caching and rate limiting (free tier supported) |
DiE Integration | Detect packers (UPX, Themida, VMProtect), compilers, .NET, installers via Detect It Easy |
Orchestrators
Tool | What It Does |
| Correlates Prefetch + Amcache + SRUM to answer "Was this binary executed?" |
| Correlates Browser + ShellBags + LNK + RecentDocs for user activity timeline |
| Searches for IOC (hash/filename/IP/domain) across ALL artifact sources + optional YARA scanning |
| Hunts behavioral IoCs from bundled/external metadata packs such as |
| Builds unified forensic timeline from multiple sources |
Utilities
Tool | What It Does |
| Import Eric Zimmerman tool CSV output (MFTECmd, PECmd, AmcacheParser) |
Installation
Prerequisites
# Install uv (fast Python package manager)
curl -LsSf https://astral.sh/uv/install.sh | sh
source ~/.bashrc
# Ensure Python 3.10+
python3 --versionInstall from PyPI
uv tool install winforensics-mcpInstall from source
git clone https://github.com/x746b/winforensics-mcp.git
cd winforensics-mcp
# Install with uv (recommended)
uv sync
# Or install with all optional extras
uv venv && source .venv/bin/activate
uv pip install -e ".[all]"Windows Search parsing uses SIDR 0.9.2. The source repository includes stripped Linux releases for ARM64 (.tools/sidr) and x86_64 (.tools/sidr_x86), built from the pinned commit recorded in their adjacent manifests. Either architecture can rebuild that exact revision with:
bash scripts/build_sidr.shThe server discovers SIDR from an explicit tool argument, WINFORENSICS_SIDR_PATH, the architecture-matched bundled binary, or PATH, in that order. It never downloads or builds executables at runtime. Build or supply SIDR 0.9.2 separately on unsupported platforms. Without SIDR, windows_search_parse uses a clearly marked partial pyesedb fallback that cannot recover every compressed long value.
Verify
uv run python -m winforensics_mcp.server
# Should start without errors (Ctrl+C to exit)Add to an MCP client
Register winforensics-mcp as a local stdio server in your MCP client's settings. Configuration format and location depend on the client. For clients that accept mcpServers JSON, a PyPI install (uv tool install winforensics-mcp) looks like this:
{
"mcpServers": {
"winforensics-mcp": {
"command": "winforensics-mcp"
}
}
}For a source checkout (uv sync), use:
{
"mcpServers": {
"winforensics-mcp": {
"command": "uv",
"args": ["run", "--directory", "/path/to/winforensics-mcp", "python", "-m", "winforensics_mcp.server"]
}
}
}Replace the example path with the absolute path to your checkout. If your client uses a different configuration format, enter the same command and arguments through its MCP server settings. Make sure winforensics-mcp or uv, respectively, is on the client's PATH, then use the client's MCP server list to confirm it connects.
Quick Start Examples
Was This Binary Executed?
Investigate if mimikatz.exe was executed on the system at /mnt/evidenceThe investigate_execution orchestrator checks Prefetch, Amcache, and SRUM:
{
"target": "mimikatz.exe",
"execution_confirmed": true,
"confidence": "HIGH",
"evidence": [
{"source": "Prefetch", "finding": "Executed 3 times, last at 2024-03-15T14:23:45Z"},
{"source": "Amcache", "finding": "SHA1: abc123..., First seen: 2024-03-14T09:00:00Z"},
{"source": "SRUM", "finding": "Network: 15.2 MB sent; Foreground: 47 seconds"}
]
}Hunt for IOC Across All Artifacts
Hunt for the hash 204bc44c651e17f65c95314e0b6dfee586b72089 in /mnt/evidenceThe hunt_ioc tool searches Prefetch, Amcache, SRUM, MFT, USN, Browser, EVTX, and optionally YARA:
{
"ioc": "204bc44c651e17f65c95314e0b6dfee586b72089",
"ioc_type": "sha1",
"found": true,
"sources_with_hits": ["Amcache", "MFT"],
"findings": [
{"source": "Amcache", "matches": 1, "details": "bloodhound.exe"},
{"source": "MFT", "matches": 1, "details": "Users\\Admin\\Downloads\\bloodhound.exe"}
]
}Compact EVTX and Offline AD Queries
Use compact, fields, where, and max_chars to keep EVTX results focused:
{
"evtx_path": "/evidence/Security.evtx",
"event_ids": [4724],
"where": {"EventData.SubjectUserName": {"neq": "Administrator"}},
"compact": true,
"fields": ["EventID", "TimeCreated", "EventData.TargetUserName"],
"max_chars": 12000
}Follow next_cursor with the same query; evtx_get_event opens a full record.
Use the helpers below for logon correlation, rare-first NTLM summaries, and JSONL
exports. Descriptor tools decode explicit hex/base64 and report unavailable
values honestly. NTDS tools query account, domain, and trust metadata without
SYSTEM or credential decryption.
See the query reference for examples, limits, and completeness semantics.
Tool Reference
Orchestrators (High-Level Investigation)
Tool | Description |
| Correlate Prefetch/Amcache/SRUM to prove binary execution |
| Correlate Browser/ShellBags/LNK/RecentDocs for user activity |
| Hunt IOC (hash/filename/IP/domain) across all artifacts; |
| Build unified timeline from multiple artifact sources |
Execution Artifacts
Tool | Description |
| Static PE analysis - hashes, imports, exports, Authenticode program name, packer detection |
| Parse Prefetch for execution evidence |
| Parse Amcache.hve for SHA1 hashes and timestamps |
| Parse SRUDB.dat with exact/regex app filters, UTC ranges, derived network units, and optional aggregation |
Malware Detection (YARA)
Tool | Description |
| Scan file with 718 YARA rules (Mimikatz, CobaltStrike, webshells, APT, ransomware) |
| Batch scan directory for malware |
| List available/bundled YARA rules |
Behavioral IoC Packs
Tool | Description |
| List bundled and external IoC packs with license metadata |
| Hunt behavioral IoCs across text exports, filenames, and PCAP payloads |
Threat Intelligence (VirusTotal)
Tool | Description |
| Look up file hash (MD5/SHA1/SHA256) on VirusTotal |
| Bounded sandbox domains, URLs, commands, registry/file writes; optional full-result persistence |
| Get IP address reputation and geolocation |
| Get domain reputation and categorization |
| Calculate file hashes and look up on VirusTotal |
Network Forensics (PCAP)
Tool | Description |
| Get PCAP statistics - packet counts, protocols, top talkers |
| Extract TCP/UDP conversations with byte counts |
| Extract DNS queries and responses |
| Extract HTTP requests with URLs, methods, user-agents |
| Search packet payloads for strings or regex patterns |
| Detect C2 indicators, beaconing, DNS tunneling |
API Monitor Capture Analysis (APMX)
Tool | Description |
| Parse .apmx64/.apmx86 capture - process info, modules, call counts |
| Extract API calls with filtering, pagination, and time range support |
| Detailed records with parameter values, return values, timestamps |
| Detect attack patterns (injection, hollowing, credential dumping) with MITRE ATT&CK IDs |
| Track handle producer/consumer chains across API calls |
| Enriched injection chain extraction (target PID, shellcode size, technique) |
| Context window of calls around a specific record |
| Search all records for a specific parameter value |
| Full PE import analysis with pattern detection and MITRE ATT&CK mapping |
| Detect attack patterns from PE import tables |
| Look up Windows API signature (26,944 APIs with params, DLL, category) |
| Browse APIs by category (e.g., "Process Injection", "File Management") |
Packer Detection (DiE)
Tool | Description |
| Analyze file for packers, compilers, protectors, .NET |
| Batch scan directory for packed executables |
| Get info about packer (difficulty, unpack tools) |
File System
Tool | Description |
| Parse $MFT with ADS metadata and timestomping detection |
| Parse $J for file operations and deleted files |
User Activity
Tool | Description |
| Parse Edge/Chrome/Firefox history and downloads |
| Parse Windows shortcuts for target paths |
| Parse ShellBags (UsrClass.dat + NTUSER.DAT) for folder navigation, network shares and archive browsing |
| Parse an explicit |
Offline Active Directory
Tool | Description |
| Read allowlisted metadata for an exact offline SAM account selector |
| Return SID metadata with explicit ambiguity/completeness status |
| Read domain metadata and evidence-backed forest-root attribution |
| Read paginated trust metadata without authentication secrets |
Event Logs
Tool | Description |
| List EVTX files in a directory |
| Get event counts, time range, Event ID distribution |
| Search with filters, compact field projection, response budgets, and stable continuation |
| Retrieve a full normalized event using its source-bound reference |
| Join subject/target LUID occurrences within an explicit time window |
| Persist filtered JSONL with a hash, completion diagnostics, and bounded preview |
| Group NTLM 4021/4022/4023 events and surface rare process/user combinations |
| Decode bounded self-relative descriptor bytes from explicit hex/base64 |
| Describe an EVTX attribute descriptor or report its source placeholder |
| Pre-built security event searches (logon, process creation, etc.) |
| Compact TSV summary for rapid triage - one line per event, attack-relevant columns only |
| Get Event ID description |
Registry
Tool | Description |
| Get specific key and values |
| Search values by pattern |
| Paginated exact/substring/regex registry query with subtree scope, field projection, and diagnostics |
| Get Run keys and services |
| Get user accounts from SAM |
| Correlate USBSTOR identity, physical serial, WPD device names, and secondary volume labels |
| Get OS version, hostname, timezone |
| Get network configuration |
Utilities
Tool | Description |
| Import Eric Zimmerman CSV output (MFTECmd, PECmd, AmcacheParser, SrumECmd) |
| List important Event IDs by channel |
| List forensic registry keys by category |
Remote Collection
Tool | Description |
| Collect artifacts via WinRM (password or pass-the-hash) |
| Get remote system info |
Configuration
VirusTotal API Key
# Option 1: Environment variable
export VIRUSTOTAL_API_KEY="your-api-key-here"
# Option 2: Config file
mkdir -p ~/.config/winforensics-mcp
echo "your-api-key-here" > ~/.config/winforensics-mcp/vt_api_keyGet your free API key at virustotal.com. Free tier is rate-limited to 4 requests/minute; the client handles rate limiting and caches results for 24 hours.
Troubleshooting
DiE (Detect It Easy) not found
# Debian/Ubuntu
sudo apt install detect-it-easy
# Or download from https://github.com/horsicq/DIE-engine/releasesSIDR not found
Source checkouts include stripped SIDR releases for Linux ARM64 and x86_64. To rebuild the pinned revision for the current Rust target, run:
bash scripts/build_sidr.shFor another installation, set WINFORENSICS_SIDR_PATH to a SIDR 0.9.2 executable. The parser reports the executable path, version, SHA-256, database state, extraction completeness, and evidence hashes in every response. See .tools/SIDR-LICENSE for the bundled sidecar's Apache-2.0 license.
Remove MCP Server
Remove the winforensics-mcp entry from your MCP client's server settings.
License
Credits: omerbenamram/evtx (Rust EVTX parser), strozfriedberg/sidr (Windows Search), Rohitab Batra (API Monitor), Neo23x0/signature-base (YARA rules), horsicq/DIE-engine (Detect It Easy)
Core winforensics-mcp code is MIT licensed. See LICENSE.
Optional bundled IoC packs may use different licenses:
winforensics_mcp/ioc_packs/impacket-iocscontains material derived from ThatTotallyRealMyth/Impacket-IoCs and is licensed under GPL-2.0. Seewinforensics_mcp/ioc_packs/impacket-iocs/LICENSE.
Built for the DFIR community. No Windows required >)
Available Tools
55 toolsapi_analyze_importsA
Detailed PE import analysis with pattern detection and API enrichment. Extracts all imports, detects injection/evasion/persistence patterns with MITRE ATT&CK mapping, and optionally enriches with API definitions.
Inputs: file_path (required), enrich_from_db, detect_patterns.
api_detect_patternsA
Detect injection/evasion/persistence API patterns from PE imports. Returns matched patterns with MITRE ATT&CK technique IDs and risk levels.
Inputs: file_path (required).
api_lookupA
Look up Windows API definition (signature, params, DLL, category) from the API Monitor knowledge base. Supports wildcards (e.g., 'Create*').
Inputs: api_name (required), include_params.
api_search_categoryA
Browse/search Windows APIs by category. Categories are hierarchical (e.g., 'Data Access and Storage/Local File Systems/File Management').
Inputs: category (required), limit.
apmx_calls_aroundA
Get a context window of API calls around a specific record index. Returns detailed call records in the range [call_index-before, call_index+after]. Useful for understanding what happened immediately before and after a suspicious call.
Inputs: file_path (required), call_index (required), after, before, +1 more.
apmx_correlate_handlesA
Track handle values across API calls to reconstruct operation chains. Identifies handle-producing APIs (OpenProcess, CreateFile, etc.) and traces where those handles are consumed (VirtualAllocEx, WriteProcessMemory, etc.). Reveals attack chains like: OpenProcess -> VirtualAllocEx -> WriteProcessMemory -> CreateRemoteThread.
Inputs: file_path (required), limit, target_apis, process_index.
apmx_detect_patternsA
Detect injection/evasion/persistence patterns in APMX captured API calls. Analyzes runtime behavior (actually-called APIs) against known attack patterns with MITRE ATT&CK technique IDs. Returns risk level and suspicious call timeline.
Inputs: file_path (required), process_index.
apmx_get_call_detailsA
Extract detailed API call records with parameter values, return values, and timestamps from an APMX capture. Shows pre-call and post-call parameter values, identifies return values by comparing pre/post state, and extracts embedded strings. Use call_indices for specific records or api_filter to search.
Inputs: file_path (required), limit, offset, api_filter, +2 more.
apmx_get_callsA
Extract API call records from an APMX capture with filtering and pagination. Each record shows the top-level API and any nested calls made within it.
Inputs: file_path (required), limit, offset, api_filter, +3 more.
apmx_injection_infoB
Extract enriched injection chain details from an APMX capture. Returns target PID, target process name, shellcode size (requested vs aligned), start address, and injection technique label. Wraps handle correlation with parameter decoding for a forensic-friendly summary.
Inputs: file_path (required), process_index.
apmx_parseA
Parse Rohitab API Monitor capture file (.apmx64/.apmx86). Returns process info (name, PID, path, command line), loaded modules, and API call count. Use this first to understand what's in a capture.
Inputs: file_path (required).
apmx_search_paramsA
Search API calls by parameter value in an APMX capture. Finds all calls where a specific integer (e.g., PID, handle, size) or string appears as a parameter value. Returns matching calls with the matched parameters highlighted.
Inputs: value (required), file_path (required), limit, process_index.
browser_get_historyA
Parse browser history and downloads from Edge, Chrome, or Firefox. Answers: What URLs did the user visit? What files were downloaded? Where did downloads originate from?
Inputs: history_path (required), limit, browser, url_filter, +4 more.
build_timelineA
Build comprehensive forensic timeline from multiple artifact sources (MFT, USN Journal, Prefetch, Amcache, EVTX). Returns sorted, deduplicated events. Answers: What happened and when? Provides unified chronological view of system activity.
Inputs: artifacts_dir (required), limit, sources, mft_path, +7 more.
disk_parse_amcacheA
Parse Amcache.hve to extract program execution evidence with SHA1 hashes, file paths, and timestamps. Proves a file existed and was prepared for execution.
Inputs: amcache_path (required), limit, name_filter, path_filter, +3 more.
disk_parse_mftA
Parse $MFT (Master File Table) for file metadata, NTFS alternate data streams (ADS), and timestomping detection. Compares $STANDARD_INFORMATION and $FILE_NAME timestamps to identify manipulation. Answers: When was this file actually created? Has it been timestomped? Does it have named streams?
Inputs: mft_path (required), limit, files_only, output_mode, +6 more.
disk_parse_prefetchA
Parse Windows Prefetch files to determine program execution history, run counts, and last execution times. Can parse a single .pf file or an entire Prefetch directory. Supports pagination.
Inputs: path (required), limit, offset, executable_filter, +1 more.
disk_parse_srumA
Parse SRUDB.dat for raw application resource counters and network bytes sent/received. Supports application and UTC time filters, derived MB/MiB, and optional network aggregation. Resource counters are not interpreted as elapsed runtime.
Inputs: srum_path (required), limit, table, app_filter, +4 more.
disk_parse_usn_journalA
Parse $UsnJrnl:$J (USN Journal) for file system change history. Records file creation, deletion, modification, and rename operations. Answers: What files were created/deleted/renamed? When did file changes occur?
Inputs: usn_path (required), limit, files_only, output_mode, +6 more.
evtx_attack_summaryA
Compact TSV summary of security events for rapid triage. Returns one tab-separated line per event with only attack-relevant columns. Fits entire attack chains in a single call. Types: process_creation (Timestamp|User|ParentProcess|CommandLine), logon (Timestamp|User|SourceIP|LogonType), account_created (Timestamp|NewUser|CreatedBy), scheduled_task, service_installed.
Inputs: evtx_path (required), limit, contains, event_type, +1 more.
evtx_correlate_logon_idC
Find subject/target occurrences of one logon ID in an explicit time window (maximum seven days). Rows retain computer, role, original ID and event reference; matching IDs alone do not establish identity across hosts or reboots.
Inputs: end_time (required), logon_id (required), evtx_path (required), start_time (required), +7 more. Returns: events, offset, returned, next_cursor, +8 more
evtx_describe_security_descriptorB
Describe a security-descriptor value in a source-bound EVTX event. Preserves provenance and reports source placeholders such as Malformed Security Descriptor without inventing missing SIDs.
Inputs: encoding (required), event_ref (required), evtx_path (required), field, +2 more. Returns: dacl, sacl, group, owner, +6 more
evtx_explain_event_idC
Get description of a Windows Event ID.
Inputs: event_id (required), channel.
evtx_exportB
Persist all selected EVTX matches in a unique JSONL file with SHA-256 and a bounded preview. Explicit scan/row caps report incomplete; preview clipping does not discard file rows.
Inputs: evtx_path (required), output_dir (required), where, fields, +14 more. Returns: path, sha256, preview, exported_rows, +10 more
evtx_get_eventA
Retrieve a full normalized event using a source-bound event_ref from evtx_search. Never shortens evidence fields.
Inputs: event_ref (required), evtx_path (required), max_chars. Returns: event, returned_chars, payload_clipped, serialized_chars
evtx_get_statsA
Get statistics about an EVTX file: event counts, time range, Event ID distribution.
Inputs: evtx_path (required).
evtx_list_filesC
List all EVTX (Windows Event Log) files in a directory.
Inputs: directory (required), recursive.
evtx_ntlm_operational_summaryA
Summarize NTLM Operational events 4021/4022/4023, aggregate repeated shapes, and explicitly order rare process/user combinations first. Preserves counts, timestamps and event references, with bounded distributions and honest unknown statuses.
Inputs: evtx_path (required), limit, order, cursor, +15 more. Returns: events, offset, returned, next_cursor, +8 more
evtx_searchB
Search EVTX events by time, Event ID, keywords, or provider. Supports compact structured projection, whole-record budgets, and source-bound continuation cursors. File-record order is preserved.
Inputs: evtx_path (required), limit, where, cursor, +14 more.
evtx_security_searchB
Search Security events by named type, with the same compact fields, response budgets, and continuation controls as evtx_search.
Inputs: evtx_path (required), event_type (required), limit, where, +9 more.
file_analyze_peA
Perform static analysis on Windows PE files (EXE/DLL/SYS). Extracts headers, imports, exports, sections, hashes, Authenticode metadata including SpcSpOpusInfo program name, and suspicious indicators.
Inputs: file_path (required), detail_level, extract_strings, calculate_hashes, +1 more.
forensics_list_important_eventsB
List important Event IDs for a log channel.
Inputs: channel (required).
forensics_list_registry_keysC
List forensically important registry keys.
Inputs: category.
hunt_iocA
Hunt for IOC (hash, filename, IP, domain) across all forensic artifacts. Searches Prefetch, Amcache, SRUM, MFT, USN Journal, Browser History, EVTX logs, and optionally YARA rules. Answers: Where does this IOC appear? Was this file/hash/domain seen on the system? Is it known malware?
Inputs: ioc (required), artifacts_dir (required), ioc_type, mft_path, +8 more.
hunt_ioc_packA
Hunt behavioral IoCs from a metadata pack across exported logs, text artifacts, filenames, and PCAP payloads. Bundled pack: impacket-iocs.
Inputs: artifacts_dir (required), pack, limit, max_files, +4 more.
ingest_parsed_csvA
Import pre-parsed CSV from Eric Zimmerman tools (MFTECmd, PECmd, AmcacheParser, SrumECmd) for querying. Auto-detects CSV type by column headers. Useful when you already have parsed output from EZ tools.
Inputs: csv_path (required), limit, csv_type, filter_field, +3 more.
investigate_executionA
Comprehensive execution analysis. Correlates Prefetch, Amcache, and SRUM to prove or disprove binary execution. Answers: Was this binary executed? When? How long did it run? Provides confidence scoring and unified timeline.
Inputs: target (required), artifacts_dir (required), srum_path, amcache_path, +3 more.
investigate_user_activityA
Comprehensive user activity investigation. Correlates Browser History, ShellBags, LNK files, and RecentDocs to build a complete picture of user activity. Answers: What did the user browse? What files did they access? What folders did they navigate?
Inputs: artifacts_dir (required), limit, keyword, lnk_path, +7 more.
ioc_pack_listA
List bundled and optional external behavioral IoC packs, including license metadata and rule counts.
Inputs: extra_paths.
ntds_get_domain_infoB
Read domain metadata and evidence-backed forest-root identification from offline NTDS. Local-domain attribution retains relationship/liveness uncertainty; no SID-prefix guessing or credential extraction.
Inputs: ntds_path (required), max_scan, domain_dn, max_chars, +1 more. Returns: domains, forest_root, local_domain, scan_complete, +6 more
ntds_get_object_by_samA
Read allowlisted offline NTDS metadata for one exact SAM name. Retained deleted/recycled matches are flagged; duplicate matches are explicit. Does not decrypt credentials or require SYSTEM.
Inputs: ntds_path (required), sam_account_name (required), fields, max_scan, +3 more. Returns: status, objects, returned, matched_count, +8 more
ntds_get_object_sidA
Resolve an exact SAM selector to offline NTDS SID metadata. Reports not-found, ambiguity, and incomplete evidence explicitly; never selects an arbitrary duplicate.
Inputs: ntds_path (required), sam_account_name (required), max_scan, domain_dn, +2 more. Returns: status, objects, returned, matched_count, +8 more
ntds_get_trustsA
Read paginated offline trusted-domain metadata: partner, SID, direction/type/attributes, and provenance. Excludes trust authentication secrets; never replays logs or repairs the database.
Inputs: ntds_path (required), limit, cursor, offset, +4 more. Returns: trusts, returned, next_cursor, next_offset, +8 more
registry_get_keyC
Get registry key and values from a hive file.
Inputs: key_path (required), hive_path (required), max_depth.
registry_get_networkC
Get network configuration from SYSTEM hive.
Inputs: system_hive (required).
registry_get_persistenceB
Get persistence mechanisms (Run keys, Winlogon values, services) from registry.
Inputs: ntuser_hive, system_hive, software_hive, include_microsoft_services.
registry_get_system_infoC
Get OS version, computer name, timezone from registry.
Inputs: system_hive (required), software_hive (required).
registry_get_usb_historyC
Get USBSTOR device identities and WPD names from SYSTEM hive. first_connected is the legacy USBSTOR key last-write timestamp.
Inputs: system_hive (required).
registry_get_usersC
Get user accounts from SAM hive.
Inputs: sam_path (required).
registry_queryA
Query registry values with exact, substring, or regex matching, subtree scope, field projection, and pagination. Returns results and total_matched over the readable subtree, with read diagnostics. Follow next_offset for the next page.
Inputs: pattern (required), hive_path (required), limit, fields, +7 more.
registry_searchC
Search registry values by pattern.
Inputs: pattern (required), hive_path (required), limit, search_data, +1 more.
security_descriptor_decodeA
Decode bounded self-relative Windows security-descriptor bytes from explicit hex or base64. Reports owner/group, ACL states, ACE masks/SIDs and structural diagnostics; does not infer effective access.
Inputs: value (required), encoding (required), max_aces, max_chars. Returns: dacl, sacl, group, owner, +6 more
user_parse_lnk_filesB
Parse Windows shortcut (.lnk) files to determine target paths, access times, and volume information. Answers: What files did the user access recently? What were the original file locations?
Inputs: path (required), limit, recursive, recent_only, +2 more.
user_parse_shellbagsA
Parse ShellBags to reveal folder navigation history, including UNC network shares and the interior of ZIP archives browsed in Explorer. Parses BOTH the UsrClass.dat BagMRU and the matching NTUSER.DAT BagMRU (auto-detected), since some entries exist in only one hive. Reports long folder names, created/modified times and 'last_viewed' (last interacted). Answers: Which folders did the user access? When did they browse suspicious paths? What network shares and archives did they open?
Inputs: usrclass_path (required), limit, ntuser_path, path_filter, +2 more.
windows_search_parseA
Parse an explicit Windows Search EDB using SIDR 0.9.2. Returns file, internet history, and activity history reports with extraction completeness and evidence hashes. Uses a partial PropertyStore fallback if SIDR is absent. Text filters are case-insensitive substrings combined with AND. Time bounds are inclusive UTC: file DateModified, internet Link_DateVisited, activity StartTime. Incomplete zero results are not conclusive.
Inputs: edb_path (required), limit, query, fields, +10 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 55 tools
Several tools have overlapping purposes, such as api_analyze_imports vs api_detect_patterns, evtx_search vs evtx_security_search, and registry_query vs registry_search vs registry_get_key. Descriptions help distinguish them, but the volume of similar-sounding tools creates moderate ambiguity.
Most tool names follow a snake_case pattern with domain prefixes (e.g., api_, apmx_, evtx_, registry_, disk_parse_). A few tools lack a domain prefix (build_timeline, hunt_ioc, investigate_execution), but overall naming is predictable and readable.
With 55 tools, the server is far above the typical 3-15 range and exceeds the 25-tool threshold for 'too many.' While the broad forensics domain justifies many tools, the count is heavy and likely to overwhelm agents.
The server covers a wide range of Windows forensic artifacts (API captures, NTDS, EVTX, registry, disk, user activity, browser). Minor gaps exist, such as no ShimCache, Jump List, or Recycle Bin parsing, and no acquisition tools, but core parsing and analysis needs are well met.
Maintenance
Related MCP Connectors
Security log tools: Windows/Entra error codes, log explainer, IP blocklists, attack scans
Browser-local and CLI static evidence for deployed AI model artifacts.
55 tools, 7 Resources, Sigma rules, email SPF/DMARC, MITRE, CVE/KEV, risk_score. No key.
Offline methodology engine for authorized penetration testing, CTF, and security research.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables autonomous digital forensics and incident response through 21 typed forensic tools covering disk, memory, registry, network, timeline, carving, and patterns, integrated with AI-driven reasoning and self-correction.MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to perform digital forensics analysis including memory analysis, file metadata inspection, and threat-intelligence lookups.10 npmISC
- AlicenseNot gradedqualityDmaintenanceEnables Windows event log forensics by wrapping Hayabusa, offering EVTX scanning, Sigma rule exploration, ATT&CK coverage analysis, and detection engineering resources.MIT
- FlicenseAqualityCmaintenanceEnables AI agents to perform digital forensics and incident response tasks by dynamically discovering and utilizing host tools for memory analysis, metadata extraction, threat detection, and file dissection.51-