Skip to main content
Glama

MCP File Operations Server

by prithvi-seri
README.md6.16 kB
# MCP File Operations Server A Python MCP (Model Context Protocol) server that provides read and write access to files in the `documents` subfolder for use with Claude Desktop. ## Features - **Read files**: Read the contents of any file in the documents folder - **Write files**: Create or overwrite files in the documents folder - **List files**: Browse files and directories in the documents folder with search capabilities - **Delete files/directories**: Remove files or directories from the documents folder - **Create directories**: Create new directories within the documents folder - **Security**: Path validation to prevent access outside the documents folder - **All file types**: Supports all file types without restrictions - **Search functionality**: Find files using patterns and recursive search ## Installation ### Using Poetry (Recommended) 1. Install Poetry if you haven't already: ```bash curl -sSL https://install.python-poetry.org | python3 - ``` 2. Install dependencies: ```bash poetry install ``` 3. Activate the virtual environment: ```bash poetry shell ``` ### Using pip 1. Install the required dependencies: ```bash pip install -r requirements.txt ``` 2. Ensure the `documents` folder exists in your project directory. ## Usage with Claude Desktop ### 1. Add the server to Claude Desktop 1. Open Claude Desktop 2. Go to Settings → MCP Servers 3. Click "Add Server" 4. Configure the server: - **Name**: File Operations - **Command**: `poetry` (if using Poetry) or `python` - **Arguments**: `run run_server.py` (if using Poetry) or `run_server.py` (if using pip) - **Working Directory**: Path to your project folder ### 2. Available Tools Once connected, Claude will have access to these tools: #### `read_file` Read the contents of a file from the documents folder. **Parameters:** - `file_path` (required): Path to the file relative to the documents folder **Example:** ``` Read the file "notes.txt" from the documents folder ``` #### `write_file` Write content to a file in the documents folder. **Parameters:** - `file_path` (required): Path to the file relative to the documents folder - `content` (required): Content to write to the file - `mode` (optional): Write mode - "w" for overwrite (default), "a" for append **Example:** ``` Write "Hello World" to a file called "greeting.txt" ``` #### `list_files` List all files and directories in the documents folder with search capabilities. **Parameters:** - `subdirectory` (optional): Specific subdirectory to list files from - `search_pattern` (optional): Search pattern to filter files (supports wildcards like *.txt, *.py, etc.) - `recursive` (optional): Whether to search recursively in subdirectories (default: false) **Examples:** ``` List all files in the documents folder List all Python files recursively List all files in the "projects" subdirectory Search for files matching "*.md" pattern ``` #### `delete_file` Delete a file or directory from the documents folder. **Parameters:** - `file_path` (required): Path to the file or directory relative to the documents folder - `recursive` (optional): Whether to delete directories recursively (default: false) **Examples:** ``` Delete the file "old_notes.txt" Delete the directory "temp_folder" recursively ``` #### `create_directory` Create a new directory in the documents folder. **Parameters:** - `dir_path` (required): Path to the directory relative to the documents folder **Example:** ``` Create a directory called "projects" ``` ## Security Features - **Path validation**: All file operations are restricted to the `documents` folder - **Directory traversal protection**: Prevents access to parent directories - **All file types supported**: No restrictions on file extensions - **Error handling**: Comprehensive error messages for debugging ## Supported File Types The server supports **all file types** without any restrictions. You can read, write, and manage any file format including: - Text files (.txt, .md, .py, .js, .html, .css, etc.) - Data files (.json, .csv, .xml, .yaml, etc.) - Binary files (.pdf, .doc, .xls, .zip, etc.) - Images (.jpg, .png, .gif, etc.) - And any other file type ## Testing the Server ### Using Poetry You can test the server using Poetry: ```bash # Run the server directly poetry run python run_server.py # Run tests poetry run pytest # Run tests with coverage poetry run pytest --cov=mcp_file_server ``` ### Using pip You can test the server manually by running: ```bash python run_server.py ``` The server will start and wait for MCP protocol messages on stdin/stdout. ## Troubleshooting ### Common Issues 1. **Import errors**: Make sure you've installed the requirements: ```bash # Using Poetry poetry install # Using pip pip install -r requirements.txt ``` 2. **Permission errors**: Ensure the `documents` folder has write permissions 3. **Path issues**: The server automatically creates the `documents` folder if it doesn't exist 4. **Claude Desktop connection**: Make sure the working directory in Claude Desktop settings points to your project folder 5. **Poetry not found**: Install Poetry using the official installer: ```bash curl -sSL https://install.python-poetry.org | python3 - ``` ### Logging The server includes logging to help debug issues. Check the console output for error messages. ## Development ### Using Poetry To modify the server: 1. Edit `mcp_file_server/server.py` to add new tools or modify existing ones 2. Modify the `DOCUMENTS_DIR` constant to change the base directory 3. All file types are supported by default - no need to modify file type restrictions 4. Run tests: `poetry run pytest` 5. Format code: `poetry run black .` 6. Sort imports: `poetry run isort .` ### Using pip To modify the server: 1. Edit `mcp_file_server/server.py` to add new tools or modify existing ones 2. Modify the `DOCUMENTS_DIR` constant to change the base directory 3. All file types are supported by default - no need to modify file type restrictions ## License This project is open source and available under the MIT License.

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/prithvi-seri/mcp-server'

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