Two tools with basic schemas and descriptions, but significant gaps in parameter documentation and error handling. Both tools have clear verb-noun naming (save_file, make_directory) and non-empty descriptions (95 and 82 chars respectively, within the 10-1024 baseline). Input schemas are present with required fields defined. However, parameter descriptions are minimal (e.g., 'Absolute or relative file path' lacks format/constraint guidance), and there is no documented output schema. Error handling is present but generic (respondError with code and message only, no recovery guidance). No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite both tools being destructive WRITE operations. Missing pagination, batching, and composition patterns.
Create a directory (and parent directories) at the specified path.
Create or overwrite a file at the specified path with the given content. Creates parent directories automatically.
Parameter descriptions lack format constraints and validation rules. 'Absolute or relative file path' does not specify allowed characters, length limits, or path traversal protections. 'Directory path to create' is similarly vague.
No output schema documented. Tool responses return text summaries ('Saved: {path}', 'Created: {path}') but LLMs cannot infer what fields to expect or how to chain these tools with others. Missing structured output definition.
Destructive operations (WRITE risk) lack tool annotations. Both tools modify filesystem state but have no destructiveHint or idempotentHint annotations. Agents cannot distinguish safe from risky operations.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
Error handling is generic. respondError returns code and message only, with no recovery guidance. E.g., 'EACCES: permission denied' tells the agent nothing about what to do next (retry, ask user, abort).
No input validation or sanitization visible. Path parameters are passed directly to fs.writeFileSync and mkdirSync without checking for path traversal (e.g., '../../../etc/passwd'). LLMs can be tricked into writing outside intended directories.