A small MCP server that lets Claude read and write files in one folder on your computer — the one you point it at, and nothing else.
| Tool | Purpose |
|---|---|
list_directory |
List files/folders in a path |
read_file |
Read a text file's contents |
write_file |
Overwrite or append to a file (creates it if needed) |
create_directory |
Make a new folder |
delete_file |
Delete a single file |
delete_directory |
Delete a folder (optionally recursive) |
move_file |
Move or rename a file/folder |
get_file_info |
Get size, type, created/modified timestamps |
search_files |
Recursively find files matching a glob (*.py, notes-*.md, etc) |
Safety: every tool resolves paths against the root folder you configure at
startup and refuses any path that would escape it (e.g. ../../etc/passwd).
Claude can only ever touch files inside that one folder.
From the repository root, create and activate a virtual environment and install dependency and use that virtual env config in claude config as shown in example:
PS C:\Users\remote\Documents\local-devlopment\files> (Get-Command python).Source
C:\Python314\python.exe
PS C:\Users\remote\Documents\local-devlopment\files> py
Python 3.14.5 (tags/v3.14.5:5607950, May 10 2026, 10:43:50) [MSC v.1944 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print(sys.executable)
C:\Python314\python.exe
>>> exit()
python3 -m venv venvActivate it with the command that matches your shell:
# Bash / WSL
source venv/bin/activate# PowerShell
.\venv\Scripts\Activate.ps1
Then install the package requirements:
pip install -r requirements.txt
pip install -r requirements.txt
C:\Python314\python.exe -m pip install -r requirements.txtpython server.py /path/to/the/folder/you/want/to/exposeYou should see:
Starting local-filesystem MCP server, rooted at: /path/to/the/folder
It will sit there waiting for an MCP client to talk to it over stdio — that's expected.
Press Ctrl+C to stop.
You can also use the MCP inspector to poke at it interactively:
npx @modelcontextprotocol/inspector python server.py /path/to/the/folderOpen your Claude Desktop config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Add an entry under mcpServers (create the file/section if it doesn't exist). Use absolute paths that match the environment where Claude Desktop launches the process:
- If Claude Desktop starts the server from WSL/bash, use Unix-style paths such as
/mnt/c/Users/remote/Documents/local-devlopment/files/server.pyand/usr/bin/python3. - If it starts from Windows, use Windows-style paths such as
C:\Users\remote\Documents\local-devlopment\files\server.pyand escape backslashes in JSON.
{
"mcpServers": {
"local-filesystem": {
"command": "/usr/bin/python3",
"args": [
"/mnt/c/Users/remote/Documents/local-devlopment/files/server.py",
"/absolute/path/to/the/folder/you/want/to/expose"
]
}
}
}{
"mcpServers": {
"local-filesystem": {
"command": "C:\\Python314\\python.exe",
"args": [
"C:\\Users\\remote\\Documents\\local-devlopment\\files\\server.py",
"C:\\Users\\remote\\Documents\\repositories"
]
}
}
}
Use absolute paths for the Python interpreter, the script, and the folder — relative paths are unreliable since Claude Desktop launches the process from its own working directory.
Restart Claude Desktop. The tools will show up under the 🔌/tools menu in a
new chat, and Claude will be able to call list_directory, read_file, etc.
on the folder you configured.
Just change the last argument in the args array in the config — one server
instance is scoped to one root folder. Run multiple entries under mcpServers
(with different names) if you want to expose several folders at once.
read_file/write_filework with UTF-8 text. Binary files (images, PDFs, zips) will report a decode error rather than mangling bytes — extend the server if you need binary support (base64 encode/decode is the usual approach).- There's no undo.
delete_directory(recursive=True)is permanent — consider keeping the exposed folder under version control (git) if you want a safety net. - This server trusts whatever client is calling it (i.e. Claude, once you've approved the tool calls). Don't point it at a folder containing anything you wouldn't want an LLM to read, edit, or delete on your instruction.
finally check in calude ui that a local mcp server is running and now ask him to read repositories and do what ever you want to do... :)
#restart claude and close from right button and task manger and reopen and ask can you read local file system . now no need to copy files





