Skip to main content
Glama
arjshiv

Local Utilities MCP Server

by arjshiv

list_directory

Generate a detailed directory listing by specifying the path. This tool, part of the Local Utilities MCP Server, helps users quickly access and manage local system directory structures using MCP client interfaces.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pathYesDirectory path to list

Implementation Reference

  • Core implementation of directory listing logic using Node.js fs.promises.readdir and stat to return file/directory info with optional sizes.
    export async function listDirectory(dirPath: string): Promise<Array<{ name: string; type: string; size?: number }>> { const entries = await fs.promises.readdir(dirPath, { withFileTypes: true }); return Promise.all(entries.map(async (entry) => { const entryPath = path.join(dirPath, entry.name); if (entry.isDirectory()) { return { name: entry.name, type: 'directory' }; } else if (entry.isFile()) { try { const stats = await fs.promises.stat(entryPath); return { name: entry.name, type: 'file', size: stats.size }; } catch (statError) { // Handle potential stat errors (e.g., broken symlinks) console.warn(`Could not stat file ${entryPath}:`, statError); return { name: entry.name, type: 'file', size: undefined }; // Indicate file, but size unknown } } else { return { name: entry.name, type: 'other' }; } })); }
  • Zod input schema defining the 'path' parameter for the list_directory tool.
    { path: z.string().describe("Directory path to list") },
  • MCP server tool registration for 'list_directory', including input schema and thin wrapper handler that formats output as JSON text content.
    server.tool( "list_directory", { path: z.string().describe("Directory path to list") }, async (params) => { // Let SDK handle errors like directory not found const dirPath = params.path; const contents = await listDirectory(dirPath); return { content: [{ type: "text", text: JSON.stringify({ path: dirPath, contents }, null, 2) }] }; } );
  • src/index.ts:21-21 (registration)
    Call to registerDirectoryTool function to add the list_directory tool to the main MCP server instance.
    registerDirectoryTool(server);

Other Tools

Related 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/arjshiv/localutils-mcp-server'

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