Skip to main content
Glama
melihbirim

Pipetable

by melihbirim

Pipetable

Gives your AI coding tool real data access. Point it at a folder of CSV, Parquet, JSON, or TSV files — your AI can now query them with real SQL instead of hallucinating.

Works as an MCP server for Claude Code, Cursor, RooCode, and Copilot. Also ships as a standalone CLI for interactive data exploration. Powered by DuckDB. Files never leave your machine.

MIT licensed.

Install

# macOS / Linux
curl -fsSL https://pipetable.com/install | sh

# Windows
irm https://pipetable.com/install.ps1 | iex

# Rust
cargo install pipetable

Related MCP server: mcp-data-lens

MCP server setup

Claude Code

claude mcp add pipetable pipetable mcp

Cursor / RooCode

{
  "mcpServers": {
    "pipetable": {
      "command": "pipetable",
      "args": ["mcp"]
    }
  }
}

VS Code (Copilot)

{
  "servers": {
    "pipetable": {
      "type": "stdio",
      "command": "pipetable",
      "args": ["mcp"]
    }
  }
}

Once configured, your AI can:

  1. scan_folder — register all data files in a folder

  2. list_datasets — see schemas and column types

  3. get_schema — inspect a specific table with sample rows

  4. execute_sql — run real DuckDB SQL against your files

Results are ground truth from DuckDB, not generated.

CLI

pipetable ~/data/

SQL and natural language at the > prompt. SQL always works. Natural language requires Ollama running locally.

> SELECT region, SUM(revenue) AS total FROM sales GROUP BY 1 ORDER BY 2 DESC

4 row(s)

region  total
─────────────
EU      141000
US       32000
APAC     17000
> show me top 5 customers by revenue
Using: customers, sales
Thinking.....
SELECT c.name, SUM(s.revenue) AS total FROM customers c
JOIN sales s ON s.customer_id = c.id
GROUP BY c.name ORDER BY total DESC LIMIT 5
...
→ piped as _last

Piping results

Every query saves its result as _last — a live DuckDB view you can query further:

> SELECT * FROM sales WHERE region = 'EU'
...
→ piped as _last

> show me top 3 from _last
Using: _last
Thinking.....

Dot commands

Command

Description

.scan <path>

Load a folder or file (Tab completes)

.datasets

List loaded datasets

.schema <name>

Columns + sample rows

.drop <name>

Remove a dataset from the session

.use <n1> <n2>

Focus NL queries on specific datasets

.remove <name>

Remove from focus

.clear

Reset focus to all datasets

.model <name>

Switch Ollama model

.help

Show help

Tab completes dataset names after FROM, JOIN, .schema, .drop, .use.

One-shot query

pipetable ask "who has the highest revenue?" ~/data/
pipetable ask "SELECT * FROM sales LIMIT 5" ~/data/

Natural language (optional)

Requires Ollama:

ollama pull qwen2.5-coder:1.5b   # 986 MB, runs on CPU
ollama serve

SQL and MCP work without it.

Supported formats

CSV, Parquet, JSON, NDJSON, TSV. Files up to 2GB. Folders scanned up to 3 levels deep. Hidden files and common noise directories (node_modules, target, .git) are skipped automatically.

License

MIT

A
license - permissive license
-
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
5dRelease cycle
2Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/melihbirim/pipetable'

If you have feedback or need assistance with the MCP directory API, please join our Discord server