Pipetable
Consulte arquivos locais CSV, Parquet, JSON e TSV com SQL real via DuckDB. Dá à sua ferramenta de codificação de IA acesso a dados verdadeiros em vez de respostas alucinadas.
Documentação
Pipetable
O runtime local de dados para agentes de IA.
Aponte para uma pasta de arquivos CSV, Parquet, JSON ou TSV — sua IA agora pode consultá-los com SQL real em vez de alucinar.
Funciona como servidor MCP para Claude Code, Cursor, RooCode e Copilot. Também é distribuído como CLI autônomo para exploração interativa de dados. Com tecnologia DuckDB. Os arquivos nunca saem da sua máquina.
Licença MIT.
Instalação
# macOS / Linux
curl -fsSL https://pipetable.com/install | sh
# Windows
irm https://pipetable.com/install.ps1 | iex
# Rust
cargo install pipetable
Configuração do servidor MCP
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"]
}
}
}
Depois de configurado, sua IA pode:
scan_folder— registrar todos os arquivos de dados em uma pastalist_datasets— ver esquemas e tipos de colunasget_schema— inspecionar uma tabela específica com linhas de exemploexecute_sql— executar SQL DuckDB real em seus arquivos
Os resultados são a verdade fundamental do DuckDB, não gerados.
CLI
pipetable ~/data/
SQL e linguagem natural no prompt >. SQL sempre funciona. Linguagem natural requer Ollama rodando localmente.
> 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
Encadeando resultados
Cada consulta salva seu resultado como _last — uma visão DuckDB ao vivo que você pode consultar mais:
> SELECT * FROM sales WHERE region = 'EU'
...
→ piped as _last
> show me top 3 from _last
Using: _last
Thinking.....
Comandos de ponto
| Comando | Descrição |
|---|---|
.scan <path> | Carregar uma pasta ou arquivo (Tab completa) |
.datasets | Listar conjuntos de dados carregados |
.schema <name> | Colunas + linhas de exemplo |
.drop <name> | Remover um conjunto de dados da sessão |
.use <n1> <n2> | Focar consultas em linguagem natural em conjuntos de dados específicos |
.remove <name> | Remover do foco |
.clear | Redefinir foco para todos os conjuntos de dados |
.model <name> | Alternar modelo Ollama |
.help | Mostrar ajuda |
Tab completa nomes de conjuntos de dados após FROM, JOIN, .schema, .drop, .use.
Consulta única
pipetable ask "who has the highest revenue?" ~/data/
pipetable ask "SELECT * FROM sales LIMIT 5" ~/data/
Linguagem natural (opcional)
Defina qualquer um destes — pipetable detecta automaticamente:
# Claude (best quality)
export ANTHROPIC_API_KEY=sk-ant-...
# OpenAI or any compatible API (LM Studio, Groq, Together, etc.)
export OPENAI_API_KEY=sk-...
export OPENAI_BASE_URL=http://localhost:1234 # optional, for local endpoints
# Ollama (local, no key needed)
ollama pull qwen2.5-coder:1.5b
ollama serve
Prioridade: Anthropic → compatível com OpenAI → Ollama. SQL e MCP funcionam sem nenhum deles.
Formatos suportados
CSV, Parquet, JSON, NDJSON, TSV, Excel (xlsx, xls, xlsm). Arquivos de até 2GB. Pastas verificadas até 3 níveis de profundidade. Arquivos ocultos e diretórios de ruído comuns (node_modules, target, .git) são ignorados automaticamente.