UNPKG

mcp-orchestrator-server

Version:

Serveur MCP pour l'orchestration de tâches distantes (SSH/SFTP) avec une file d'attente persistante.

58 lines (51 loc) 1.86 kB
import fs from 'fs/promises'; import path from 'path'; import config from './config.js'; const SERVERS_FILE_PATH = path.join(config.dataDir, 'servers.json'); async function readServers() { try { await fs.access(SERVERS_FILE_PATH); const data = await fs.readFile(SERVERS_FILE_PATH, 'utf-8'); return JSON.parse(data); } catch (error) { // Si le fichier n'existe pas, on retourne un objet vide return {}; } } async function writeServers(servers) { await fs.writeFile(SERVERS_FILE_PATH, JSON.stringify(servers, null, 2)); } async function addServer(alias, config) { const servers = await readServers(); if (servers[alias]) { // L'alias existe, on le met à jour servers[alias] = { ...servers[alias], ...config }; await writeServers(servers); return { success: true, message: `Serveur '${alias}' mis à jour avec succès.` }; } // L'alias n'existe pas, on le crée servers[alias] = config; await writeServers(servers); return { success: true, message: `Serveur '${alias}' ajouté avec succès.` }; } async function removeServer(alias) { const servers = await readServers(); if (!servers[alias]) { throw new Error(`L'alias '${alias}' n'existe pas.`); } delete servers[alias]; await writeServers(servers); return { success: true, message: `Serveur '${alias}' supprimé.` }; } async function listServers() { return await readServers(); } async function getServer(alias) { const servers = await readServers(); const serverConfig = servers[alias]; if (!serverConfig) { throw new Error(`L'alias de serveur '${alias}' est inconnu. Utilisez d'abord 'server_list' pour voir les alias disponibles.`); } return serverConfig; } export default { addServer, removeServer, listServers, getServer };