FilesystemMCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@FilesystemMCPShow me the directory tree for this project"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
FilesystemMCP
A local, customizable MCP (Model Context Protocol) server for filesystem access — forked from the official Anthropic implementation and extended with additional functionality.
Credits
This project is based on the official @modelcontextprotocol/server-filesystem package by Anthropic, licensed under the terms found in the original repository. The original codebase provides a secure, well-structured foundation for filesystem access via MCP.
Related MCP server: file-system-mcp-server
Why this fork?
The goal of this fork is to extend the original server with additional tools and customizations for personal/local use, while keeping the core security model (allowed directories, path validation) intact.
Setup
1. Install dependencies
cd FilesystemMCP
npm install2. Build
npm run build3. Configure Claude
In your claude_desktop_config.json, point the filesystem server to your local build:
{
"mcpServers": {
"filesystem": {
"command": "node",
"args": [
"/path/to/FilesystemMCP/dist/index.js",
"/your/allowed/directory"
]
}
}
}Restart Claude after saving.
Tools
File Management
read_text_file/read_file— Read file contents as text (supportshead/tail)read_media_file— Read image or audio files as base64read_multiple_files— Read multiple files in one callwrite_file— Create a new file. Never overwrites: ifpathalready exists, the content is automatically saved instead to an incremented filename (name (1).ext,name (2).ext, ...) and the response is flagged as an error pointing you atcopy_lines_between_files/move_lines_between_files/append_to_fileto merge it in properly.copy_file— Copy a file server-sidedelete_file— Permanently delete a filecreate_directory— Create directories recursivelylist_directory— List directory contentslist_directory_with_sizes— List with file sizes and sortingdirectory_tree— Recursive JSON tree viewmove_file— Move or rename filessearch_files— Glob-based recursive file searchget_file_info— File metadata (size, timestamps, permissions)file_stats— Quick size/line-count/preview without a full readlist_allowed_directories— Show configured allowed paths
Targeted Editing (prefer these over write_file for existing files)
edit_file— Line-range replacements (multiple edits per call), returns a git-style diff, supportsdryRunreplace_lines— Replace a known line range directly (more token-efficient thanedit_fileonce you have line numbers)insert_lines— Insert content after a given line numberdelete_lines— Delete a line rangeappend_to_file— Append to the end of a file (always safe, never touches existing content)
Reorganising Without Rewriting
copy_lines— Copy a line range and insert the copy elsewhere in the same file; originals preservedmove_lines— Cut a line range and paste it elsewhere in the same file; throws if the destination falls inside the source rangecopy_lines_between_files— Copy a line range from one file into a different file (created if missing); source untouchedmove_lines_between_files— Cut a line range from one file into a different file; the destination is written first and only on success is the block removed from the source, so a failed move never loses data
Search
find_in_file— Phrase search within one file (whitespace-normalized, so line-wrapped phrases still match); returnsstartLine/endLinefor chaining into the tools abovefind_in_files— Same, recursively across a directory, with glob filtering
JavaScript-aware helpers
list_js_functions— List function/class definitions with line rangesget_js_function/replace_js_function— Extract or replace a named function by name (no need to know line numbers)get_js_imports/replace_js_imports/add_js_import— Inspect or modify the imports block
Recommended workflow
To build up a new file from scratch or combine content from elsewhere without ever rewriting large blocks: write_file (or append_to_file on an existing file) to land the raw content, then find_in_file to locate line numbers, then copy_lines/move_lines/copy_lines_between_files/move_lines_between_files to reorganise. Reach for edit_file/replace_lines only for small, targeted changes — never to rewrite a whole file.
License
See the original repository for license details.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/RijadAlisic/FilesystemMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server