MCP server that provides file search capabilities using the Everything search engine on Windows
Three tools with complete input schemas and descriptions, but quality is uneven. All tools have descriptions (10-200 chars baseline met), and schemas include type definitions and parameter descriptions. However, descriptions lack LLM-optimized guidance on WHEN to use each tool vs alternatives, and error handling is minimal. The 'search' tool has the most complete schema; 'list_drives' is trivial. No output schemas documented. No tool annotations (readOnlyHint, etc.). Naming is clear and verb-forward, but parameter descriptions could be more prescriptive about constraints and formats.
List all available drives on the system
Search for files using Everything search engine with support for query syntax, filtering by filename, extension, and path, with sorting and result limiting options
Get statistics about search results including file count, folder count, total size, and aggregated information by extension and path
No output schemas documented. LLMs cannot predict response structure, forcing them to guess at field names for downstream tool calls or data extraction.
Descriptions lack WHEN-to-use guidance. 'search' and 'stats' both accept query/filename/extension/path, LLM cannot distinguish when to call one vs the other without trial.
Parameter descriptions omit constraints and formats. 'limit' has no min/max (code shows default 20, max 200k for stats); 'sort' enum values are listed but not marked as constrained; 'query' lacks Everything syntax documentation.
No error handling guidance. Code returns JSON with 'status: error' and 'message', but tool descriptions do not explain what errors are possible or how to recover (e.g., 'Everything engine not running, call list_drives to verify system state').
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | <=2025-11-25 | v2 |
'list_drives' description is 30 chars ('List all available drives on the system'), below the 50-char minimum for clarity. Does not explain when an LLM should call it (e.g., 'Call this first if search fails to verify available storage').