DEV Community

fkom13
fkom13

Posted on

Show HN: MCP Orchestrator – Pilotez vos serveurs SSH/SFTP avec n'importe quelle IA

Le problème : La gestion de serveurs est un chaos (organisé ?)

Si vous êtes développeur, DevOps ou administrateur système, votre quotidien ressemble probablement à une jonglerie entre plusieurs terminaux, des scripts SSH qui vieillissent mal, et des commandes scp à rallonge.

Gérer des serveurs, déployer des applications, transférer des fichiers, et monitorer des services est une tâche complexe et répétitive. On finit souvent avec :

  • Des scripts shell spécifiques à chaque machine.
  • Des commandes ssh et sftp tapées à la main, sources d'erreurs.
  • Un manque de visibilité sur les tâches longues.
  • Une difficulté à automatiser de manière fiable et centralisée.

Et si on pouvait piloter tout ça depuis une interface unifiée, voire... directement depuis une conversation avec une IA ?

La solution : mcp-orchestrator-server

C'est exactement le problème que nous avons voulu résoudre en créant mcp-orchestrator-server, un serveur d'orchestration open-source basé sur Node.js et le Model-Context-Protocol (MCP).

En bref : C'est un outil que vous lancez en arrière-plan et qui expose une API riche pour gérer vos serveurs. Il est conçu pour être piloté par un client MCP, comme une interface en ligne de commande (CLI) ou, plus intéressant encore, un agent IA comme Gemini.

Qu'est-ce que ça fait concrètement ?

Imaginez pouvoir taper des commandes en langage naturel et voir la magie opérer. Voici quelques exemples.

1. Exécuter une séquence de déploiement

Fini les scripts bash fragiles. Déployez votre application avec une seule commande sémantique.

L'intention :

"Sur le serveur 'prod_vps', déploie la dernière version de mon app : va dans le dossier /var/www/app, fais un git pull, installe les dépendances npm, et redémarre le service pm2."

La commande MCP correspondante :

{
  "tool": "task_exec_sequence",
  "arguments": {
    "alias": "prod_vps",
    "commands": [
      "cd /var/www/app",
      "git pull origin main",
      "npm install",
      "pm2 restart app"
    ]
  }
}
Enter fullscreen mode Exit fullscreen mode

2. Transférer des fichiers avec des patterns complexes

Besoin de sauvegarder tous les logs et les fichiers de configuration ?

L'intention :

"Sauvegarde tous les logs de l'application et les fichiers de configuration JSON du serveur 'prod_vps' dans mon dossier local de backups."

La commande MCP :

{
  "tool": "task_transfer_multi",
  "arguments": {
    "alias": "prod_vps",
    "direction": "download",
    "files": [
      {
        "remote": "/var/log/app/*.log",
        "local": "/home/user/backups/logs/"
      },
      {
        "remote": "/etc/app/configs/**/*.json",
        "local": "/home/user/backups/configs/"
      }
    ]
  }
}
Enter fullscreen mode Exit fullscreen mode

3. Monitorer un service en temps réel

Un bug en production ? Affichez les logs en direct.

L'intention :

"Montre-moi les 100 dernières lignes de logs d'erreurs de l'app 'api-server' sur 'prod_vps'."

La commande MCP :

{
  "tool": "get_pm2_logs",
  "arguments": {
    "alias": "prod_vps",
    "app": "api-server",
    "lines": 100,
    "errors": true
  }
}
Enter fullscreen mode Exit fullscreen mode

Fonctionnalités Clés

  • Gestion de Serveurs Centralisée : Ajoutez tous vos serveurs via l'outil server_add et appelez-les par un simple alias.
  • Pool de Connexions SSH : Les connexions sont maintenues et réutilisées pour des performances optimales.
  • Queue de Tâches Persistante : Les tâches longues (transferts, commandes...) continuent en arrière-plan et survivent à un redémarrage du serveur.
  • Exécution Hybride : Les tâches rapides retournent un résultat immédiatement, les tâches longues sont asynchrones.
  • Monitoring Intégré : Outils pour vérifier les ressources système, le statut des services (systemd, Docker, PM2), et la santé de vos APIs.

Installation et Utilisation

Le moyen le plus simple est d'utiliser npx. Configurez votre client MCP (comme gemini-cli) pour qu'il utilise l'orchestrateur :

{
  "mcpServers": {
    "orchestrator": {
      "command": "npx",
      "args": [
        "mcp-orchestrator-server"
      ],
      "env": {
        "MCP_DATA_DIR": "~/.config/mcp-orchestrator"
      }
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

C'est tout ! Votre client peut maintenant communiquer avec le serveur et utiliser tous ses outils.

Conclusion

mcp-orchestrator-server est un pas vers une gestion d'infrastructure plus intelligente et automatisée. En l'exposant via le Model-Context-Protocol, il devient un outil surpuissant dans l'arsenal de tout développeur ou DevOps qui utilise des agents IA.

Nous vous invitons à l'essayer, à contribuer sur GitHub et à nous faire part de vos retours !

Top comments (0)