Skip to main content
Glama

file-system-mcp-server

by calebmwelsh
MIT License
1
  • Apple
  • Linux
README.md8.04 kB
# File System MCP Server A powerful file system management server built with FastMCP that provides a comprehensive set of tools for file and directory operations. This server allows you to perform various file system operations through a structured API, making it ideal for automation and integration with other systems. ## Platform Support The server is designed to work across different operating systems, but with varying levels of functionality: ### Windows - Full feature support - Drive listing - Special folders access - Windows-specific path handling - Detailed system information ### macOS/Linux - Basic file operations - Directory operations - File search and metadata - Basic system information - Note: Some Windows-specific features are not available ## Future Implementation ### Planned macOS Support - Native path handling for macOS - macOS-specific system information retrieval - Integration with macOS file system features - Support for macOS-specific file attributes - Implementation of macOS-specific utilities (similar to windows_utils.py) ### Planned Linux Support - Native path handling for Linux - Linux-specific system information retrieval - Integration with Linux file system features - Support for Linux file permissions and attributes - Implementation of Linux-specific utilities ### Cross-Platform Improvements - Unified path handling system - Platform-agnostic drive detection - Consistent system information API - Standardized file attributes across platforms - Cross-platform file system event monitoring - Universal file collection system ### Timeline - Phase 1: Basic cross-platform compatibility improvements - Phase 2: Platform-specific feature implementations - Phase 3: Advanced cross-platform features - Phase 4: Performance optimizations and refinements ## Features ### File Operations - Copy files with backup support - Move files with backup support - Delete files with safety checks - Read file contents - Write file contents - Get file information (size, creation time, modification time) - Search files by name pattern - Create file collections for organizing related files ### Directory Operations - List directory contents - Create directories - Delete directories - List directories recursively (tree-like structure) - Search directories by name pattern ### System Information - Get system information (OS, CPU, memory, disk usage) - Get disk information (total space, used space, free space) - Get directory information (file count, total size) ## Project Structure ``` file-system-mcp-server/ ├── fs_server.py # Main server implementation ├── windows_utils.py # Windows-specific utilities (Windows only) ├── requirements.txt # Project dependencies └── test_prompts_example.md # Example test prompts ``` ### Collections Storage Collections can be stored in any directory specified by the user. If no storage location is specified, collections will be stored in a default location within the project's `data/collections` directory. Example usage: ```python # Store in default location create_collection("my_collection", ["file1.txt", "file2.txt"]) # Store in custom location create_collection("my_collection", ["file1.txt", "file2.txt"], storage_path="/path/to/store") ``` ## Dependencies ### Required Dependencies - FastMCP - Pydantic - pywin32 (Windows only) - WMI (Windows only) To install dependencies: ```bash pip install -r requirements.txt ``` ## Setup 1. Clone the repository: ```bash git clone https://github.com/calebmwelsh/file-system-mcp-server.git cd file-system-mcp-server ``` 2. Create and activate a virtual environment: ```bash python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate ``` 3. Install dependencies: ```bash pip install -r requirements.txt ``` ## Usage For detailed MCP configuration instructions across different development environments (Claude, Cursor, Windsurf), visit: [MCP Configuration Guide](https://calebmwelsh.github.io/Configure-MCP/) ### Integration with Claude To integrate the File System MCP server with Claude, add the following to your `claude_desktop_config.json` file: ```json { "mcpServers": { "file-system": { "command": "/absolute/path/to/python", "args": [ "/absolute/path/to/file-system-mcp-server/fs_server.py" ] } } } ``` #### Finding Your Python Path To find your Python executable path, use the following command: **Windows (PowerShell):** ```powershell (Get-Command python).Source ``` **Windows (Command Prompt/Terminal):** ```cmd where python ``` **Linux/macOS (Terminal):** ```bash which python ``` Replace `/absolute/path/to/python` with the output from the appropriate command above. #### Example Configuration For Windows, your configuration might look like this: ```json { "mcpServers": { "file-system": { "command": "C:\\Users\\YourUsername\\AppData\\Local\\Programs\\Python\\Python39\\python.exe", "args": [ "C:\\Users\\YourUsername\\Documents/file-system-mcp-server/fs_server.py" ] } } } ``` For macOS/Linux: ```json { "mcpServers": { "file-system": { "command": "/usr/local/bin/python3", "args": [ "/Users/YourUsername/Documents/file-system-mcp-server/fs_server.py" ] } } } ``` After adding the configuration: 1. Save the `claude_desktop_config.json` file 2. Restart Claude 3. You can now use the file system tools by asking Claude to perform file operations ## Available Tools ### File Operations - `copy_file`: Copy a file with optional backup - `move_file`: Move a file with optional backup - `delete_file`: Delete a file with safety checks - `read_file`: Read file contents - `write_file`: Write contents to a file - `get_file_info`: Get detailed file information - `search_files`: Search files by name pattern - `create_collection`: Create a collection of files ### Directory Operations - `list_directory`: List directory contents - `create_directory`: Create a new directory - `delete_directory`: Delete a directory - `list_directory_recursively`: Show directory structure in tree format - `search_directories`: Search directories by name pattern ### System Information - `get_system_info`: Get system information - `get_disk_info`: Get disk usage information - `get_directory_info`: Get directory statistics ## Known Issues The following features are currently experiencing issues and may not work as expected: 1. **Delete File Function** - The `delete_file` function may fail to properly delete files in some cases - Users are advised to verify file deletion manually or use alternative methods when critical - Issue is under investigation and will be fixed in a future update 2. **List Drives Function** - The `list_drives` function may not correctly detect or display all available drives - Some drives may be missing from the list or show incorrect information - This is a known limitation and will be addressed in future updates 3. **Platform-Specific Limitations** - Windows-specific features are not available on macOS/Linux - Some path handling may differ between platforms - System information retrieval varies by platform ## Error Handling The server includes comprehensive error handling for: - Invalid file paths - File/directory not found - Permission issues - Disk space limitations - Invalid operations - Platform-specific errors ## Security - All file operations include path validation - Backup files are created before destructive operations - System information access is restricted to safe operations - File operations are performed with proper error handling ## Contributing 1. Fork the repository 2. Create a feature branch 3. Commit your changes 4. Push to the branch 5. Create a Pull Request ## License This project is licensed under the MIT License - see the LICENSE file for details. ## Acknowledgments - Built with FastMCP - Uses Pydantic for data validation - Inspired by modern file system management tools

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/calebmwelsh/file-system-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server