Add your description here
Project description
Filesystem MCP Server
Python 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
Installation
git + Python
# Clone the repository
git clone https://github.com/MarcusJellinghaus/mcp_server_filesystem
cd filesystem
# Create and activate a virtual environment (optional but recommended)
python -m venv .venv
source .venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies using pip with pyproject.toml
pip install -e .
Running the Server
Previous instal required
# Enable virtual env
source .venv/bin/activate
# Run server with allowed paths (paths optional but recommended)
python ./src/main.py /path/to/home /path/to/project
Alternatively, you can use uvx to run directly from GH repo uv required https://docs.astral.sh/uv/getting-started/installation/
uvx --from git+https://github.com/javillegasna/filesystem filesystem /Users/username/Desktop
Usage with Different Platforms
Claude Desktop
{
"mcpServers": {
"filesystem": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/javillegasna/filesystem",
"filesystem",
"/Users/username/Desktop",
"/path/to/other/allowed/dir",
]
}
}
}
vscode
{
"mcp": {
"servers": {
"filesystem": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/javillegasna/filesystem",
"filesystem",
"/Users/username/Desktop",
"/path/to/other/allowed/dir",
]
}
}
}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file iflow_mcp_javillegasna_filesystem-0.1.0.tar.gz.
File metadata
- Download URL: iflow_mcp_javillegasna_filesystem-0.1.0.tar.gz
- Upload date:
- Size: 15.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c2279dbc2e5156a4b15ad632bb57f0f86f394d346e1f16b7ad752b20464d292e
|
|
| MD5 |
4fd2e2d4406b21257f0f85bec8662d66
|
|
| BLAKE2b-256 |
6a5784f343a8e2e7921e487c78b703d4c4a0bf7bc5b93ac466c615cb8d5bf1be
|
File details
Details for the file iflow_mcp_javillegasna_filesystem-0.1.0-py3-none-any.whl.
File metadata
- Download URL: iflow_mcp_javillegasna_filesystem-0.1.0-py3-none-any.whl
- Upload date:
- Size: 22.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
96e0ccf85c43ab2756ba8010b5450c8b0a7fff354e42d6db64a869c8782dba12
|
|
| MD5 |
51c67fb8b7468f1424947ec292ad616e
|
|
| BLAKE2b-256 |
30f1ec69496dbfbdcf3a680d6c98ae5a8e676ba6b5d0d8c7b805a78a295f450a
|