Skip to main content
Glama

transform_column_case

Change text case in a CSV column to uppercase, lowercase, title case, or capitalize sentences for data standardization and analysis.

Instructions

Transform the case of text in a column.

Returns: ColumnOperationResult with transformation details

Examples: # Convert to uppercase transform_column_case(ctx, "code", "upper")

# Convert names to title case transform_column_case(ctx, "name", "title") # Convert to lowercase for comparison transform_column_case(ctx, "email", "lower") # Capitalize sentences transform_column_case(ctx, "description", "capitalize")

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
columnYesColumn name to transform text case in
transformYesCase transformation: upper, lower, title, or capitalize

Implementation Reference

  • The main asynchronous handler function that transforms the case of text in a specified DataFrame column based on the provided transform type (upper, lower, title, capitalize) using pandas string methods. It validates the column exists, applies the transformation in-place, counts changes, and returns a ColumnOperationResult.
    async def transform_column_case( ctx: Annotated[Context, Field(description="FastMCP context for session access")], column: Annotated[str, Field(description="Column name to transform text case in")], transform: Annotated[ Literal["upper", "lower", "title", "capitalize"], Field(description="Case transformation: upper, lower, title, or capitalize"), ], ) -> ColumnOperationResult: """Transform the case of text in a column. Returns: ColumnOperationResult with transformation details Examples: # Convert to uppercase transform_column_case(ctx, "code", "upper") # Convert names to title case transform_column_case(ctx, "name", "title") # Convert to lowercase for comparison transform_column_case(ctx, "email", "lower") # Capitalize sentences transform_column_case(ctx, "description", "capitalize") """ # Get session_id from FastMCP context session_id = ctx.session_id _session, df = get_session_data(session_id) _validate_column_exists(column, df) # Store original for comparison original_data = df[column].copy() # Apply case transformation str_col = df[column].astype(str) if transform == "upper": df[column] = str_col.str.upper() elif transform == "lower": df[column] = str_col.str.lower() elif transform == "title": df[column] = str_col.str.title() elif transform == "capitalize": df[column] = str_col.str.capitalize() else: msg = "transform" raise InvalidParameterError( msg, transform, "Supported transforms: upper, lower, title, capitalize", ) # Count changes made changes_made = _count_column_changes(original_data, df[column]) return ColumnOperationResult( operation=f"case_{transform}", rows_affected=changes_made, columns_affected=[column], )
  • Registration of the transform_column_case function as a tool named 'transform_column_case' on the FastMCP column_text_server instance.
    column_text_server.tool(name="transform_column_case")(transform_column_case)
  • Pydantic-based input schema defined via Annotated types and Field descriptions for the tool parameters: ctx (Context), column (str), transform (Literal['upper', 'lower', 'title', 'capitalize']). Output is ColumnOperationResult.
    async def transform_column_case( ctx: Annotated[Context, Field(description="FastMCP context for session access")], column: Annotated[str, Field(description="Column name to transform text case in")], transform: Annotated[ Literal["upper", "lower", "title", "capitalize"], Field(description="Case transformation: upper, lower, title, or capitalize"), ], ) -> ColumnOperationResult:
  • Helper function used by the handler to count the number of rows changed after transformation by comparing original and modified series.
    def _count_column_changes(original: pd.Series, modified: pd.Series) -> int: """Count number of changes between original and modified column data. Args: original: Original column data modified: Modified column data Returns: Number of rows that changed """ changed_mask = original.astype(str).fillna("") != modified.astype(str).fillna("") return int(changed_mask.sum())
  • Helper function used by the handler to validate that the specified column exists in the DataFrame, raising ColumnNotFoundError if not.
    def _validate_column_exists(column: str, df: pd.DataFrame) -> None: """Validate that a column exists in the DataFrame. Args: column: Column name to check df: DataFrame to check in Raises: ColumnNotFoundError: If column doesn't exist """ if column not in df.columns: raise ColumnNotFoundError(column, df.columns.tolist())

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/jonpspri/databeak'

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