server_add
Add or update SFTP server connection details for remote 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
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- server.js:65-78 (handler)Handler function for the 'server_add' tool that destructures parameters, calls servers.addServer, and returns success or formatted error response.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 }; } }
- server.js:52-64 (schema)Input schema definition for server_add tool using Zod, validating alias, host, user, and authentication method (keyPath or password).{ 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')." }) },
- server.js:50-79 (registration)MCP server tool registration for 'server_add', including title, description, input 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 }; } } );
- servers.js:21-33 (helper)Core helper function addServer that reads servers.json, adds or updates the server configuration for the given alias, and writes back to file.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.` }; }