Skip to main content
Glama
santoshray02

CSV Editor

by santoshray02

sort_data

Sort CSV data by specified columns to organize information for analysis or presentation.

Instructions

Sort data by columns.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
session_idYes
columnsYes

Implementation Reference

  • Core handler function that implements the sorting logic using pandas DataFrame.sort_values, parses column specifications, validates columns, updates the session dataframe, and records the operation.
    async def sort_data(
        session_id: str, 
        columns: List[Union[str, Dict[str, str]]], 
        ctx: Context = None
    ) -> Dict[str, Any]:
        """
        Sort data by one or more columns.
        
        Args:
            session_id: Session identifier
            columns: List of column names or dicts with 'column' and 'ascending' keys
            ctx: FastMCP context
            
        Returns:
            Dict with success status
        """
        try:
            manager = get_session_manager()
            session = manager.get_session(session_id)
            
            if not session or session.df is None:
                return {"success": False, "error": "Invalid session or no data loaded"}
            
            df = session.df
            
            # Parse columns into names and ascending flags
            sort_columns = []
            ascending = []
            
            for col in columns:
                if isinstance(col, str):
                    sort_columns.append(col)
                    ascending.append(True)
                elif isinstance(col, dict):
                    sort_columns.append(col["column"])
                    ascending.append(col.get("ascending", True))
                else:
                    return {"success": False, "error": f"Invalid column specification: {col}"}
            
            # Validate columns exist
            for col in sort_columns:
                if col not in df.columns:
                    return {"success": False, "error": f"Column '{col}' not found"}
            
            session.df = df.sort_values(by=sort_columns, ascending=ascending).reset_index(drop=True)
            session.record_operation(OperationType.SORT, {
                "columns": sort_columns,
                "ascending": ascending
            })
            
            return {
                "success": True,
                "sorted_by": sort_columns,
                "ascending": ascending
            }
            
        except Exception as e:
            logger.error(f"Error sorting data: {str(e)}")
            return {"success": False, "error": str(e)}
  • MCP tool registration decorator (@mcp.tool) and wrapper function that delegates to the core _sort_data implementation from transformations module.
    @mcp.tool
    async def sort_data(
        session_id: str,
        columns: List[Any],
        ctx: Context = None
    ) -> Dict[str, Any]:
        """Sort data by columns."""
        return await _sort_data(session_id, columns, ctx)

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/santoshray02/csv-editor'

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