data-convert

star 3.7k

Convert between CSV, TSV, Excel, JSONL, Parquet, and other tabular formats

dathere By dathere schedule Updated 4/14/2026

name: data-convert description: Convert between CSV, TSV, Excel, JSONL, Parquet, and other tabular formats user-invocable: true argument-hint: " [format]" allowed-tools: [mcp__qsv__qsv_sniff, mcp__qsv__qsv_count, mcp__qsv__qsv_headers, mcp__qsv__qsv_index, mcp__qsv__qsv_command, mcp__qsv__qsv_to_parquet, mcp__qsv__qsv_list_files, mcp__qsv__qsv_search_tools, mcp__qsv__qsv_get_working_dir, mcp__qsv__qsv_set_working_dir]

Data Convert

Convert tabular data files between formats.

Cowork note: If relative paths don't resolve, call mcp__qsv__qsv_get_working_dir and mcp__qsv__qsv_set_working_dir to sync the working directory.

Supported Conversions

Input Formats (auto-detected)

  • CSV (.csv), TSV (.tsv/.tab), SSV (.ssv)
  • Excel (.xlsx, .xls, .xlsm, .xlsb)
  • OpenDocument (.ods)
  • JSONL/NDJSON (.jsonl, .ndjson)
  • Snappy-compressed variants (.csv.sz, etc.)

Output Formats

Format Command Extension
CSV select (identity) or fmt .csv
TSV fmt --out-delimiter '\t' .tsv
JSONL tojsonl .jsonl
JSON slice --json .json
Parquet mcp__qsv__qsv_to_parquet (core tool) .parquet
XLSX to xlsx (via mcp__qsv__qsv_command) .xlsx
ODS to ods (via mcp__qsv__qsv_command) .ods
SQLite to sqlite (via mcp__qsv__qsv_command) .db
PostgreSQL to postgres (via mcp__qsv__qsv_command) N/A
Data Package to datapackage (via mcp__qsv__qsv_command) .json

Steps

  1. Index: Run mcp__qsv__qsv_index on the file for fast random access in subsequent steps.

  2. Detect source format: Run mcp__qsv__qsv_sniff to identify the input format, delimiter, and encoding.

  3. Convert: Use the appropriate command based on the target format:

    • To CSV (from Excel/JSONL): The MCP server handles this automatically when you pass non-CSV files to any qsv tool. Use mcp__qsv__qsv_command with excel for explicit control over sheet selection.

    • To TSV: Use mcp__qsv__qsv_command with command: "fmt", options: {"out-delimiter": "\t"}.

    • To JSONL: Use mcp__qsv__qsv_command with command: "tojsonl".

    • To Parquet (single file): Use mcp__qsv__qsv_to_parquet (core tool) — auto-generates stats cache and Polars schema for optimal type inference.

    • To Parquet (batch): Use mcp__qsv__qsv_command with command: "to", subcommand: "parquet", destination: "output_dir" for batch conversion with explicit compression control.

    • To XLSX: Use mcp__qsv__qsv_command with command: "to", subcommand: "xlsx", destination: "output.xlsx".

    • To ODS: Use mcp__qsv__qsv_command with command: "to", subcommand: "ods", destination: "output.ods".

    • To SQLite: Use mcp__qsv__qsv_command with command: "to", subcommand: "sqlite", destination: "output.db".

    • To PostgreSQL: Use mcp__qsv__qsv_command with command: "to", subcommand: "postgres", destination: "connection_string".

    • To Data Package: Use mcp__qsv__qsv_command with command: "to", subcommand: "datapackage", destination: "output.json".

  4. Verify output: Run mcp__qsv__qsv_count on the output (if CSV-based) to confirm row count matches input.

Notes

  • Excel conversion: Use --sheet to specify which sheet to convert (default: first sheet)
  • JSONL output respects data types from stats cache - run stats --stats-jsonl first for better type inference
  • Parquet conversion preserves data types efficiently and produces smaller files
  • For CSV -> CSV reformatting (change delimiter, quoting), use fmt command
  • Large Excel files may take longer to convert - the MCP server handles this transparently
  • When converting multiple sheets from Excel, run excel with --sheet for each sheet
Install via CLI
npx skills add https://github.com/dathere/qsv --skill data-convert
Repository Details
star Stars 3,678
call_split Forks 103
navigation Branch main
article Path SKILL.md
More from Creator