Serveur de sauvegarde MCP
Un serveur MCP spécialisé qui fournit des capacités de sauvegarde et de restauration pour les agents AI et les outils d'édition de code. Testé dans les éditeurs Cursor et Windsurf.
Dépôt : https://github.com/hexitex/MCP-Backup-Server
Pourquoi utiliser ce système (et non Git)
Ce système a un objectif différent de celui de Git :
Pour :
- Crée des sauvegardes instantanées et ciblées avec le contexte de l'agent
- Plus simple que Git pour la sécurité d'une seule opération
- Préserve le processus de réflexion et l'intention dans les sauvegardes
- Pas de messages de validation ou de branchements nécessaires
- Meilleur pour les agents d'intelligence artificielle effectuant des changements critiques
- Fonctionne sans initialisation du référentiel
- Plus rapide pour les "points de sauvegarde" d'urgence pendant les modifications
Inconvénients :
- Pas pour le suivi de version à long terme
- Fonctionnalités de collaboration limitées
- Pas de fusion ou de résolution de conflits
- Pas de fonctionnalités de sauvegarde distribuée
- Ne remplace pas un contrôle de version adéquat
- Stocke des copies complètes de fichiers plutôt que des différences
À utiliser : Avant des modifications risquées, la restructuration de dossiers, ou lorsque vous avez besoin de sauvegardes de sécurité rapides et contextuelles.
Quand utiliser plutôt Git : Pour l'historique des versions, la collaboration et la gestion de projet.
Caractéristiques
- Préserve le contexte et le raisonnement de l'agent
- Crée des sauvegardes ciblées et minimales
- Prise en charge des opérations sur les fichiers et les dossiers
- Maintient l'historique des versions
- Assure la sécurité de la restauration
- Utilise le filtrage par motif
- Suivi des opérations
- Permet l'annulation
Installation
Installation via Smithery
Pour installer Backup Server pour Claude Desktop automatiquement via Smithery:
npx -y @smithery/cli install @hexitex/MCP-Backup-Server --client claude
Installation manuelle
# Installer les dépendances npm install # Construire les fichiers TypeScript npm run build # Démarrer le serveur de sauvegarde npm start
Configuration
Env :
BACKUP_DIR
: Répertoire de sauvegarde (./.code_backups)EMERGENCY_BACKUP_DIR
: Sauvegardes d'urgence (./.code_emergency_backups)MAX_VERSIONS
: Limite de version (10)
Configurer dans l'éditeur :
Windsurf MCP config :
{ "mcpServers" : { "backup" : { "command" : "node", "args" : ["./dist/index.js"], "env" : { "BACKUP_DIR" : "./.code_backups", "EMERGENCY_BACKUP_DIR" : "./.code_emergency_backups", "MAX_VERSIONS" : "20" } } } }
Curseur : Créez .cursor/mcp.json
avec une configuration similaire.
Outils
Opérations sur les fichiers
backup_create
: Créer une sauvegarde avec le contextebackup_list
: Liste des sauvegardes disponiblesbackup_restore
: Restauration avec sauvegarde de sécurité
Opérations sur les dossiers
backup_folder_create
: Sauvegarde avec filtrage des motifsbackup_folder_list
: Liste des sauvegardes de dossiersbackup_folder_restore
: Restauration de la structure du dossier
Gestion
backup_list_all
: Liste de toutes les sauvegardesmcp_cancel
: Annuler les opérations
Quand utiliser les sauvegardes
Ne créez des sauvegardes que lorsque c'est vraiment nécessaire :
- Avant la refonte: Lors de la modification d'un code important
- Avant de supprimer des dossiers: Lors de la réorganisation de la structure du projet
- Modifications multiples connexes: Lors de la mise à jour de plusieurs fichiers liés
- Reprise d'un travail important: Lors de la poursuite de modifications importantes
- Avant les restaurations: Créer une sauvegarde de sécurité avant la restauration
Les sauvegardes doivent être minimales et utiles. Documenter la raison pour laquelle chaque sauvegarde est nécessaire.
Règles pour le copier-coller
Essayez toujours d'utiliser le serveur MCP de sauvegarde pour les opérations qui nécessitent une sauvegarde, la liste des sauvegardes et la restauration des sauvegardes. N'effectuez une sauvegarde qu'avant les modifications de code critiques, la suppression d'un dossier, les modifications de plusieurs fichiers liés, la reprise d'un travail important ou la restauration de fichiers. Limitez les sauvegardes à un minimum et concentrez-vous uniquement sur les fichiers modifiés. Expliquez toujours clairement la raison pour laquelle une sauvegarde est créée.
Utiliser des filtres de motifs pour exclure les fichiers non pertinents des sauvegardes de dossiers. Utiliser des chemins d'accès relatifs lors de la création de sauvegardes. Créer des sauvegardes d'urgence avant les opérations de restauration. Nettoyer les anciennes sauvegardes pour maintenir l'efficacité du système. Outils de sauvegarde : backup_create, backup_list, backup_restore, backup_folder_create, backup_folder_list, backup_folder_restore, backup_list_all, mcp_cancel
Pour les utilisateurs humains
Des commandes simples comme celles-ci au début, vous devrez peut-être mentionner l'outil MCP
# Sauvegarder un fichier important "Back up my core file before refactoring" # Sauvegarder un dossier avant les changements "Create backup of the API folder before restructuring" # Trouver les sauvegardes précédentes "Show me my recent backups" # Restaurer une version précédente "Restore my core file from this morning"
Exemples d'agents
Sauvegardes rapides
// Avant les changements de projet { "name" : "mcp0_backup_folder_create", "parameters" : { "folder_path" : "./src", "include_pattern" : "*.{js,ts}", "exclude_pattern" : "{node_modules,dist,test}/**", "agent_context" : "Start auth changes" } } // Avant la correction du noyau { "name" : "mcp0_backup_create", "parameters" : { "file_path" : "./src/core.js", "agent_context" : "Fix validation" } }
Session de reprise
// Voir le travail récent { "name" : "mcp0_backup_list_all", "parameters" : {"include_pattern" : "src/**/*.js" } } // Obtenir la dernière version { "name" : "mcp0_backup_restore", "parameters" : { "file_path" : "./src/core.js", "timestamp" : "20250310-055950-000", "create_emergency_backup" : true } }
Core Changes
// Mise à jour critique { "name" : "mcp0_backup_create", "parameters" : { "file_path" : "./src/core.js", "agent_context" : "Add validation" } } // Mise à jour du module { "name" : "mcp0_backup_folder_create", "parameters" : { "folder_path" : "./src/api", "include_pattern" : "*.js", "exclude_pattern" : "test/**", "agent_context" : "Refactor modules" } }
Points de restauration
// Vérifier les versions { "name" : "mcp0_backup_list", "parameters" : { "file_path" : "./src/core.js" } } { "name" : "mcp0_backup_folder_list", "parameters" : { "folder_path" : "./src/api" } } // Restauration de fichiers { "name" : "mcp0_backup_restore", "parameters" : { "file_path" : "./src/core.js", "timestamp" : "20250310-055950-000", "create_emergency_backup" : true } // Restauration du dossier { "name" : "mcp0_backup_folder_restore", "parameters" : { "folder_path" : "./src/api", "timestamp" : "20250310-055950-000", "create_emergency_backup" : true } }
Manage
// List recent { "name" : "mcp0_backup_list_all", "parameters" : { "include_pattern" : "src/**/*.js" } } // Arrêter la sauvegarde { "name" : "mcp0_mcp_cancel", "parameters" : { "operationId" : "backup_1234" } }
Licence
MIT