Skip to main content
Glama

liara_list_ftp_accesses

Retrieve FTP access records for a specific disk in your Liara cloud application to monitor file transfer activities and manage permissions.

Instructions

List FTP accesses for a disk

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
appNameYesThe name of the app
diskNameYesThe name of the disk
pageNoPage number (1-based)
perPageNoNumber of items per page
limitNoAlternative to perPage: maximum number of items to return
offsetNoAlternative to page: number of items to skip

Implementation Reference

  • The core handler function that implements the tool logic: lists FTP accesses for a specific disk in a Liara project by querying the API.
    export async function listFtpAccesses( client: LiaraClient, appName: string, diskName: string, pagination?: PaginationOptions ): Promise<FtpAccess[]> { validateAppName(appName); validateRequired(diskName, 'Disk name'); const params = paginationToParams(pagination); return await client.get<FtpAccess[]>( `/v1/projects/${appName}/disks/${diskName}/ftp`, params ); }
  • TypeScript interface defining the input/output schema for FTP access objects returned by liara_list_ftp_accesses.
    export interface FtpAccess { _id?: string; hostname: string; port: number; username: string; password: string; }
  • Imports and supporting utilities used by the FTP accesses handler, including client, types, and validation functions.
    import { LiaraClient } from '../api/client.js'; import { Disk, CreateDiskRequest, FtpAccess, PaginationOptions, paginationToParams, } from '../api/types.js'; import { validateAppName, validateRequired } from '../utils/errors.js'; /** * List disks for a project */ export async function listDisks( client: LiaraClient, appName: string, pagination?: PaginationOptions ): Promise<Disk[]> { validateAppName(appName); // Disks are included in project details, but we can still apply pagination client-side if needed const project = await client.get<any>(`/v1/projects/${appName}`); const disks = project.disks || []; // Apply client-side pagination if needed (since disks come from project details) if (pagination) { const page = pagination.page || 1; const perPage = pagination.perPage || pagination.limit || 100; const start = (page - 1) * perPage; const end = start + perPage; return disks.slice(start, end); } return disks; } /** * Get details of a specific disk */ export async function getDisk( client: LiaraClient, appName: string, diskName: string ): Promise<Disk> { validateAppName(appName); validateRequired(diskName, 'Disk name'); return await client.get<Disk>(`/v1/projects/${appName}/disks/${diskName}`); } /** * Create a new disk for a project */ export async function createDisk( client: LiaraClient, appName: string, request: CreateDiskRequest ): Promise<Disk> { validateAppName(appName); validateRequired(request.name, 'Disk name'); validateRequired(request.size, 'Disk size'); validateRequired(request.mountPath, 'Mount path'); if (request.size <= 0) { throw new Error('Disk size must be greater than 0'); } return await client.post<Disk>( `/v1/projects/${appName}/disks`, request ); } /** * Delete a disk */ export async function deleteDisk( client: LiaraClient, appName: string, diskName: string ): Promise<void> { validateAppName(appName); validateRequired(diskName, 'Disk name'); await client.delete(`/v1/projects/${appName}/disks/${diskName}`); } /** * Create FTP access for a disk */ export async function createFtpAccess( client: LiaraClient, appName: string, diskName: string ): Promise<FtpAccess> { validateAppName(appName); validateRequired(diskName, 'Disk name'); return await client.post<FtpAccess>( `/v1/projects/${appName}/disks/${diskName}/ftp` ); } /** * List FTP accesses for a disk */ export async function listFtpAccesses( client: LiaraClient, appName: string, diskName: string, pagination?: PaginationOptions ): Promise<FtpAccess[]> { validateAppName(appName); validateRequired(diskName, 'Disk name'); const params = paginationToParams(pagination); return await client.get<FtpAccess[]>( `/v1/projects/${appName}/disks/${diskName}/ftp`, params ); }

Other Tools

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/razavioo/liara-mcp'

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