CAT
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Cross AI Tools

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by @mertduzgun

Independent project, not affiliated with Anthropic

Mcp Sftp Orchestrator

fkom13/mcp-sftp-orchestrator
STDIOregistry active
Summary

This is a task orchestration server for managing remote Linux boxes over SSH and SFTP. It exposes tools to run commands, transfer files with glob patterns, monitor system resources, check service status for systemd/Docker/PM2, and tail logs. The queue system handles long-running operations with automatic retries and persistent state. You can set up multiple server aliases with key or password auth, execute interactive commands with auto-response to prompts, and maintain a health check catalog for HTTP endpoints. Useful when you're automating deployments, gathering metrics from production servers, or need an LLM to inspect and manipulate remote infrastructure without writing custom scripts.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

🚀 MCP Orchestrator — Serveur d'orchestration SSH/SFTP

Version : 9.0.1
License : MIT
Node : >= 18.0.0

Un serveur MCP (Model Context Protocol) qui donne à un agent IA la capacité d'exécuter des commandes SSH, des transferts SFTP, et du monitoring sur des serveurs distants. File d'attente persistante, pool de connexions SSH, exécution hybride synchrone/asynchrone.


📦 Installation

git clone https://github.com/fkom13/mcp-sftp-orchestrator.git
cd sftp-mcp
npm install
cp .env.example .env
# Éditer .env avec vos chemins

Prérequis : Node.js >= 18.0.0


⚙️ Configuration (.env)

Toutes les variables sont optionnelles. Les valeurs par défaut sont conçues pour un usage standard.

VariableDéfautDescription
MCP_DATA_DIR~/.config/mcp-orchestratorDossier où sont stockés servers.json, apis.json, queue.json, history.json
MCP_SYNC_TIMEOUT_S120Délai en secondes avant qu'une tâche passe en arrière-plan (retour immédiat au client, tâche continue)
MCP_DEFAULT_CMD_TIMEOUT_S600Timeout SSH par défaut en secondes. 0 = aucune limite
MCP_INTERACTIVE_CMD_TIMEOUT_S300Timeout pour les commandes interactives. 0 = aucune limite
MCP_MAX_WAIT_TIMEOUT_S600Timeout maximum pour l'outil task_wait
MAX_CONNECTIONS_PER_SERVER5Nombre max de connexions SSH simultanées par serveur
MIN_CONNECTIONS_PER_SERVER1Nombre min de connexions SSH maintenues par serveur
IDLE_TIMEOUT300000Délai en ms avant fermeture d'une connexion SSH inactive (5 min)
KEEP_ALIVE_INTERVAL30000Intervalle keepalive SSH en ms (30s)
MAX_QUEUE_SIZE1000Nombre maximum de jobs dans la file d'attente
SAVE_INTERVAL5000Intervalle de sauvegarde de la queue sur disque en ms (5s)
MCP_DEBUGfalsetrue pour activer les logs détaillés dans stderr

🔌 Connexion au client MCP (OpenCode, Claude Desktop, etc.)

{
  "mcpServers": {
    "orchestrator": {
      "command": "node",
      "args": ["/chemin/vers/sftp-mcp/server.js"],
      "env": {
        "MCP_DATA_DIR": "/chemin/vers/sftp-mcp/data"
      }
    }
  }
}

🧰 Référence des Outils (29 outils)

Diagnostic & Aide

OutilDescription
helpGuide complet : liste des outils, variables .env, astuces d'utilisation
system_diagnosticsDiagnostic complet (queue, pool, serveurs, APIs). verbose:true pour les logs

Gestion des Serveurs

OutilDescription
server_addAjouter/modifier un alias de serveur (host, user, keyPath ou password)
server_listLister tous les serveurs configurés avec leurs détails
server_removeSupprimer un alias de serveur

Gestion du Catalogue API

OutilDescription
api_addAjouter une API au catalogue de monitoring
api_listLister toutes les APIs configurées
api_removeSupprimer une API du catalogue
api_checkTest de santé d'une API via son alias (utilise SSH + curl)

Exécution de Tâches

OutilDescription
task_execExécuter une commande SSH. Paramètre timeout en secondes (0 = infini)
task_exec_interactiveSSH avec gestion des prompts (yes/no, menus, passwords). Supporte responses avec regex
task_exec_sequenceSéquence de plusieurs commandes SSH sur le même serveur
task_transferTransfert SFTP fichier ou dossier. force:true pour écraser sans confirmation
task_transfer_multiTransferts SFTP multiples avec support de patterns glob (*, ?, [])

Monitoring

OutilDescription
get_system_resourcesCPU, RAM, Disque d'un serveur
get_services_statusStatut des services systemd, Docker, PM2
get_fail2ban_statusStatut Fail2Ban (toutes les jails ou une spécifique)
check_api_healthTest HTTP direct sur une URL (via SSH + curl)

Logs

OutilDescription
get_pm2_logsLogs PM2 d'une application spécifique ou toutes
get_docker_logsLogs d'un container Docker
tail_fileDernières lignes d'un fichier distant (équivalent tail -n)

File d'Attente & Suivi

OutilDescription
task_queueVoir toutes les tâches (en cours, en attente, terminées)
task_statusDétail complet d'une tâche par son ID
task_historyHistorique des tâches exécutées, filtrable par alias
task_retryRelancer une tâche échouée ou crashée
task_waitAttendre la fin d'une tâche passée en arrière-plan (jusqu'à 600s)
task_logsLogs internes du système MCP
queue_statsStatistiques de la file d'attente
pool_statsStatistiques du pool de connexions SSH

📖 Guide d'Utilisation

Commandes longues (docker build, grosses installs)

1. Lancer avec timeout:0 → task_exec { alias: "vps", cmd: "docker build ...", timeout: 0 }
2. Si ça dépasse 120s → passe en arrière-plan avec un ID
3. Récupérer le résultat → task_wait { id: "abc123" }

Transferts SFTP (façon FileZilla)

  • Fichier nouveau : upload/download sans rien de spécial
  • Fichier existe déjà : refusé avec message "Utilisez force:true pour écraser"
  • Avec force: true : écrase sans rien demander
  • Dossier → dossier : transfert récursif automatique
  • Patterns glob : task_transfer_multi avec *.txt, data?.json, etc.

Mode interactif

{
  "alias": "vps",
  "cmd": "apt upgrade",
  "interactive": true,
  "autoRespond": true,
  "responses": {
    "Do you want to continue": "y",
    "restart services": "yes"
  }
}

Les clés de responses supportent les expressions régulières. Ex: "[YyNn]\\\\?" → "y".


🏗️ Architecture

Client MCP (stdio ou HTTP)
    │
server.js ─── 29 outils MCP enregistrés
    │
    ├── queue.js ─── File d'attente persistante (JSON + backup auto)
    ├── ssh.js ───── Exécution SSH (pool ou connexion dédiée interactive)
    ├── sftp.js ──── Transferts SFTP (upload/download, glob, force)
    ├── sshPool.js ─ Pool de connexions SSH persistantes (max 5/serveur)
    ├── servers.js ─ CRUD alias de serveurs
    ├── apis.js ──── CRUD catalogue d'APIs
    ├── history.js ─ Historique des 500 dernières tâches
    ├── config.js ── Configuration centralisée (CLI > .env > defaults)
    └── utils.js ─── Utilitaires (escapeShellArg)

Cycle de vie d'un job

pending → running → completed / failed
                      ↓ (si redémarrage pendant running)
                    crashed → retry → pending

🔒 Sécurité

  • escapeShellArg() : toutes les URLs et chemins sont échappés avant d'être passés à curl/shell
  • Détection de secrets en clair : au démarrage, un warning est loggé si servers.json ou apis.json contiennent des mots de passe/clés API
  • Recommandation : utilisez des clés SSH (pas de mots de passe) et stockez les clés API dans Vaultwarden plutôt qu'en clair

🧪 Tests

node diagnose.js        # Diagnostic complet
node test_mcp.js        # Test smoke MCP
node test_features.js   # Tests unitaires (queue, pool, glob, prompts, crash)

🛣️ Roadmap

VersionChangement
8.2.0Ménage, uniformisation erreurs, nettoyage logs
8.3.0Transferts SFTP blindés (fichier vs dossier, force:true)
8.4.0Timeouts longues opérations, task_wait
8.5.0SSH interactif amélioré (menus, regex, password)
8.6.0Sécurité (escapeShellArg, détection secrets)
9.0.0Nettoyage, uniformisation finale, outil help, transport stdio uniquement
9.0.1Corrections sécurité (injection shell, vestiges code)

📄 Licence

MIT — Copyright (c) 2025-2026 Franck (fkom13)

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Registryactive
Packagemcp-orchestrator-server
TransportSTDIO
UpdatedNov 14, 2025
View on GitHub