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
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Directory path to list |
Implementation Reference
- src/mcp/directory.ts:11-36 (handler)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' }; } })); }
- src/mcp/directory.ts:41-41 (schema)Zod input schema defining the 'path' parameter for the list_directory tool.{ path: z.string().describe("Directory path to list") },
- src/mcp/directory.ts:39-57 (registration)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);