Autonomous digital-forensics investigation orchestrator and MCP server for the SANS SIFT Workstation
Mulder is a forensic analysis server with 10 tools, all read-only. Tool naming follows verb_noun convention (parse_*, index_*), which is good. Descriptions are present and detailed (100-200 chars), explaining what each tool does and its forensic purpose. The two tools with parameters (parse_mft, parse_usn_journal, index_app_files) have minimal parameter descriptions ('Start time for filtering...' lacks format/range guidance). No output schemas are documented. Error handling is absent, no recovery guidance or categorization. Security is appropriate (read-only operations, no credentials exposed). Overall: descriptions save this from F-grade, but empty schemas and lack of output documentation severely limit LLM usability.
Index text and config files from application directories on a disk image. Discovers files matching the given directory pattern and file extensions from the TSK file listing, extracts them via icat, and indexes their content for search. This is a general-purpose tool that does not parse specific file formats; it makes raw content searchable so the analyst can interpret it. Useful for extracting application configuration, logs, and data files after execution artifacts (Prefetch, ShimCache, UserAssist) identify installed applications.
Return Amcache data parsed by AmcacheParser (EZ Tools). Shows program execution history with SHA1 hashes, file paths, and timestamps. Returns a summary with counts and sample entries; use ``search()`` or ``get_raw_output()`` for full data. Read-only.
Return Jump List data parsed by JLECmd (EZ Tools). Shows user file access history. Returns a summary with counts and sample entries; use ``search()`` or ``get_raw_output()`` for full data. Read-only.
Return LNK file data parsed by LECmd (EZ Tools). Shows shortcut targets, timestamps, and metadata. Returns a summary with counts and sample entries; use ``search()`` or ``get_raw_output()`` for full data. Read-only.
Return MFT entries within a time range, parsed by MFTECmd (EZ Tools). The Master File Table contains timestamps, sizes, and parent directories for every file on an NTFS volume. Read-only.
8 of 10 tools have empty input schemas ({}). LLMs cannot infer parameter constraints or types from empty schemas.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract structured data without knowing response field names and types.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
Return detailed Prefetch data parsed by PECmd (EZ Tools). Shows last 8 run times, referenced DLLs, and execution metadata per executable. Returns a summary with counts and sample entries; use ``search()`` or ``get_raw_output()`` for full data. Read-only.
Return Shellbags data parsed by SBECmd (EZ Tools). Shows folder access history from UsrClass.dat. Returns a summary with counts and sample entries; use ``search()`` or ``get_raw_output()`` for full data. Read-only.
Return ShimCache (AppCompatCache) data parsed by AppCompatCacheParser (EZ Tools). Shows file existence evidence with timestamps. Returns a summary with counts and sample entries; use ``search()`` or ``get_raw_output()`` for full data. Read-only.
Return SRUM data parsed by SrumECmd (EZ Tools). Shows network/app resource usage over 30-60 days. Returns a summary with counts and sample entries; use ``search()`` or ``get_raw_output()`` for full data. Read-only.
Return USN Journal entries within a time range, parsed by MFTECmd (EZ Tools). The NTFS change journal records every file system modification (create, delete, rename, etc.). Read-only.
Parameter descriptions for parse_mft and parse_usn_journal lack format/range guidance. 't_start' and 't_end' should specify ISO 8601 format, valid ranges, and examples.
No error handling or recovery guidance. Tools do not indicate what to do if a disk image is inaccessible, parsing fails, or no data is found.
index_app_files has 6 parameters with reasonable descriptions, but 'extensions' array lacks enum constraints. LLMs may hallucinate invalid file extensions.