This MCP server has fundamental definition quality issues. All three tools (list, read, write) have minimal descriptions (under 20 characters baseline threshold) and lack proper input parameter documentation. Tool descriptions are trivial ('List directory contents on remote server', 'Read file contents from remote server', 'Write file contents to remote server') and do not meet the 10-1024 character guidance for LLM-optimized descriptions. Parameter schemas are present but lack descriptions, the 'path' parameter appears to have a description in the schema, but parameter descriptions are sparse and generic. The 'write' tool is particularly concerning as it handles state modification (WRITE risk) but lacks any mention of confirmation, dry-run, or error recovery guidance. No tool declares permissions (read:filesystem, write:filesystem), no tools provide pagination or limiting, and error handling is not visible in the tool definitions themselves. Tool naming is acceptable (verb_noun style: 'list', 'read', 'write'), but the composition lacks sophistication, no idempotency guarantees stated, no output schema documentation visible in definitions, and no guidance on what happens on retry.
List directory contents on remote server
Read file contents from remote server
Write file contents to remote server
All tool descriptions are below 20 characters and lack LLM-optimized detail. 'List directory contents on remote server' does not explain when to use this tool vs alternatives, what structure is returned, or any prerequisites.
The 'write' tool modifies state but lacks any error handling guidance, confirmation mechanism, or idempotency promise. Descriptions should state this is irreversible and may require a dry-run or confirmation.
No input parameter descriptions are provided in the tool definitions. The 'path' parameter for all three tools lacks context on expected format (absolute vs relative, max length, character restrictions, tilde expansion).
Output schemas are not documented. The LLM cannot know what fields 'list' returns (file names? metadata? sizes?), what 'read' returns (raw bytes? encoded string?), or what 'write' returns on success.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 29 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
No tool declares permissions (e.g., 'read:filesystem', 'write:filesystem') or minimum privilege requirements. Agents cannot determine scope or understand blast radius if compromised.
Error handling is absent from tool definitions. Descriptions do not tell the LLM what to do on 'path not found', 'permission denied', 'connection lost', or 'disk full' errors.
'path' parameter accepts free-form strings with no constraints. The description should specify: absolute vs relative, max length, forbidden characters, whether symlinks are followed, tilde expansion behavior.
The 'write' tool accepts a free-form 'content' string but does not document max size, encoding, binary vs text handling, or newline conventions.