Copy a file path. Switch to Claude. Paste it. Describe the file. Ask your question. Switch back to your editor. Repeat. If that's your current workflow when you want Claude's help with local files, the filesystem MCP server will feel like a cheat code.
What tools the filesystem server exposes to Claude
The official @modelcontextprotocol/server-filesystem package exposes eight tools. Here's what each one does:
read_file— reads the contents of any file in the scoped directoryread_multiple_files— reads several files at once (efficient for code review)write_file— creates or overwrites a file with new contentedit_file— makes targeted edits using find-and-replace — preserves the rest of the filecreate_directory— creates a new folderlist_directory— lists all files and folders in a pathdirectory_tree— returns the full tree structure of a directorymove_file— moves or renames a filesearch_files— searches for files matching a glob patternget_file_info— returns metadata (size, creation date, modified date)
That's a lot of power. The key thing to understand: Claude doesn't automatically do all of this. It only uses these tools when you ask it to, and it tells you when it's about to make a write operation.
Setup — under 3 minutes
Add this to your claude_desktop_config.json:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/yourname/projects/myapp"
]
}
}
}
Replace the path with the specific folder you want Claude to access. Restart Claude Desktop. That's it.
To give access to multiple folders, just add them as extra arguments:
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/projects/app1", "/projects/app2"]
Real use cases — what people actually do with this
Here are the workflows that make this server genuinely valuable on a daily basis:
Whole-codebase code review
Ask: "Look at all the TypeScript files in my src/ folder and identify any functions that are over 50 lines long." Claude uses search_files and read_multiple_files to scan your code and gives you a list with line numbers. No copying, no pasting, no context limits on individual files.
Bulk file operations
Ask: "Rename all files in /exports that start with 'report_2024' to start with 'report_2025'." Claude reads the directory, plans the rename operations, and executes them — asking for confirmation before doing anything destructive.
Log analysis
Ask: "Read my application log at /var/log/app.log and summarize all ERROR entries from today." Claude reads the log file and filters just what you need.
Safety: what you should know before using write access
The filesystem server has write capabilities — and that means Claude can modify or create files on your machine. Here's how to use this safely:
Scope narrowly. Always point the server at a specific project directory, not your home folder or root. If Claude can only see /projects/myapp, it can't accidentally touch anything else.
Use git. Work inside a git repository so any file changes Claude makes can be reviewed and reverted with git diff and git checkout.
Review before confirming. When Claude plans to write or modify files, it tells you what it's about to do. Read that before saying yes. Claude won't silently overwrite things — it always surfaces what it's going to change.
Can I make the filesystem server read-only?
Not through a built-in flag in the current version. But you can set OS-level read-only permissions on the directory you're pointing it at — Claude will still be able to read but write operations will fail at the OS level. This is the safest approach for directories you never want modified.
Frequently Asked Questions
The filesystem server doesn't expose a delete tool — files can only be moved, written, or renamed. But overwriting a file with new content is possible. Always point the server at a specific project folder, keep a git backup, and review Claude's proposed changes before confirming.
Yes. Pass multiple folder paths as additional arguments: "args": ["-y", "@modelcontextprotocol/server-filesystem", "/projects", "/documents"] gives Claude access to both folders simultaneously.
Yes, if the network drive is mounted as a local path on your system. NFS, SMB, and other mounted volumes work the same as local directories from the server's perspective.
You tell it — either by asking about specific files or by asking it to explore a folder. Claude won't read files you haven't asked about, and it tells you when it's calling a read tool. You can see every file access in the tool-use output during the conversation.