Skip to main content
Glama
GongRzhe

Terminal Controller for MCP

list_directory

Display files and subdirectories in a specified directory to view directory contents and navigate the file system through the Terminal Controller MCP server.

Instructions

List files and subdirectories in the specified directory

Args:
    path: Directory path to list contents, default is current directory

Returns:
    List of directory contents

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pathNo

Implementation Reference

  • The handler function for the 'list_directory' tool. It lists contents of a directory (current if path=None) using os.listdir, separates directories and files with emojis, sorts them, formats output nicely, and handles common exceptions.
    @mcp.tool()
    async def list_directory(path: Optional[str] = None) -> str:
        """
        List files and subdirectories in the specified directory
        
        Args:
            path: Directory path to list contents, default is current directory
        
        Returns:
            List of directory contents
        """
        if path is None:
            path = os.getcwd()
        
        try:
            items = os.listdir(path)
            
            dirs = []
            files = []
            
            for item in items:
                full_path = os.path.join(path, item)
                if os.path.isdir(full_path):
                    dirs.append(f"๐Ÿ“ {item}/")
                else:
                    files.append(f"๐Ÿ“„ {item}")
            
            # Sort directories and files
            dirs.sort()
            files.sort()
            
            if not dirs and not files:
                return f"Directory '{path}' is empty"
            
            output = f"Contents of directory '{path}':\n\n"
            
            if dirs:
                output += "Directories:\n"
                output += "\n".join(dirs) + "\n\n"
            
            if files:
                output += "Files:\n"
                output += "\n".join(files)
            
            return output
        
        except FileNotFoundError:
            return f"Error: Directory '{path}' does not exist"
        except PermissionError:
            return f"Error: No permission to access directory '{path}'"
        except Exception as e:
            return f"Error listing directory contents: {str(e)}"
  • The @mcp.tool() decorator registers the list_directory function as an MCP tool with the FastMCP server.
    @mcp.tool()

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/GongRzhe/terminal-controller-mcp'

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