shutil-mcp
by cwt
README.md
# shutil-mcp
[](https://m8ven.ai/mcp/cwt-shutil-mcp-1bs6po)
An MCP server providing asynchronous shell utilities using `aioshutil`.
This project offers a set of file system tools designed for AI agents,
returning structured JSON output instead of raw text. This allows for more
precise and direct consumption of file system data by AI models.
## Features
- **Asynchronous Operations**: Leverages `aioshutil` and thread executors
for non-blocking file system tasks.
- **JSON Output**: All tools return minified JSON, optimized for AI agents.
- **Tool Annotations & Hints**: Declares `readOnlyHint`, `destructiveHint`,
`idempotentHint`, and `openWorldHint` on every tool for agent safety and host warnings.
- **Jail Support**: Restrict file system access to a specific directory tree
for security.
- **Verification & Integrity**: `mv` and `cp` verify destination data before
unlinking or finalizing, preventing data loss on partial failures.
- **Reversible Mutations & Undo**: `chmod` and `chown` return previous modes
and ownership to facilitate immediate undo/redo, with automatic rollback
on failure.
- **Safe Deletion & Recovery**: `rm` always soft-deletes into `.trash` (never
permanently deletes) and reports trash size and storage usage; `restore`
recovers items, `gc_trash` collects expired items, and `empty_trash` purges the trash.
- **Zip-Slip Protection**: `unpack_archive` validates all archive member paths
against directory traversal / zip-slip attacks.
- **Detailed Metadata**: Tools like `ls` and `stat` provide comprehensive
information (size, mtime, mode, owner, etc.).
- **HTTP Transport Support**: Includes built-in support for SSE and Streamable
HTTP transports.
## Available Tools
- `ls`: List directory contents with detailed metadata.
- `cp`: Copy files or directories recursively with verification and overwrite protection.
- `mv`: Move/rename files or directories with safe pre-removal verification.
- `rm`: Soft-delete by moving to `.trash`; never permanently deletes and reports trash statistics.
- `restore`: Restore files or directories from trash (defaults to original path).
- `empty_trash`: Permanently purge the trash folder (only after explicit user confirmation).
- `gc_trash`: Garbage-collect expired trash entries based on age threshold.
- `mkdir`: Create a new directory.
- `touch`: Create an empty file or update file timestamps.
- `chmod`: Change file/directory permissions with rollback and previous mode.
- `chown`: Change file/directory ownership with rollback and previous owner.
- `stat`: Get detailed file or directory metadata.
- `disk_usage`: Get disk usage statistics for a path.
- `which`: Find the path to an executable.
- `cat`: Read file content, optionally limited to a specific line range.
- `glob`: Find files matching glob patterns.
- `grep`: Search file contents using regex patterns.
- `tree`: Get a recursive directory tree as nested JSON.
- `make_archive`: Create archive files (zip, tar, etc.) with overwrite guards.
- `unpack_archive`: Unpack archive files safely with zip-slip protection.
- `get_archive_formats`: List supported archive formats.
## Installation
```bash
pip install shutil-mcp
```
## Usage
### Run with stdio transport
```bash
shutil-mcp --transport stdio
```
### Run with jail restriction
```bash
shutil-mcp --transport stdio --jail /path/to/projects
```
### Run as SSE server
```bash
shutil-mcp --transport sse --jail /path/to/projects --port 8000
```
## Development
See [DEVELOPMENT.md](DEVELOPMENT.md) for detailed development instructions.
## License
MIT
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessSlow