Skip to main content
Glama
fkom13

MCP SFTP Orchestrator

by fkom13

server_add

Add or update server connection details for SSH/SFTP management, requiring either a key path or password for authentication.

Instructions

Enregistre ou met à jour les informations de connexion d'un serveur. Vous devez fournir soit un chemin de clé, soit un mot de passe.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • server.js:65-78 (handler)
    Inline handler function that destructures input parameters, calls the servers.addServer helper, and formats the response or error payload.
    async (params) => {
        try {
            const { alias, ...serverConfig } = params;
            const result = await servers.addServer(alias, serverConfig);
            return { content: [{ type: "text", text: result.message }] };
        } catch (e) {
            const errorPayload = {
                toolName: "server_add",
                errorCode: "TOOL_EXECUTION_ERROR",
                errorMessage: e.message
            };
            return { content: [{ type: "text", text: JSON.stringify(errorPayload, null, 2) }], isError: true };
        }
    }
  • Core logic for adding or updating a server configuration in the servers.json file by reading, modifying, and writing the JSON data.
    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.` };
    }
  • Zod schema validating input parameters: required alias, host, user; optional keyPath or password (at least one auth method required).
        inputSchema: z.object({
            alias: z.string().describe("Nom court et unique pour le serveur (ex: vps_production)"),
            host: z.string().describe("Adresse IP ou nom d'hôte du serveur"),
            user: z.string().describe("Nom d'utilisateur pour la connexion"),
            keyPath: z.string().optional().describe("Chemin absolu vers la clé privée SSH."),
            password: z.string().optional().describe("Mot de passe pour la connexion.")
        }).refine(data => data.keyPath || data.password, {
            message: "Vous devez fournir au moins une méthode d'authentification ('keyPath' ou 'password')."
        })
    },
  • server.js:50-79 (registration)
    Full registration of the 'server_add' tool with McpServer, including name, metadata, schema, and handler function.
    server.registerTool(
        "server_add",
        {
            title: "Ajouter/Modifier un alias de serveur",
            description: "Enregistre ou met à jour les informations de connexion d'un serveur. Vous devez fournir soit un chemin de clé, soit un mot de passe.",
            inputSchema: z.object({
                alias: z.string().describe("Nom court et unique pour le serveur (ex: vps_production)"),
                host: z.string().describe("Adresse IP ou nom d'hôte du serveur"),
                user: z.string().describe("Nom d'utilisateur pour la connexion"),
                keyPath: z.string().optional().describe("Chemin absolu vers la clé privée SSH."),
                password: z.string().optional().describe("Mot de passe pour la connexion.")
            }).refine(data => data.keyPath || data.password, {
                message: "Vous devez fournir au moins une méthode d'authentification ('keyPath' ou 'password')."
            })
        },
        async (params) => {
            try {
                const { alias, ...serverConfig } = params;
                const result = await servers.addServer(alias, serverConfig);
                return { content: [{ type: "text", text: result.message }] };
            } catch (e) {
                const errorPayload = {
                    toolName: "server_add",
                    errorCode: "TOOL_EXECUTION_ERROR",
                    errorMessage: e.message
                };
                return { content: [{ type: "text", text: JSON.stringify(errorPayload, null, 2) }], isError: true };
            }
        }
    );

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/fkom13/mcp-sftp-orchestrator'

If you have feedback or need assistance with the MCP directory API, please join our Discord server