Skip to main content
Glama

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
NameRequiredDescriptionDefault
aliasYesAlias du serveur cible.
directionYes
localYesChemin absolu local.
remoteYesChemin absolu distant.
rappelNoDéfinit un rappel en secondes.

Implementation Reference

  • 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.` }] }; } }
  • 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.` }] }; } }

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