Skip to main content
Glama
samhavens

Databricks MCP Server

by samhavens

list_volume_files

List files and directories in a Databricks Unity Catalog volume to view file names, sizes, and modification times for dataset management.

Instructions

List files and directories in a Unity Catalog volume.

Args:
    volume_path: Volume path to list (e.g. '/Volumes/catalog/schema/volume/directory')

Returns:
    JSON with directory listing including file names, sizes, and modification times.
    
Example:
    # List files in volume directory
    files = list_volume_files('/Volumes/kbqa/stark_mas_eval/stark_raw_data/')
    
Note: Returns detailed file information including sizes for managing large datasets.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
volume_pathYes

Implementation Reference

  • MCP tool registration and handler for 'list_volume_files'. Uses @mcp.tool() decorator. Includes tool description/docstring that serves as schema. Delegates to volumes.list_volume_files for core logic.
    @mcp.tool()
    async def list_volume_files(volume_path: str) -> str:
        """
        List files and directories in a Unity Catalog volume.
    
        Args:
            volume_path: Volume path to list (e.g. '/Volumes/catalog/schema/volume/directory')
    
        Returns:
            JSON with directory listing including file names, sizes, and modification times.
            
        Example:
            # List files in volume directory
            files = list_volume_files('/Volumes/kbqa/stark_mas_eval/stark_raw_data/')
            
        Note: Returns detailed file information including sizes for managing large datasets.
        """
        logger.info(f"Listing volume files in: {volume_path}")
        try:
            result = volumes.list_volume_files(volume_path)
            return json.dumps(result)
        except Exception as e:
            logger.error(f"Error listing volume files: {str(e)}")
            return json.dumps({"error": str(e)})
  • Core helper function implementing the volume file listing logic using Databricks SDK WorkspaceClient.files.list_directory_contents.
    def list_volume_files(volume_path: str) -> Dict[str, Any]:
        """
        List files and directories in a Unity Catalog volume.
        
        Args:
            volume_path: Volume path to list (e.g. '/Volumes/catalog/schema/volume/directory')
            
        Returns:
            Response containing the directory listing with files and subdirectories
            
        Raises:
            Exception: If the SDK request fails
        """
        logger.info(f"Listing volume files in: {volume_path}")
        
        try:
            w = _get_workspace_client()
            
            # List directory contents using SDK
            files = w.files.list_directory_contents(directory_path=volume_path)
            
            # Convert to dict format similar to REST API response
            file_list = []
            for file_info in files:
                file_list.append({
                    "path": file_info.path,
                    "is_directory": file_info.is_directory,
                    "file_size": file_info.file_size,
                    "last_modified": file_info.last_modified
                })
            
            return {
                "files": file_list,
                "path": volume_path
            }
            
        except Exception as e:
            logger.error(f"Error listing volume files: {str(e)}")
            return {"error": str(e)}

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/samhavens/databricks-mcp-server'

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