Query CSV
csv_queryFree, read-only. Query a comma-separated CSV with a header row, from a URL (max 5 MB, streamed) or inline text, one of the two: select columns, filter rows, sort, limit. Returns {meta:{returned_rows,columns,total_rows,truncated},rows:[{column:value}]}, all values strings, or CSV text with format='csv'. One filter condition, no joins or aggregates. Unknown select columns and bad filters error with the valid names or operators. Over 5 MB: csv_query_xl (paid, 100 MB).
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "csv_query"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| csv | No | Inline CSV text. Not with url. | |
| url | No | CSV URL, max 5 MB. Not with csv. | |
| limit | No | Rows to return. Default 500, max 5000; over it meta.truncated=true. | |
| filter | No | 'column op value'. Ops: = != contains startswith endswith (text, case-insensitive), > >= < <= (numeric). E.g. 'age >= 30'. | |
| format | No | json (default): {meta,rows}. csv: text with header row. | |
| select | No | Columns to keep, comma-separated, exact header names. Omit for all. | |
| headers | No | Headers to forward (Authorization, Cookie…). | |
| sort_by | No | Column to sort by; numeric when values parse as numbers, else text. | |
| sort_dir | No | asc (default) or desc. |