Skip to main content
Glama
A-Niranjan

MCP Filesystem Server

by A-Niranjan

list_directory

Lists all files and directories in a specified path with clear [FILE] and [DIR] labels to understand directory structure and locate specific items.

Instructions

Get a detailed listing of all files and directories in a specified path. Results clearly distinguish between files and directories with [FILE] and [DIR] prefixes. This tool is essential for understanding directory structure and finding specific files within a directory. Only works within allowed directories.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pathYesPath of the directory to list

Implementation Reference

  • The handler function for the 'list_directory' tool. Validates input using ListDirectoryArgsSchema, resolves and validates the path, reads directory entries with fs.readdir, sorts them (dirs first), formats with [DIR]/[FILE] prefixes, and returns as text content.
    case 'list_directory': { const parsed = ListDirectoryArgsSchema.safeParse(a) if (!parsed.success) { throw new FileSystemError(`Invalid arguments for ${name}`, 'INVALID_ARGS', undefined, { errors: parsed.error.format(), }) } const validPath = await validatePath(parsed.data.path, config) const entries = await fs.readdir(validPath, { withFileTypes: true }) // Sort directories first, then files, both alphabetically entries.sort((c, d) => { if (c.isDirectory() && !d.isDirectory()) return -1 if (!c.isDirectory() && d.isDirectory()) return 1 return c.name.localeCompare(d.name) }) const formatted = entries .map((entry) => `${entry.isDirectory() ? '[DIR]' : '[FILE]'} ${entry.name}`) .join('\n') await logger.debug(`Listed directory: ${validPath}`, { entryCount: entries.length }) endMetric() return { content: [{ type: 'text', text: formatted }], } }
  • Zod schema defining the input for list_directory tool: requires a 'path' string.
    const ListDirectoryArgsSchema = z.object({ path: z.string().describe('Path of the directory to list'), })
  • src/index.ts:279-286 (registration)
    Registration of the 'list_directory' tool in the ListTools response, including name, description, and input schema converted to JSON schema.
    { name: 'list_directory', description: 'Get a detailed listing of all files and directories in a specified path. ' + 'Results clearly distinguish between files and directories with [FILE] and [DIR] ' + 'prefixes. This tool is essential for understanding directory structure and ' + 'finding specific files within a directory. Only works within allowed directories.', inputSchema: zodToJsonSchema(ListDirectoryArgsSchema) as ToolInput,

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/A-Niranjan/mcp-filesystem'

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