data_mean_horizontal
Calculate row-wise mean values across columns for input data files using MCP Data Wrangler, enabling efficient horizontal data aggregation and preprocessing.
Instructions
Mean values across columns for each row
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| input_data_file_path | No | Path to the input data file |
Implementation Reference
- The core handler function for the 'data_mean_horizontal' tool. It loads the input data file, computes the mean across columns (horizontal mean) for each row using pandas DataFrame.mean_horizontal(), converts the result to a JSON dictionary, and returns it as TextContent. Includes error handling.
async def handle_data_mean_horizontal( arguments: dict[str, Any], ) -> list[types.TextContent | types.ImageContent | types.EmbeddedResource]: data_mean_input = DataMeanInputSchema.from_args(arguments) try: mean_horizontal_df = data_mean_input.df.mean_horizontal() # Convert the DataFrame to a dictionary format mean_horizontal_dict = { "description": "Mean values across columns for each row", "mean_values": {str(i): str(val) if val is not None else None for i, val in enumerate(mean_horizontal_df)}, } return [ types.TextContent( type="text", text=json.dumps(mean_horizontal_dict), ) ] except Exception as e: logger.error(f"Error calculating mean: {e}") return [ types.TextContent( type="text", text=json.dumps( { "error": "Failed to calculate mean values.", "message": str(e), } ), ) ] - Pydantic-based input schema (DataMeanInputSchema) for validating the tool's input, which requires 'input_data_file_path'. Provides static methods for schema definition used in MCP Tool inputSchema, loading data, and conversion from arguments.
class DataMeanInputSchema(Data): model_config = ConfigDict( validate_assignment=True, frozen=True, extra="forbid", arbitrary_types_allowed=True, ) @staticmethod def input_schema() -> dict: return { "type": "object", "properties": { "input_data_file_path": { "type": "string", "description": "Path to the input data file", }, }, } @staticmethod def from_schema(input_data_file_path: str) -> "DataMeanInputSchema": data = Data.from_file(input_data_file_path) return DataMeanInputSchema(df=data.df) @staticmethod def from_args(arguments: dict[str, Any]) -> "DataMeanInputSchema": input_data_file_path = arguments["input_data_file_path"] return DataMeanInputSchema.from_schema(input_data_file_path=input_data_file_path) - src/mcp_server_data_wrangler/tools/tools.py:117-121 (registration)Tool registration within MCPServerDataWrangler.tools() method, defining the 'data_mean_horizontal' tool's name, description from enum, and inputSchema from DataMeanInputSchema.
types.Tool( name=MCPServerDataWrangler.data_mean_horizontal.value[0], description=MCPServerDataWrangler.data_mean_horizontal.value[1], inputSchema=DataMeanInputSchema.input_schema(), ), - src/mcp_server_data_wrangler/tools/tools.py:149-168 (registration)Handler mapping dictionary in MCPServerDataWrangler.tool_to_handler(), mapping 'data_mean_horizontal' tool name to the handle_data_mean_horizontal function.
@staticmethod def tool_to_handler() -> dict[str, Callable]: return { MCPServerDataWrangler.data_shape.value[0]: handle_data_shape, MCPServerDataWrangler.data_schema.value[0]: handle_data_schema, MCPServerDataWrangler.describe_data.value[0]: handle_describe_data, MCPServerDataWrangler.data_estimated_size.value[0]: handle_data_estimated_size, MCPServerDataWrangler.data_count.value[0]: handle_data_count, MCPServerDataWrangler.data_max.value[0]: handle_data_max, MCPServerDataWrangler.data_max_horizontal.value[0]: handle_data_max_horizontal, MCPServerDataWrangler.data_min.value[0]: handle_data_min, MCPServerDataWrangler.data_min_horizontal.value[0]: handle_data_min_horizontal, MCPServerDataWrangler.data_mean.value[0]: handle_data_mean, MCPServerDataWrangler.data_mean_horizontal.value[0]: handle_data_mean_horizontal, MCPServerDataWrangler.data_median.value[0]: handle_data_median, MCPServerDataWrangler.data_product.value[0]: handle_data_product, MCPServerDataWrangler.data_quantile.value[0]: handle_data_quantile, MCPServerDataWrangler.data_std.value[0]: handle_data_std, MCPServerDataWrangler.data_var.value[0]: handle_data_var, } - Enum definition MCPServerDataWrangler that holds tool names and descriptions, used for registration; specifically data_mean_horizontal at line 50.
class MCPServerDataWrangler(Enum): data_shape = ("data_shape", "Data shape of the input data") data_schema = ("data_schema", "Data schema of the input data") describe_data = ("describe_data", "Summary statistics of the input data") data_estimated_size = ("data_estimated_size", "Estimated size of the input data") data_count = ("data_count", "Number of non-null elements for each column") data_max = ("data_max", "Maximum values for each column") data_max_horizontal = ("data_max_horizontal", "Maximum values across columns for each row") data_min = ("data_min", "Minimum values for each column") data_min_horizontal = ("data_min_horizontal", "Minimum values across columns for each row") data_mean = ("data_mean", "Mean values for each column") data_mean_horizontal = ("data_mean_horizontal", "Mean values across columns for each row") data_median = ("data_median", "Median values for each column") data_product = ("data_product", "Product values for each column") data_quantile = ("data_quantile", "Quantile values for each column") data_std = ("data_std", "Standard deviation values for each column") data_var = ("data_var", "Variance values for each column")