MCP server that drives the WizTree disk space analyser on Windows
Five tools with clear verb-noun naming (wiztree_scan, wiztree_largest, wiztree_tree, wiztree_find, wiztree_info). All have descriptions (34 - 92 chars, baseline 194 avg). Input schemas present with type definitions and parameter descriptions. However, descriptions are terse (below baseline), output schemas are not documented, and error handling lacks recovery guidance. No tool annotations (readOnlyHint, etc.). Composition is sound, each tool has one responsibility and tools chain via path parameters.
Find files matching a pattern in a scanned tree
Show information about the WizTree executable and the current scan state
List the largest files and folders in a scanned tree, with their sizes and percentages
Scan a drive or folder with WizTree and return a CSV snapshot of the file tree
Show a tree view of a folder and its subfolders with sizes and percentages
Output schemas not documented. LLMs cannot infer what fields are returned (e.g., does wiztree_largest return file paths, sizes, percentages, or all three?). Agents cannot plan downstream operations without knowing response structure.
Descriptions are terse (34 - 92 chars vs. baseline 194 avg). wiztree_info has only 45 chars ('Show information about the WizTree executable and the current scan state'). Descriptions lack WHEN to use each tool and what distinguishes it from similar tools.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All five tools are read-only, but this is not declared in the schema. Agents cannot distinguish safe tools from destructive ones without explicit hints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | 2026-07-28+ | v2 |
Error handling lacks recovery guidance. No evidence of try-catch blocks or error messages that tell LLMs what to do next (e.g., 'Path not found. Try wiztree_scan() first to index the drive.'). Agents will not know how to recover from failures.
Parameter 'min_size' in wiztree_largest accepts free-form strings ('10 MB', '1 GB') with no enum or regex constraint. LLMs may hallucinate invalid formats like '10mb' or '1 gigabyte'. Constraint should be formalized in schema.