Guarded filesystem writes and standalone CLI for AI agents, coding assistants, MCP tools, and automation.
AgentSafeFS exposes 3 tools with partial schema coverage and minimal descriptions. Tool names lack action verbs (plan, write, doctor are vague). Descriptions are present but generic (10-80 chars, below the 50-200 char LLM-optimized baseline). Input schemas are visible but lack type definitions for most parameters, all three tools expose raw CLI flags (from, text, stdin, root, config, json) without semantic grouping or clear constraints. No output schemas documented. Error handling is absent from tool definitions. The server is designed as a CLI wrapper, not an MCP-native tool suite, which limits composability and LLM reasoning.
Validate configuration/root and show runtime information.
Validate and classify a proposed write without changing disk.
Propose, revalidate, commit, verify, and optionally audit one write.
Tool names lack action verbs. 'plan', 'write', 'doctor' do not clearly signal intent. LLMs cannot infer whether 'plan' is a discovery tool, a validation tool, or a planning assistant. Rename to 'validate_write', 'commit_write', 'check_config'.
Descriptions are too short and generic. 'Validate and classify a proposed write without changing disk' (plan) is 60 chars but lacks context on when to use it vs write. 'Propose, revalidate, commit, verify, and optionally audit one write' (write) conflates multiple operations. Descriptions should be 50-200 chars and answer: what does it do, when to use it, what does it return?
Input schemas lack type definitions. Parameters like 'target', 'from', 'text', 'stdin', 'root', 'config', 'json' are listed but have no 'type' field in the schema. JSON Schema requires type: string|boolean|object etc. Without types, LLMs cannot validate inputs or reason about parameter compatibility.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 36 | 2026-07-28+ | v2 |
No output schemas documented. Tool definitions do not specify what fields are returned or their types. LLMs cannot plan downstream calls or extract required data (e.g., operationId for commit). Add explicit return type documentation.
Parameters expose CLI implementation details (from, stdin, json flags) instead of semantic intent. An LLM should call 'write_file(path, content)' not 'write(target, from=..., text=..., stdin=..., json=true)'. Refactor to hide CLI complexity and expose domain-level parameters.