Zip Archive, Media Packer & Unpacker
by snorbik-ai
README.md
# MCP #14 — Zip Archive, Media Packer & Unpacker
[](https://www.python.org/downloads/)
[](https://modelcontextprotocol.io/)
[](https://opensource.org/licenses/MIT)
[](#tests)
Serveur MCP officiel et SDK universel pour décompresser, compresser et inspecter les archives ZIP en toute sécurité.
Conçu pour les agents autonomes, **Cursor IDE**, **Anthropic Claude**, et les pipelines de traitement multimédia.
## Points Forts & Garanties
- 🛡️ **Sécurité Anti Zip-Slip Étanche :** Empêche strictement toute tentative d'évasion de répertoire (`Path.relative_to`).
- 📁 **Support Natif des Chemins Longs Windows :** Contourne la limitation historique des 260 caractères (`\\?\`).
- 🖼️ **Inspection Binaire Multi-Formats (Zéro Dépendance) :** Extrait automatiquement les dimensions (largeur/hauteur) des images PNG, GIF, JPEG et WEBP sans librairie externe.
- 📦 **Packing Sans Pollution :** Compresse les dossiers vers un fichier `.zip` en excluant automatiquement `node_modules`, `.git`, `.venv`, `.pytest_cache`.
- ⚡ **Architecture Hybride Tri-Canal Snorbik :**
1. **Porte 1 (MCP stdio) :** Serveur JSON-RPC 2.0 pour IDE et agents IA.
2. **Porte 2 (CLI) :** Commandes terminal pour scripts bash et PowerShell.
3. **Porte 3 (SDK In-Process) :** Façade Python in-memory pour FastAPI ou PySide6.
## Outils Exposés via le Protocole MCP
| Nom de l'outil | Description | Paramètres |
| :--- | :--- | :--- |
| `zip_smart_auto_extract` | Décompresse dans un sous-dossier dédié propre et produit le manifeste. | `zip_path`, `base_destination` |
| `zip_packer_create` | Compresse un dossier vers un `.zip` en excluant les dossiers lourds. | `source_path`, `output_zip_path` |
| `zip_unpacker_extract` | Décompression ciblée avec écrasement configurable et filtrage d'extensions. | `zip_path`, `destination_dir`, `overwrite` |
| `zip_unpacker_inspect` | Liste les fichiers, tailles et extensions sans décompresser sur le disque. | `zip_path` |
| `zip_unpacker_ping` | Sonde de santé et de réactivité. | `{}` |
## Installation & Démarrage Rapide
### 1. Configuration dans Cursor ou Claude Desktop
Ajoutez le serveur dans votre fichier `mcp.json` :
```json
{
"mcpServers": {
"zip-archive-media-unpacker": {
"command": "python",
"args": ["path/to/mcp-14-zip-archive-media-unpacker/canal_mcp/mcp_server.py"],
"env": {
"PYTHONIOENCODING": "utf-8"
}
}
}
}
```
### 2. Utilisation en Ligne de Commande (CLI)
```bash
# Dézipper automatiquement
python canal_sdk_cli/cli.py auto-extract --zip mon_archive.zip --dest ./output
# Inspecter le contenu
python canal_sdk_cli/cli.py inspect --zip mon_archive.zip
# Zipper un dossier
python canal_sdk_cli/cli.py pack --src ./mon_projet --zip ./livrable.zip
```
### 3. Utilisation en Python (SDK)
```python
from canal_sdk_cli.sdk import ZipArchiveMediaUnpackerSDK
sdk = ZipArchiveMediaUnpackerSDK()
result = sdk.auto_extract("archive.zip", "./dossier_cible")
print(f"Fichiers extraits : {result.total_extracted}")
```
## Licence
Distribué sous licence **MIT**. Développé avec rigueur par **SNORBIK AI**.
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues