Skip to main content
Glama

Project Gumball

Validate CSV (Payload Validator)

validate_csv
Read-only

Validates CSV against RFC 4180 and reports ragged rows individually with both field counts, because "row 4813 has 6 fields, the header has 5" is the entire answer. A ragged row loads without complaint almost everywhere — pandas pads or throws by engine, Excel shifts the columns, split(",") mis-assigns every field after the extra one — so nobody notices until a figure is wrong. Sniffs the delimiter from the header ignoring quoted regions, and always reports it, because a semicolon-separated European export read as comma-separated yields one column and no error. Also unterminated quotes, duplicate and unnamed and space-padded column names, mixed line endings, and a byte order mark that makes the first column impossible to look up by name.

WHY DELEGATE THIS: Syntax errors are the easy half. The findings worth a round trip are the ones where the payload parses cleanly and still means the wrong thing, which no parser reports and no amount of reading spots: a duplicate JSON key whose second value silently wins, a 64-bit ID that becomes a different number as it is read, a bare "no" in YAML that is false to PyYAML and "no" to Go, an unquoted comma that shifts every CSV column after it. Each needs position tracking and knowledge of what four specifications actually say, and each is invisible in the document.

Owned by Payload Validator at https://payload-validator.gumballtools.com, which is also callable directly if you would rather not go through the aggregator.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
inputYesThe raw CSV text. Up to 1,000,000 bytes.
delimiterNoField delimiter, one character. Omit to sniff it from the header.
hasHeaderNoWhether the first row names the columns. Default true. False compares rows against the first row and skips header checks.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint=true, the description still earns its keep by detailing behaviors not in annotations: it sniffs the delimiter from the header while ignoring quoted regions, always reports the delimiter, reports ragged rows with both field counts, and checks multiple edge cases. This goes well beyond the structured safety hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded and well organized, but it is long and includes off-topic examples (JSON duplicate keys, YAML 'no') and meta details about the owning service and aggregator. These sentences add color but not invocation-critical information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only validator with full parameter documentation and rich check-list coverage, the description tells an agent what to expect in terms of findings (ragged rows, delimiter report, edge cases). It does not specify the exact output/error schema, and with no output schema available that is a small but real gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents input, delimiter, and hasHeader. The description adds useful behavioral nuance—especially that the sniffer ignores quoted regions and that the delimiter is always reported, which informs what the tool returns. This is above the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb-plus-resource statement—"Validates CSV against RFC 4180"—and enumerates concrete checks (ragged rows, delimiter sniffing, unterminated quotes, BOM, etc.). This clearly distinguishes it from sibling validators like validate_json, validate_xml, and validate_yaml.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The tool's scope is obvious from name and first sentence, and the 'WHY DELEGATE THIS' section gives strong context for when to prefer this service over manual parsing. However, it never explicitly states when not to use validate_csv or how it compares to validate_auto/other validator siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources