scan_folderLABSCO SUMMARY
The answer comes from DuckDB, not from the model.
That is the whole argument, and it is the right one for tabular data: a model asked to summarise a CSV it has read into context will produce plausible aggregates, whereas a model that runs a GROUP BY gets the actual ones. The workflow enforces it — schemas and column types come back before the query is written. Worth knowing the scan is bounded: three directory levels, files up to 2GB.
What it is
A local data runtime for AI agents, backed by DuckDB and shipped both as an MCP server and as a standalone CLI for interactive exploration. You register a folder of data files and the model queries them with real SQL; the files never leave your machine.
What you get
scan_folder— register every data file in a folder in one calllist_datasets— the registered datasets with their schemas and column typesget_schema— one table inspected in detail, with sample rowsexecute_sql— real DuckDB SQL run against your files, with results that are ground truth from DuckDB rather than generated- Format coverage: CSV, Parquet, JSON, NDJSON, TSV and Excel (xlsx, xls, xlsm), files up to 2GB, folders scanned three levels deep, with hidden files and noise directories like
node_modules,targetand.gitskipped automatically - A CLI on the same engine for interactive work, with dot commands to scan, list, inspect and focus datasets, tab completion after
FROMandJOIN, and every result saved as a live_lastview you can query further
Requirements
No account and no key for the SQL and MCP paths — those work with no model provider configured at all. Install with the shell installer on macOS and Linux, the PowerShell one on Windows, or cargo install pipetable. Register it with claude mcp add pipetable pipetable mcp, or configure pipetable with the mcp argument in any client. Natural-language querying in the CLI is the only optional extra, and it auto-detects whichever of ANTHROPIC_API_KEY, OPENAI_API_KEY (with OPENAI_BASE_URL for local endpoints) or a running Ollama it finds, in that order. MIT licensed.
Setup effort
One command — curl -fsSL https://pipetable.com/install | sh
USE CASES
Answering a question about a folder of exports
Register the folder, read the schemas, then aggregate with SQL — the numbers come from DuckDB rather than from a summary of the file.
Joining files that were never in the same database
A CSV and a Parquet file in the same folder are just two tables; join them in one query.
Checking what is in an unfamiliar dataset
Inspect a single table's columns and sample rows before writing anything against it.
Keeping sensitive data on your machine
Everything runs locally against your files, and SQL and MCP work with no model provider key configured at all.
4 tools
Listed in project docs. Your client may show a different list.
list_datasetsget_schemaexecute_sqlBEFORE YOU INSTALL
What to know first
Tools you get
4 tools named in the project's documentation.
Requires
pipetable on PATH
INSTALLATION
Connect your client
Server setup
curl -fsSL https://pipetable.com/install | shMCP Clients
Claude Code
claude mcp add pipetable pipetable mcpCursor, Roo Code
{
"mcpServers": {
"pipetable": {
"command": "pipetable",
"args": [
"mcp"
]
}
}
}GitHub Copilot in VS Code
{
"servers": {
"pipetable": {
"type": "stdio",
"command": "pipetable",
"args": [
"mcp"
]
}
}
}