Skip to main content
Glama
gunjanjp

Linux Bash MCP Server

by gunjanjp

list_directory

List directory contents in WSL2 Linux to view files and folders, with options for basic or detailed output.

Instructions

List contents of a directory in WSL2 Linux environment

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pathNoDirectory path to list (optional, defaults to current directory).
detailedNoShow detailed information (ls -la) (optional, defaults to false)

Implementation Reference

  • The handler function for the 'list_directory' tool. It destructures the input arguments, constructs an 'ls' command (with optional '-la' for detailed view), executes it via WSL using execAsync, and returns a structured JSON response with the directory listing or error.
    async listDirectory(args) { const { path: dirPath = ".", detailed = false } = args; if (!this.wslDistribution) { throw new Error("WSL distribution not configured"); } try { const command = detailed ? `ls -la '${dirPath}'` : `ls '${dirPath}'`; const wslCommand = `wsl -d ${this.wslDistribution} -- ${command}`; console.error(`[DEBUG] Listing directory: ${wslCommand}`); const { stdout, stderr } = await execAsync(wslCommand); return { content: [ { type: "text", text: JSON.stringify({ success: true, path: dirPath, detailed: detailed, wslDistribution: this.wslDistribution, listing: stdout || "", stderr: stderr || "", timestamp: new Date().toISOString() }, null, 2), }, ], }; } catch (error) { return { content: [ { type: "text", text: JSON.stringify({ success: false, path: dirPath, wslDistribution: this.wslDistribution, error: error.message, timestamp: new Date().toISOString() }, null, 2), }, ], }; }
  • The input schema defining the parameters for the 'list_directory' tool: optional 'path' (defaults to '.') and optional 'detailed' boolean (defaults to false). Used for validation in tool calls.
    inputSchema: { type: "object", properties: { path: { type: "string", description: "Directory path to list (optional, defaults to current directory)", default: "." }, detailed: { type: "boolean", description: "Show detailed information (ls -la) (optional, defaults to false)", default: false } }, },
  • src/index.js:288-289 (registration)
    The switch case in the CallToolRequestSchema handler that registers and dispatches 'list_directory' tool calls to the listDirectory method.
    case "list_directory": return await this.listDirectory(args);
  • src/index.js:237-255 (registration)
    The tool specification object returned by ListToolsRequestSchema handler, registering the 'list_directory' tool with its name, description, and input schema.
    { name: "list_directory", description: "List contents of a directory in WSL2 Linux environment", inputSchema: { type: "object", properties: { path: { type: "string", description: "Directory path to list (optional, defaults to current directory)", default: "." }, detailed: { type: "boolean", description: "Show detailed information (ls -la) (optional, defaults to false)", default: false } }, }, },

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/gunjanjp/linuxshell-mcp'

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