file operations.com
file operations.com logo

File Operations

Enhances file and directory management with streaming, patching, and change tracking for advanced manipulation, real-tim...

Created byApr 23, 2025

File Operations MCP Server

[![smithery badge](https://smithery.ai/badge/@bsmi021/mcp-file-operations-server)](https://smithery.ai/server/@bsmi021/mcp-file-operations-server)
A Model Context Protocol (MCP) server that provides enhanced file operation capabilities with streaming, patching, and change tracking support.

Features

  • **Basic File Operations**: Copy, read, write, move, and delete files
  • **Directory Operations**: Create, remove, and copy directories
  • **File Watching**: Monitor files and directories for changes
  • **Change Tracking**: Track and query file operation history
  • **Streaming Support**: Handle large files efficiently with streaming
  • **Resource Support**: Access files and directories through MCP resources
  • **Progress Reporting**: Real-time progress updates for long operations
  • **Rate Limiting**: Protection against excessive requests
  • **Enhanced Security**: Path validation and input sanitization
  • **Robust Error Handling**: Comprehensive error handling and reporting
  • **Type Safety**: Full TypeScript support with strict type checking

Installation

Installing via Smithery

To install File Operations Server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@bsmi021/mcp-file-operations-server):

Manual Installation

Usage

Starting the Server

For development with auto-reloading:

Available Tools

Basic File Operations

  • `copy_file`: Copy a file to a new location
  • `read_file`: Read content from a file
  • `write_file`: Write content to a file
  • `move_file`: Move/rename a file
  • `delete_file`: Delete a file
  • `append_file`: Append content to a file

Directory Operations

  • `make_directory`: Create a directory
  • `remove_directory`: Remove a directory
  • `copy_directory`: Copy a directory recursively (with progress reporting)

Watch Operations

  • `watch_directory`: Start watching a directory for changes
  • `unwatch_directory`: Stop watching a directory

Change Tracking

  • `get_changes`: Get the list of recorded changes
  • `clear_changes`: Clear all recorded changes

Available Resources

Static Resources

  • `file:///recent-changes`: List of recent file system changes

Resource Templates

  • `file://{path}`: Access file contents
  • `metadata://{path}`: Access file metadata
  • `directory://{path}`: List directory contents

Example Usage

Rate Limits

The server implements rate limiting to prevent abuse:
  • **Tools**: 100 requests per minute
  • **Resources**: 200 requests per minute
  • **Watch Operations**: 20 operations per minute
Rate limit errors include a retry-after period in the error message.

Security Features

Path Validation

All file paths are validated to prevent directory traversal attacks:
  • No parent directory references (`../`)
  • Proper path normalization
  • Input sanitization

Resource Protection

  • Rate limiting on all operations
  • Proper error handling and logging
  • Input validation on all parameters
  • Safe resource cleanup

Progress Reporting

Long-running operations like directory copying provide progress updates:
Progress can be tracked through the progress token returned in the operation result.

Development

Building

Linting

Formatting

Testing

Configuration

The server can be configured through various settings:
  • **Rate Limiting**: Configure request limits and windows
  • **Progress Reporting**: Control update frequency and detail level
  • **Resource Access**: Configure resource permissions and limits
  • **Security Settings**: Configure path validation rules
  • **Change Tracking**: Set retention periods and storage options
  • **Watch Settings**: Configure debounce times and recursive watching

Error Handling

The server provides detailed error information through the `FileOperationError` class and MCP error codes:

Standard MCP Error Codes

  • `InvalidRequest`: Invalid parameters or request format
  • `MethodNotFound`: Unknown tool or resource requested
  • `InvalidParams`: Invalid parameters (e.g., path validation failure)
  • `InternalError`: Server-side errors

Custom Error Types

  • File operation failures
  • Rate limit exceeded
  • Path validation errors
  • Resource access errors
Each error includes:
  • Specific error code
  • Detailed error message
  • Relevant metadata (file paths, limits, etc.)
  • Stack traces in development mode

Contributing

  1. Fork the repository
  1. Create your feature branch (`git checkout -b feature/amazing-feature`)
  1. Commit your changes (`git commit -m 'Add amazing feature'`)
  1. Push to the branch (`git push origin feature/amazing-feature`)
  1. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.