Read-only MCP server that summarizes a local folder: what is in it, what is stale, and where the space went.
scan_folder has a well-structured input schema with proper types and defaults, and a detailed description (280 chars) explaining the tool's purpose, behavior, and caveats. However, the description embeds example values ('Call this first') and operational guidance that could be clearer. Parameter descriptions are present but could be more explicit about constraints (e.g., max_depth bounds). No output schema is documented, LLMs cannot predict the response structure. The tool is read-only and well-scoped, but lacks error handling guidance and does not declare permissions or security boundaries.
Summarize a folder: what dominates it, how old everything is, and where the bulk sits. Call this first. It returns a rollup rather than a file list, so it stays cheap on folders with tens of thousands of files. Follow with list_files to see individual files matching whatever the summary suggests is worth looking at. Two things to keep in mind. Size does not imply disposability: large media is often what the user most wants to keep, so age matters more than size. And files matching identity, legal, tax, or medical naming are counted here but marked protected; never suggest removing them. Cloud-synced folders, system folders, app bundles, and build directories are excluded; the output reports how many were skipped. path: absolute path to the folder, for example /Users/you/Downloads max_depth: how many levels of subfolder to descend. Default 3.
Output schema not documented. LLMs cannot predict response structure (fields, types, nesting) and cannot plan downstream tool calls or extract data reliably.
Parameter 'max_depth' lacks explicit bounds. Description says 'Default 3' but does not state minimum (1?) or maximum (10?). Unbounded integers let LLMs pass absurd values.
No error handling guidance. If path is invalid, unreadable, or too large, the tool should return actionable recovery hints (e.g., 'Path not found. Check spelling or permissions.').
Description embeds operational guidance ('Call this first') that should be in a separate 'usage' or 'notes' field. Descriptions should focus on WHAT the tool does, not HOW to orchestrate it.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
No permission or scope declaration. Tool reads filesystem, should declare 'read:filesystem' scope and note that it skips sensitive files (credentials, secrets) for safety.