A file and directory management MCP server that provides tools for creating, writing, deleting, searching, and moving files and directories, as well as executing terminal commands.
FileFlow has 10 tools with basic schemas and descriptions, but significant quality gaps. All tools have input schemas with type definitions and descriptions present, meeting minimum requirements. However, descriptions are generic and lack LLM-optimization guidance (e.g., 'Writes content to a specified file' lacks context on when to use vs alternatives). No output schemas documented. Error handling returns plain strings without recovery guidance. Terminal_tool is particularly risky, executes arbitrary shell commands with no validation, sanitization, or permission checks. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels. Parameter descriptions are minimal (avg ~40 chars vs baseline 72). No pagination support for search_file despite returning unstructured paths. Naming is verb-first (good), but lacks specificity, 'meta_data' should be 'get_file_metadata'. Overall, this is a functional but immature toolkit suitable for local use only, not production agents.
Creates a new directory with the specified name at the given path.
Creates a new file at the specified directory path. This function checks if the given filename already exists in the directory or is a substring of any existing file name. If not, it creates an empty file with the given name at the specified path.
Deletes a directory with the specified name from the given path.
Deletes the specified file from the given directory.
Retrieves metadata for a specified file within a given directory.
Moves a directory from the source location to the destination location.
Moves a specified file from the source directory to the destination directory.
terminal_tool executes arbitrary shell commands with zero input validation, sanitization, or permission checks. No dry-run, confirmation, or audit trail. Agents can trivially cause data loss, privilege escalation, or lateral movement.
No output schemas documented. Tools return unstructured strings (e.g., search_file returns 'File path' or error message). LLMs cannot parse results reliably or chain tools. Baseline: 100% of A+ tools document return types.
Descriptions lack LLM-optimization guidance. 'Writes content to a specified file' (45 chars) does not explain when to use vs alternatives, prerequisites, or side effects. Baseline: 194 chars avg, 50-200 chars optimal for LLM selection.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | 2026-07-28+ | v2 |
Searches for a file by name within the given directory and its subdirectories.
Executes a terminal command in the specified directory, supporting interactive prompts. This function supports real-time command execution and handles interactive CLI prompts like 'Ok to proceed?', 'Do you want to continue?', or any (y/n) confirmation requests.
Writes content to a specified file if it exists in the given directory.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels. Agents cannot reason about side effects or retry safety. delete_file, delete_dir, terminal_tool are destructive; search_file, meta_data are read-only.
Error handling returns plain strings without recovery guidance. 'File does not exist' tells agent nothing. Baseline: errors must guide next step (e.g., 'File not found. Try search_file() first.').