Typed, read-only MCP server over SIFT forensic tools with architectural anti-hallucination guardrails
Server has 11 well-defined forensic tools with consistent naming (verb_noun pattern: verify_*, vol_*, disk_*, cross_validate_*, artifact_*) and clear descriptions (avg ~100 chars). All tools have input schemas with type definitions and parameter descriptions. However, output schemas are only partially documented, ToolResult is defined but lacks field-level descriptions for 'preview' and 'payload_sha256'. Error handling is minimal; no recovery guidance or actionable error messages visible. Tool descriptions are functional but lack dependency hints (e.g., 'Run verify_image_integrity first'). Parameter descriptions are adequate but could specify constraints (e.g., path_filter is 'optional substring' but no length/format guidance). Missing: per-tool error classification, confirmation patterns for audit-sensitive operations, and explicit documentation of which tools are idempotent.
Page through or search the full rows of a previously recorded artifact.
Compare pslist vs psscan artifacts; returns ghost processes (hidden candidates).
Sleuth Kit fls — recursive file timeline from a partition (MACB timestamps). Use path_filter (substring) to focus, e.g. 'Windows/Prefetch' or 'Users'.
Sleuth Kit mmls — partition table of a disk image (E01/raw).
Replay the SHA-256 audit chain; proves the investigation log is untampered.
Hash an evidence image (sha256/md5) for chain-of-custody. Run this first.
Volatility3 windows.cmdline — process command lines from memory.
Output schema (ToolResult) lacks field-level descriptions. 'preview' and 'payload_sha256' fields are undocumented, forcing LLMs to infer their purpose and format.
No error handling guidance visible. Tools return ToolResult or dict but no documented error cases, recovery paths, or actionable error messages. LLMs cannot distinguish retryable vs fatal failures.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | <=2025-11-25 | v2 |
Volatility3 windows.malfind — injected/suspicious executable memory regions.
Volatility3 windows.netscan — network connections and listeners from memory.
Volatility3 windows.pslist — processes from the active process list.
Volatility3 windows.psscan — pool-scanned processes (finds hidden/terminated).
Parameter descriptions lack constraint documentation. 'path_filter' is 'optional substring' but no length limits, character restrictions, or format guidance. 'offset' and 'limit' in artifact_query have no min/max bounds.
Missing dependency hints in descriptions. Tools like vol_pslist and vol_psscan should document that cross_validate_processes requires both artifacts; verify_image_integrity should be called first.
No tool annotations (readOnlyHint, idempotentHint) visible in FastMCP registration. All tools are read-only and idempotent, but this is not formally declared for the MCP client.