用途:对 CSV、TSV、Excel 等表格数据文件运行 SQL 查询,底层使用 Polars 驱动的 sqlp 命令。
主要能力:支持基本 SELECT、WHERE 过滤、GROUP BY 聚合、JOIN、窗口函数、LIKE 字符串匹配、日期提取和 CASE 表达式等 Polars SQL 语法;单个 SQL 语句可查询多个 CSV 文件(便于连接)。
使用方式:先运行 mcp__qsv__qsv_index 与 mcp__qsv__qsv_stats(cardinality: true, stats_jsonl: true)建立索引和统计缓存;读取 <FILESTEM>.stats.csv 了解列元数据;对将用于 GROUP BY、过滤或连接的列运行 mcp__qsv__qsv_frequency 查看取值分布;再用 mcp__qsv__qsv_sqlp 执行 SQL。SQL 中表名是文件主干名,如 data.csv 对应 SELECT * FROM data;含特殊字符需加引号。Parquet 用 read_parquet('data.parquet') 作为表源。若相对路径无法解析,调用 mcp__qsv__qsv_get_working_dir 和 mcp__qsv__qsv_set_working_dir 同步工作目录。
统计与频率可指导 SQL:按 type 选择正确转换,按 min/max 写精确范围,按 cardinality 估算 GROUP BY 规模,按 nullcount 决定是否处理空值,按 sort_order 跳过多余 ORDER BY,按 mean/stddev 或 median/q1/q3 写异常值过滤,高偏度或高 CV 时改用中位数/分位数过滤并加 LIMIT,稀疏列避免作为连接键。
限制:sqlp 使用 Polars 引擎,部分 PostgreSQL 专有语法可能不支持;列名大小写敏感;结果默认输出到 stdout,大结果集可用 --output file.csv;极复杂查询失败时可考虑 DuckDB 作为替代;超过 10MB 的文件可考虑转为 Parquet 以加速重复查询。