MCP server exposing scoped filesystem operations (list, stat, read, glob, and optional move/copy/delete) for media library organization and similar use cases. Path-whitelisted, deny-pattern-aware, dry-run-by-default writes.
Strong foundation with clear naming (verb_noun pattern), comprehensive parameter schemas, and good descriptions. All 9 tools have explicit schemas with typed parameters and descriptions. Tool names are action-oriented (fs_list, fs_read, fs_delete). However, descriptions average ~120 chars (below the 194-char baseline for A+ tools) and lack explicit guidance on when to use each tool vs. alternatives. Output schemas are not documented in the tool definitions. Error handling descriptions are minimal, tools don't explain recovery paths or categorize errors as retryable vs. fatal. Dry-run/confirm pattern is well-implemented for write operations, reducing accidental destruction risk.
Copy a file or directory tree. Supports recursive copy and symlink dereferencing. Dry-run by default.
Delete a file or directory. Supports recursive deletion. Dry-run by default.
Find files matching a glob pattern. Walks the tree and returns paginated results. Deny-pattern-filtered.
List directory contents with optional pagination. Returns name, type, size, and mtime for each entry. Deny-pattern-filtered.
List the filesystem roots (absolute paths) this MCP is allowed to operate on.
Create a directory. Supports recursive creation. Dry-run by default.
Move (rename) a file or directory. Supports cross-device fallback (copy+delete). Dry-run by default.
Output schemas not documented. Tool definitions lack return type documentation, forcing LLMs to infer structure from trial calls. fs_list_directory, fs_find_by_glob, and fs_stat should document their response fields (name, type, size, mtime, etc.).
Error handling descriptions missing. Tools do not explain what errors can occur, whether they are retryable, or what the LLM should do next. E.g., fs_read_file should document 'File not found' vs. 'File exceeds FS_MAX_READ_BYTES' and recovery guidance.
Tool descriptions are brief (avg ~120 chars vs. 194-char baseline). Lack context on WHEN to use each tool vs. alternatives. E.g., fs_find_by_glob vs. fs_list_directory distinction is unclear; no guidance on performance trade-offs or use cases.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | <=2025-11-25 | v2 |
Read a file's contents. Capped at FS_MAX_READ_BYTES (default 1 MiB). Returns UTF-8 text or base64-encoded binary.
Stat a single file or directory. Returns size, mtime, ctime, mode, and symlink target if applicable.
Pagination guidance incomplete. fs_list_directory and fs_find_by_glob accept offset/limit but descriptions don't explain total count, whether results are sorted, or how to detect end-of-results. LLMs may not know when to stop paginating.
Dry-run/confirm pattern not documented in descriptions. Write tools (fs_move, fs_copy, fs_delete, fs_mkdir) default to dry_run=true, but descriptions don't explain this safety mechanism or guide LLMs to inspect previews before confirming.