Skip to main content
Glama
Windows Forensics MCP Server

Windows Forensics MCP Server

by x746b

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.


  • 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 Windows.edb file, internet-history, activity-history, and System.Search.AutoSummary recovery

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 impacket-iocs pack with 65 rules

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

investigate_execution

Correlates Prefetch + Amcache + SRUM to answer "Was this binary executed?"

investigate_user_activity

Correlates Browser + ShellBags + LNK + RecentDocs for user activity timeline

hunt_ioc

Searches for IOC (hash/filename/IP/domain) across ALL artifact sources + optional YARA scanning

hunt_ioc_pack

Hunts behavioral IoCs from bundled/external metadata packs such as impacket-iocs

build_timeline

Builds unified forensic timeline from multiple sources

Utilities

Tool

What It Does

ingest_parsed_csv

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 --version

Install from PyPI

uv tool install winforensics-mcp

Install 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.sh

The 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/evidence

The 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/evidence

The 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

investigate_execution

Correlate Prefetch/Amcache/SRUM to prove binary execution

investigate_user_activity

Correlate Browser/ShellBags/LNK/RecentDocs for user activity

hunt_ioc

Hunt IOC (hash/filename/IP/domain) across all artifacts; yara_scan=True adds YARA threat intel

build_timeline

Build unified timeline from multiple artifact sources

Execution Artifacts

Tool

Description

file_analyze_pe

Static PE analysis - hashes, imports, exports, Authenticode program name, packer detection

disk_parse_prefetch

Parse Prefetch for execution evidence

disk_parse_amcache

Parse Amcache.hve for SHA1 hashes and timestamps

disk_parse_srum

Parse SRUDB.dat with exact/regex app filters, UTC ranges, derived network units, and optional aggregation

Malware Detection (YARA)

Tool

Description

yara_scan_file

Scan file with 718 YARA rules (Mimikatz, CobaltStrike, webshells, APT, ransomware)

yara_scan_directory

Batch scan directory for malware

yara_list_rules

List available/bundled YARA rules

Behavioral IoC Packs

Tool

Description

ioc_pack_list

List bundled and external IoC packs with license metadata

hunt_ioc_pack

Hunt behavioral IoCs across text exports, filenames, and PCAP payloads

Threat Intelligence (VirusTotal)

Tool

Description

vt_lookup_hash

Look up file hash (MD5/SHA1/SHA256) on VirusTotal

vt_lookup_behavior

Bounded sandbox domains, URLs, commands, registry/file writes; optional full-result persistence

vt_lookup_ip

Get IP address reputation and geolocation

vt_lookup_domain

Get domain reputation and categorization

vt_lookup_file

Calculate file hashes and look up on VirusTotal

Network Forensics (PCAP)

Tool

Description

pcap_get_stats

Get PCAP statistics - packet counts, protocols, top talkers

pcap_get_conversations

Extract TCP/UDP conversations with byte counts

pcap_get_dns

Extract DNS queries and responses

pcap_get_http

Extract HTTP requests with URLs, methods, user-agents

pcap_search

Search packet payloads for strings or regex patterns

pcap_find_suspicious

Detect C2 indicators, beaconing, DNS tunneling

API Monitor Capture Analysis (APMX)

Tool

Description

apmx_parse

Parse .apmx64/.apmx86 capture - process info, modules, call counts

apmx_get_calls

Extract API calls with filtering, pagination, and time range support

apmx_get_call_details

Detailed records with parameter values, return values, timestamps

apmx_detect_patterns

Detect attack patterns (injection, hollowing, credential dumping) with MITRE ATT&CK IDs

apmx_correlate_handles

Track handle producer/consumer chains across API calls

apmx_get_injection_info

Enriched injection chain extraction (target PID, shellcode size, technique)

apmx_get_calls_around

Context window of calls around a specific record

apmx_search_params

Search all records for a specific parameter value

api_analyze_imports

Full PE import analysis with pattern detection and MITRE ATT&CK mapping

api_detect_patterns

Detect attack patterns from PE import tables

api_lookup

Look up Windows API signature (26,944 APIs with params, DLL, category)

api_search_category

Browse APIs by category (e.g., "Process Injection", "File Management")

Packer Detection (DiE)

Tool

Description

die_analyze_file

Analyze file for packers, compilers, protectors, .NET

die_scan_directory

Batch scan directory for packed executables

die_get_packer_info

Get info about packer (difficulty, unpack tools)

File System

Tool

Description

disk_parse_mft

Parse $MFT with ADS metadata and timestomping detection

disk_parse_usn_journal

Parse $J for file operations and deleted files

User Activity

Tool

Description

browser_get_history

Parse Edge/Chrome/Firefox history and downloads

user_parse_lnk_files

Parse Windows shortcuts for target paths

user_parse_shellbags

Parse ShellBags (UsrClass.dat + NTUSER.DAT) for folder navigation, network shares and archive browsing

windows_search_parse

Parse an explicit Windows.edb with SIDR; filter and paginate file, internet, activity, and indexed-content records

Offline Active Directory

Tool

Description

ntds_get_object_by_sam

Read allowlisted metadata for an exact offline SAM account selector

ntds_get_object_sid

Return SID metadata with explicit ambiguity/completeness status

ntds_get_domain_info

Read domain metadata and evidence-backed forest-root attribution

ntds_get_trusts

Read paginated trust metadata without authentication secrets

Event Logs

Tool

Description

evtx_list_files

List EVTX files in a directory

evtx_get_stats

Get event counts, time range, Event ID distribution

evtx_search

Search with filters, compact field projection, response budgets, and stable continuation

evtx_get_event

Retrieve a full normalized event using its source-bound reference

evtx_correlate_logon_id

Join subject/target LUID occurrences within an explicit time window

evtx_export

Persist filtered JSONL with a hash, completion diagnostics, and bounded preview

evtx_ntlm_operational_summary

Group NTLM 4021/4022/4023 events and surface rare process/user combinations

security_descriptor_decode

Decode bounded self-relative descriptor bytes from explicit hex/base64

evtx_describe_security_descriptor

Describe an EVTX attribute descriptor or report its source placeholder

evtx_security_search

Pre-built security event searches (logon, process creation, etc.)

evtx_attack_summary

Compact TSV summary for rapid triage - one line per event, attack-relevant columns only

evtx_explain_event_id

Get Event ID description

Registry

Tool

Description

registry_get_key

Get specific key and values

registry_search

Search values by pattern

registry_query

Paginated exact/substring/regex registry query with subtree scope, field projection, and diagnostics

registry_get_persistence

Get Run keys and services

registry_get_users

Get user accounts from SAM

registry_get_usb_history

Correlate USBSTOR identity, physical serial, WPD device names, and secondary volume labels

registry_get_system_info

Get OS version, hostname, timezone

registry_get_network

Get network configuration

Utilities

Tool

Description

ingest_parsed_csv

Import Eric Zimmerman CSV output (MFTECmd, PECmd, AmcacheParser, SrumECmd)

forensics_list_important_events

List important Event IDs by channel

forensics_list_registry_keys

List forensic registry keys by category

Remote Collection

Tool

Description

remote_collect_artifacts

Collect artifacts via WinRM (password or pass-the-hash)

remote_get_system_info

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_key

Get 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/releases

SIDR 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.sh

For 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-iocs contains material derived from ThatTotallyRealMyth/Impacket-IoCs and is licensed under GPL-2.0. See winforensics_mcp/ioc_packs/impacket-iocs/LICENSE.

Built for the DFIR community. No Windows required >)

Available Tools

55 tools
api_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

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.

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

    B3.2/5.0

    Scored across 55 tools

    Disambiguation3/5

    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.

    Naming Consistency4/5

    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.

    Tool Count2/5

    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.

    Completeness4/5

    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

    ActivitySlowing
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables 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
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI assistants to perform digital forensics analysis including memory analysis, file metadata inspection, and threat-intelligence lookups.
      10 npm
      ISC
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables Windows event log forensics by wrapping Hayabusa, offering EVTX scanning, Sigma rule exploration, ATT&CK coverage analysis, and detection engineering resources.
      MIT
    • F
      license
      A
      quality
      C
      maintenance
      Enables 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.
      5
      1
      -