The MCP SFTP Orchestrator is a Model Context Protocol server for orchestrating remote SSH/SFTP tasks, server management, and system monitoring through an LLM-compatible stdio interface.
Core Capabilities:
Server Management: Add, list, and remove server configurations with SSH key or password authentication and secure credential storage.
SSH Command Execution: Execute simple, interactive, or sequential commands with auto-response to prompts, persistent connection pools, automatic retry, and log streaming (PM2, Docker, tail, journalctl).
SFTP File Transfers: Upload/download files and folders with glob pattern support (
*.txt,**/*.js), multi-file transfers, and automatic parent directory creation.System Monitoring: Check system resources (CPU, RAM, Disk, load average), service status (systemd, Docker, PM2), Fail2Ban information, and perform HTTP/HTTPS health checks with authentication.
API Management: Configure and manage an API catalog for health monitoring with various authentication methods (API key, Basic Auth, both, or none).
Log Retrieval: Access PM2 application logs, Docker container logs with timestamp/time-range filters, tail remote files, and view MCP system logs with filtering.
Task Queue Management: Persistent, auto-saving queue with hybrid sync/async execution, detailed task history, manual/automatic retry, and comprehensive statistics including success rates and average durations.
System Administration: Monitor SSH connection pool statistics, system diagnostics, and performance metrics with structured error handling and security best practices.
Enables monitoring and retrieval of Docker container logs, including container status checks and log streaming with configurable parameters.
Supports configuration through .env files for managing environment variables and server settings.
Provides SFTP-based file transfer capabilities including upload/download of files and directories with glob pattern support and automatic parent directory creation.
Enables monitoring and management of NGINX services through systemd service status checks and log retrieval.
Supports installation and execution via npm/npx package manager for streamlined deployment.
Provides dedicated tools for retrieving PM2 process logs, monitoring application status, and managing PM2-controlled services.
Recommended for secure storage and management of secrets and API credentials as part of security best practices.
Uses Zod schema validation for input validation and type safety of tool arguments and configuration.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP SFTP Orchestratorcheck the CPU and memory usage on my production server"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
🚀 MCP Orchestrator - Serveur d`orchestration SSH/SFTP
Un serveur MCP (Model-Context-Protocol) puissant pour l'orchestration de tâches distantes. Il gère des connexions SSH et SFTP, une file d'attente de tâches persistante, et expose un ensemble riche d'outils pour la gestion de serveurs, le monitoring, et l'exécution de commandes via une interface stdio compatible avec les LLM.
✨ Fonctionnalités Principales
🔐 Gestion de Serveurs
✅ Configuration multi-serveurs avec alias
✅ Support authentification par clé SSH ou mot de passe
✅ Stockage sécurisé des configurations
📡 Exécution SSH
✅ Commandes simples et séquences
✅ Mode interactif avec auto-réponse aux prompts
✅ Streaming pour logs (PM2, Docker, tail, journalctl)
✅ Pool de connexions persistantes
✅ Retry automatique en cas d`échec
📁 Transferts SFTP
✅ Upload/Download de fichiers et dossiers
✅ Support patterns glob (
*.txt,**/*.js)✅ Transferts multiples en une seule commande
✅ Création automatique des dossiers parents
📊 Monitoring & APIs
✅ Monitoring système (CPU, RAM, Disque)
✅ Statut des services (systemd, Docker, PM2)
✅ Health checks HTTP/HTTPS avec authentification
✅ Catalogue d`APIs personnalisable
✅ Fail2Ban status
🎯 Gestion de Tâches
✅ Queue persistante avec sauvegarde automatique
✅ Exécution hybride (sync/async)
✅ Historique des commandes
✅ Retry manuel et automatique
✅ Statistiques détaillées
📦 Installation
Vous avez deux méthodes pour utiliser cet outil :
Méthode 1 : Via NPM (Recommandé)
C'est la méthode la plus simple. L'outil sera téléchargé et exécuté à la demande par npx.
Enregistrez ce MCP auprès de votre client (ex: gemini-cli) avec la configuration suivante :
Important : Remplacez /chemin/absolu/vers/votre/dossier/de/donnees par un chemin réel sur votre machine, par exemple ~/.config/mcp-orchestrator.
Méthode 2 : Depuis les Sources (Git)
Cette méthode est utile si vous souhaitez modifier le code.
Clonez le dépôt :
git clone https://github.com/fkom13/mcp-sftp-orchestrator.git cd mcp-sftp-orchestratorInstallez les dépendances :
npm installConfigurez votre client MCP pour lancer le script localement :
{ "mcpServers": { "orchestrator": { "command": "node", "args": [ "/chemin/vers/mcp-sftp-orchestrator/server.js" ], "env": { "MCP_DATA_DIR": "/chemin/vers/mcp-sftp-orchestrator/data" } } } }
🛠️ Configuration
La configuration du serveur se fait par ordre de priorité :
Variables d'environnement du client MCP (le bloc
envdans votre JSON) : Priorité la plus haute. C'est la méthode recommandée pour définir le dossier de données.Fichier : Si vous lancez le projet localement (méthode 2), vous pouvez créer un fichier
.envà la racine. Il sera utilisé si la variable n'est pas définie par le client MCP.Valeurs par défaut : Si rien n'est défini, le dossier de données par défaut sera
~/.config/mcp-orchestrator.
Variables disponibles :
MCP_DATA_DIR: (Recommandé) Le dossier où seront stockées les données (configurations des serveurs, historique, etc.).MCP_SYNC_TIMEOUT_S: Le délai en secondes avant qu'une tâche longue ne passe en arrière-plan. Par défaut :30.
🧰 Référence des Outils (API)
Voici la liste complète des outils exposés par ce serveur MCP.
Gestion des Serveurs
server_add: Enregistre ou met à jour les informations de connexion d'un serveur.server_list: Affiche la liste de tous les alias de serveurs configurés.server_remove: Supprime un alias de serveur de la configuration.
Exécution de Tâches
task_exec: Exécute une commande SSH (hybride synchrone/asynchrone).task_transfer: Transfère un fichier ou dossier via SFTP (hybride synchrone/asynchrone).task_exec_interactive: Exécute une commande SSH interactive (gère les promptsyes/no, etc.).task_exec_sequence: Exécute plusieurs commandes SSH en séquence sur le même serveur.task_transfer_multi: Transfère plusieurs fichiers/dossiers avec support de patternsglob.
Monitoring & Diagnostics
Outil | Description |
| Récupère les métriques système vitales (CPU, RAM, Disque). |
| Récupère le statut des services (systemd, Docker, PM2). |
| Récupère les informations du service Fail2Ban. |
| Test HTTP direct sur une URL (sans catalogue). |
Récupération de Logs
get_pm2_logs: Raccourci pour récupérer les logs PM2.get_docker_logs: Raccourci pour récupérer les logs d'un container Docker.tail_file: Affiche les dernières lignes d'un fichier distant.
Gestion de la File d'Attente (Queue)
task_queue: Affiche le statut de toutes les tâches dans la file d'attente.task_status: Récupère les détails d'une tâche par son ID.task_history: Affiche l'historique des dernières tâches lancées.task_retry: Relance une tâche qui a échoué ou crashé.queue_stats: Affiche les statistiques de la queue de tâches.
Gestion des APIs (Monitoring Externe)
api_add: Ajoute une API au catalogue de monitoring.api_list: Affiche toutes les APIs configurées.api_remove: Supprime une API du catalogue.api_check: Lance un test de santé sur une API.
Administration du Serveur MCP
task_logs: Affiche les logs du système MCP lui-même.pool_stats: Affiche les statistiques du pool de connexions SSH.
Prérequis
Node.js >= 18.0.0
npm ou yarn
Accès SSH aux serveurs cibles