Execute join: Use mcp__qsv__qsv_joinp for standard joins:
joinp
columns1: "id"
input1: "file1.csv"
columns2: "id"
input2: "file2.csv"
# Join type: omit for inner (default), or set one of:
# left: true, full: true, cross: true
Or use mcp__qsv__qsv_sqlp for complex joins:
SELECT a.*, b.col1, b.col2
FROM file1 a
JOIN file2 b ON a.id = b.id AND a.date BETWEEN b.start_date AND b.end_date
For ASOF (nearest-match) joins, use mcp__qsv__qsv_joinp with asof: true:
joinp
columns1: "date"
input1: "events.csv"
columns2: "date"
input2: "reference.csv"
asof: true
strategy: "backward"
allow_exact_matches: true
strategy: "backward" (default) — match to the last right row with key < left key
strategy: "forward" — match to the first right row with key > left key
strategy: "nearest" — match to the numerically closest row (supports tolerance parameter)
- Add
left_by/right_by parameters to restrict matching within subgroups (e.g., per jurisdiction)
- Add
allow_exact_matches: true to include equal keys (<=, >=); default is strict inequality (<, >)