task_transfer
Initiates SFTP file transfers between local and remote servers, handling short tasks immediately and queuing longer transfers for background processing.
Instructions
Lance un transfert SFTP. Si la tâche prend moins de 30s, le résultat est direct. Sinon, elle passe en arrière-plan.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| alias | Yes | Alias du serveur cible. | |
| direction | Yes | ||
| local | Yes | Chemin absolu local. | |
| remote | Yes | Chemin absolu distant. | |
| rappel | No | Définit un rappel en secondes. |
Implementation Reference
- server.js:411-423 (handler)Handler function that creates an SFTP transfer job, logs it, executes the transfer via sftp module, waits for synchronous completion or reports background execution.async (params) => { const job = queue.addJob({ type: 'sftp', ...params, status: 'pending' }); history.logTask(job); sftp.executeTransfer(job.id); const finalJob = await waitForJobCompletion(job.id, config.syncTimeout); if (finalJob) { return { content: [{ type: "text", text: `Résultat direct (tâche ${finalJob.id}): ${JSON.stringify(finalJob, null, 2)}` }] }; } else { return { content: [{ type: "text", text: `Tâche de transfert ${job.id} initiée en arrière-plan.` }] }; } }
- server.js:400-410 (schema)Tool metadata including title, description, and input schema using Zod for validation of parameters: alias, direction (upload/download), local path, remote path, optional rappel.{ title: "Transférer un fichier ou dossier (SFTP)", description: `Lance un transfert SFTP. Si la tâche prend moins de ${config.syncTimeout / 1000}s, le résultat est direct. Sinon, elle passe en arrière-plan.`, inputSchema: z.object({ alias: z.string().describe("Alias du serveur cible."), direction: z.enum(['upload', 'download']), local: z.string().describe("Chemin absolu local."), remote: z.string().describe("Chemin absolu distant."), rappel: z.number().optional().describe("Définit un rappel en secondes.") }) },
- server.js:398-423 (registration)Registration of the 'task_transfer' tool using server.registerTool, including schema and inline handler function.server.registerTool( "task_transfer", { title: "Transférer un fichier ou dossier (SFTP)", description: `Lance un transfert SFTP. Si la tâche prend moins de ${config.syncTimeout / 1000}s, le résultat est direct. Sinon, elle passe en arrière-plan.`, inputSchema: z.object({ alias: z.string().describe("Alias du serveur cible."), direction: z.enum(['upload', 'download']), local: z.string().describe("Chemin absolu local."), remote: z.string().describe("Chemin absolu distant."), rappel: z.number().optional().describe("Définit un rappel en secondes.") }) }, async (params) => { const job = queue.addJob({ type: 'sftp', ...params, status: 'pending' }); history.logTask(job); sftp.executeTransfer(job.id); const finalJob = await waitForJobCompletion(job.id, config.syncTimeout); if (finalJob) { return { content: [{ type: "text", text: `Résultat direct (tâche ${finalJob.id}): ${JSON.stringify(finalJob, null, 2)}` }] }; } else { return { content: [{ type: "text", text: `Tâche de transfert ${job.id} initiée en arrière-plan.` }] }; } }