A Model Context Protocol server for filesystem operations written in Python
Solid foundation with 11 well-named tools using verb_noun convention (read_file, write_file, create_directory, etc.). All tools have descriptions (avg ~80 chars, baseline 194 chars) and Pydantic schemas with typed parameters. However, descriptions are terse and lack context on WHEN to use each tool or what happens on error. Parameter descriptions exist but are minimal (e.g., 'The path of the file to read' lacks format/constraint guidance). No output schemas documented, LLMs cannot predict response structure. Error handling is absent from tool definitions; no guidance on retryability or recovery. Missing tool annotations (readOnlyHint, destructiveHint) despite clear risk stratification (READ_ONLY vs WRITE). Composition is sound, each tool has one responsibility and tools chain well (e.g., list_directory → read_file). Security: path validation logic is present and thorough (symlink handling, allowed_directories), but no mention of permission gates or audit logging in tool definitions.
Create a new directory at the specified path. Creates parent directories as needed.
Get a tree view of a directory and its contents
Edit a file by specifying a series of find-and-replace operations. Supports dry-run mode to preview changes.
Get detailed information about a file or directory
List the contents of a directory
List the contents of a directory with file sizes and sorting options
Move or rename a file or directory
No output schemas documented. LLMs cannot predict response structure or plan downstream tool calls. E.g., read_file returns TextContent but structure is not declared in tool definition.
Descriptions are terse (avg ~50 chars vs baseline 194 chars) and lack context on WHEN to use each tool or what happens on error. E.g., 'Read the contents of a file' does not explain when to use read_file vs read_multiple_files, or what errors are possible.
Missing tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk stratification. WRITE tools (write_file, edit_file, create_directory, move_file) should be marked destructiveHint=true; READ_ONLY tools should be marked readOnlyHint=true.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 65 | 2026-07-28+ | v2 |
Read the contents of a file at the specified path. Supports optional head and tail parameters to limit output.
Read the contents of multiple files at once
Search for files matching a pattern in a directory
Write content to a file at the specified path. Creates the file if it does not exist, or overwrites it if it does.
No error handling guidance in tool definitions. LLMs cannot determine if errors are retryable, user-fixable, or fatal. E.g., write_file should document what happens if the parent directory does not exist or if permissions are denied.
Parameter descriptions lack format/constraint guidance. E.g., 'head' and 'tail' parameters lack min/max bounds; 'sortBy' lacks enum values (name vs size); 'pattern' in search_files lacks wildcard syntax documentation.