The Filesystem MCP Server is a Node.js server that provides secure filesystem operations through the Model Context Protocol (MCP) with dynamic access control.
File Operations:
Read: Text files (complete or specific lines), media files (base64 encoded with MIME types), or multiple files concurrently
Write & Edit: Create new files, overwrite existing ones, or perform selective line-based edits with diff previews
Move: Rename or move files and directories within allowed paths
Metadata: Retrieve detailed information including size, timestamps, type, and permissions
Directory Operations:
Create: New directories including nested paths
List: Directory contents with file/subdirectory distinction and sorting options
Search: Recursively find files and directories matching patterns with exclusion options
Tree View: Get recursive JSON structure of directory hierarchies
Access Control:
Static Control: Restrict operations to directories set via command-line
Dynamic Control: Update allowed directories using MCP Roots to override server-side configurations
Access Listing: View currently permitted directories
Filesystem MCP Server
Node.js server implementing Model Context Protocol (MCP) for filesystem operations.
Features
Read/write files
Create/list/delete directories
Move files/directories
Search files
Get file metadata
Note: The server will only allow operations within directories specified via args
.
API
Resources
file://system
: File system operations interface
Tools
read_file
Read complete contents of a file
Input:
path
(string)Reads complete file contents with UTF-8 encoding
read_multiple_files
Read multiple files simultaneously
Input:
paths
(string[])Failed reads won't stop the entire operation
write_file
Create new file or overwrite existing (exercise caution with this)
Inputs:
path
(string): File locationcontent
(string): File content
edit_file
Make selective edits using advanced pattern matching and formatting
Features:
Line-based and multi-line content matching
Whitespace normalization with indentation preservation
Multiple simultaneous edits with correct positioning
Indentation style detection and preservation
Git-style diff output with context
Preview changes with dry run mode
Inputs:
path
(string): File to editedits
(array): List of edit operationsoldText
(string): Text to search for (can be substring)newText
(string): Text to replace with
dryRun
(boolean): Preview changes without applying (default: false)
Returns detailed diff and match information for dry runs, otherwise applies changes
Best Practice: Always use dryRun first to preview changes before applying them
create_directory
Create new directory or ensure it exists
Input:
path
(string)Creates parent directories if needed
Succeeds silently if directory exists
list_directory
List directory contents with [FILE] or [DIR] prefixes
Input:
path
(string)
move_file
Move or rename files and directories
Inputs:
source
(string)destination
(string)
Fails if destination exists
search_files
Recursively search for files/directories
Inputs:
path
(string): Starting directorypattern
(string): Search patternexcludePatterns
(string[]): Exclude any patterns. Glob formats are supported.
Case-insensitive matching
Returns full paths to matches
get_file_info
Get detailed file/directory metadata
Input:
path
(string)Returns:
Size
Creation time
Modified time
Access time
Type (file/directory)
Permissions
list_allowed_directories
List all directories the server is allowed to access
No input required
Returns:
Directories that this server can read/write from
Usage with Claude Desktop
Add this to your claude_desktop_config.json
:
Note: you can provide sandboxed directories to the server by mounting them to /projects
. Adding the ro
flag will make the directory readonly by the server.
Docker
Note: all directories must be mounted to /projects
by default.
NPX
Usage with VS Code
For quick installation, click the installation buttons below...
For manual installation, add the following JSON block to your User Settings (JSON) file in VS Code. You can do this by pressing Ctrl + Shift + P
and typing Preferences: Open Settings (JSON)
.
Optionally, you can add it to a file called .vscode/mcp.json
in your workspace. This will allow you to share the configuration with others.
Note that the
mcp
key is not needed in the.vscode/mcp.json
file.
You can provide sandboxed directories to the server by mounting them to /projects
. Adding the ro
flag will make the directory readonly by the server.
Docker
Note: all directories must be mounted to /projects
by default.
NPX
Build
Docker build:
License
This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.
local-only server
The server can only run on the client's local machine because it depends on local resources.
Tools
Node.js server implementing Model Context Protocol (MCP) for filesystem operations.
Related MCP Servers
- -securityFlicense-qualityNode.js server implementing Model Context Protocol for filesystem operations, allowing Claude to read, write, and manipulate files and directories in specified locations.
- -securityAlicense-qualityNode.js server implementing Model Context Protocol for secure read-only filesystem operations, allowing Claude to read files, list directories, search files, and get file metadata within specified directories.Last updated -82MIT License
- AsecurityFlicenseAqualityNode.js server implementing Model Context Protocol (MCP) for filesystem operations with comprehensive permission controls, allowing secure file and directory manipulation with granular access restrictions.Last updated -21133,1163
- -securityAlicense-qualityNode.js server implementing Model Context Protocol (MCP) for filesystem operations, allowing AI systems to read, write, edit files and manage directories within specified allowed paths.Last updated -133,116MIT License