An MCP server for analyzing CSV data using pandas, specifically designed for the Titanic dataset
This server has significant definition quality gaps. All 7 tools have descriptions (positive), but most are generic and under 100 chars. Input schemas are present but minimal: most parameters lack type specificity (e.g., tool_head accepts 'n' as string instead of integer; tool_fillna_count uses a single 'args' string instead of separate col/value params). No output schemas are documented. Error handling is minimal, only tool_value_counts and tool_unique_values check for missing columns. No tool annotations (readOnlyHint, etc.). Parameter descriptions are sparse. The 'dummy' parameter in tool_schema and tool_nulls is a code smell indicating poor API design. Overall, this reads like a quick prototype rather than a production-grade tool suite.
Returns describe() statistics. Optional: input_str can contain a comma-separated list of columns, e.g. "age, fare".
Returns the number of missing values that would be filled for a given column and value as JSON.
Returns the first n rows of the dataframe as CSV (default 5).
Returns columns with the number of missing values as JSON (only columns with >0 missing values).
Returns column names and data types as JSON.
Returns unique values for a given column as JSON list.
Returns value counts for a given column as JSON.
Unused 'dummy' parameter in tool_schema and tool_nulls violates single-responsibility principle and confuses LLMs about what input is required.
Parameter type mismatches: tool_head accepts 'n' as string (should be integer with min/max bounds); tool_fillna_count uses single 'args' string instead of separate col and value parameters.
No output schemas documented. LLMs cannot predict return structure (JSON vs CSV format varies by tool). tool_describe returns CSV; others return JSON, inconsistent and undocumented.
Minimal error handling. Only 2 of 7 tools validate input (tool_value_counts, tool_unique_values check for missing columns). tool_describe silently fails if invalid columns are passed. No recovery guidance.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 42 | 2026-07-28+ | v2 |
No tool annotations (readOnlyHint). All tools are read-only but this is not declared in schema, forcing LLMs to infer safety from descriptions.