Skip to main content
Glama

mcp-google-sheets

read-file.ts2.06 kB
import { endClient, sftpAuth } from '../../index'; import { Property, createAction } from '@activepieces/pieces-framework'; import Client from 'ssh2-sftp-client'; import { Client as FTPClient } from 'basic-ftp'; import { getClient, getProtocolBackwardCompatibility } from '../..'; import { Writable } from 'stream'; async function readFTP(client: FTPClient, filePath: string) { const chunks: Buffer[] = []; const writeStream = new Writable({ write(chunk: Buffer, _encoding: string, callback: () => void) { chunks.push(chunk); callback(); } }); await client.downloadTo(writeStream, filePath); return Buffer.concat(chunks); } async function readSFTP(client: Client, filePath: string) { const fileContent = await client.get(filePath); await client.end(); return fileContent as Buffer; } export const readFileContent = createAction({ auth: sftpAuth, name: 'read_file_content', displayName: 'Read File Content', description: 'Read the content of a file.', props: { filePath: Property.ShortText({ displayName: 'File Path', required: true, }), }, async run(context) { const client = await getClient(context.auth); const filePath = context.propsValue['filePath']; const fileName = filePath.split('/').pop() ?? filePath; const protocolBackwardCompatibility = await getProtocolBackwardCompatibility(context.auth.protocol); try { let fileContent: Buffer; switch (protocolBackwardCompatibility) { case 'ftps': case 'ftp': fileContent = await readFTP(client as FTPClient, filePath); break; default: case 'sftp': fileContent = await readSFTP(client as Client, filePath); break; } return { file: await context.files.write({ fileName: fileName, data: fileContent, }), }; } catch (err) { return { success: false, error: err, }; } finally { await endClient(client, context.auth.protocol); } }, });

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/activepieces/activepieces'

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