Claude File Manager MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_DATA_DIR | No | Directory where trash, backups, and change history are stored. | <root>/.mcp |
| MCP_FILE_ROOT | No | Root folder inside which file operations are allowed. | current directory |
| MCP_MAX_READ_CHARS | No | Character limit when reading a file. | 400000 |
| MCP_MAX_LIST_ENTRIES | No | Entry limit when listing a directory. | 5000 |
| MCP_ALLOW_OUTSIDE_ROOT | No | Set to 1 to allow arbitrary paths outside MCP_FILE_ROOT. Use with care. | 0 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_rootsA | Lists the folders this server may work in. Relative paths in other tools resolve against the first root; absolute paths are accepted inside any listed root. |
| list_directoryC | Lists files and folders. Paths can be relative to the server's root folder. Supports recursive traversal. |
| list_treeA | Renders a compact tree of folders and files with box-drawing characters. Much less noisy than a recursive list_directory. Skips node_modules, .git, .mcp and other service folders by default; limits depth and total entries. |
| read_fileB | Reads a text file. An optional line range can be specified (1-based). Large files are truncated. |
| read_imageA | Returns an image file so you can actually see it (screenshots, design mockups, diagrams). Supports PNG, JPEG, GIF and WebP. The file must be at most 4.8 MB. For text files use read_file. |
| write_fileA | Writes text to a file. Creates missing parent folders. By default overwrites an existing file and keeps a backup (restorable via undo_last_change). |
| append_fileA | Appends text to the end of a file, creating it if needed. |
| edit_fileA | Replaces an exact occurrence of old_string with new_string and shows a diff. If old_string occurs more than once, set replace_all=true explicitly. A backup is saved before editing (undo_last_change). |
| multi_editA | Applies several replacements to one file atomically: if any fragment is not found, the file is left unchanged. Returns a combined diff. A backup is saved before editing. |
| create_directoryB | Creates a folder (including all missing parents by default). |
| move_pathC | Moves or renames a file or folder. |
| copy_pathC | Copies a file or folder (folders recursively). |
| zip_pathA | Packs files and folders into a ZIP archive. Each source keeps its own name at the top level of the archive; subfolders are included recursively. Symbolic links are skipped. UTF-8 file names are stored correctly. Set overwrite=true to replace an existing archive. |
| unzip_pathA | Extracts a ZIP archive into a folder, creating missing parent folders. Stored and deflated entries with UTF-8 names are supported (ZIP64 and encrypted archives are not). Paths that would escape the destination are rejected. By default nothing is overwritten. |
| delete_pathA | Deletes a file or folder. By default the item goes to the trash (/app/.mcp/trash) and can be restored via restore_path or undo_last_change. A non-empty folder can only be deleted with recursive=true. The root folder cannot be deleted. |
| file_infoC | Returns the type, size and modification time of an item. |
| find_filesA | Finds files by glob ( |
| search_contentA | Searches for a string or regular expression inside text files and returns |
| replace_in_filesA | Replaces every occurrence of a string (or regular expression) across text files, with a backup of each changed file and a single undo step. Skips binary and very large files, node_modules, .git and .mcp by default. Use dry_run=true to preview the changes first. |
| list_trashB | Lists deleted files and folders that can be restored. |
| restore_pathA | Restores a file or folder from the trash to its original location. Get the id from list_trash or from the delete_path response. |
| undo_last_changeA | Reverts the last change made by the server: restores a file from its backup, removes a created file, or brings back a deleted item from the trash. Multiple steps can be undone in a row. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 22 tools
Most tools target clearly distinct actions and resource types, and descriptions help distinguish listing, searching, and archive operations. Some overlap remains among editing tools (edit_file, multi_edit, replace_in_files) and file-writing tools (write_file, append_file), but the boundaries are reasonably explained.
Nearly all tools use a consistent snake_case verb_noun pattern such as read_file, create_directory, and restore_path. Minor deviations like file_info (noun-first) and multi_edit (missing an explicit object) are readable and do not seriously undermine consistency.
At 22 tools the surface is on the heavy side, but this is a broad file-manager domain with editing, search, archives, trash, and undo operations. Each tool appears to earn its place rather than being redundant filler.
The server covers a full file-management lifecycle: listing, reading, writing, editing, moving/copying, deleting, restoring from trash, archive creation/extraction, search, and undo. No obvious operational gaps remain for the stated purpose.