Pipetable
Consulta archivos locales CSV, Parquet, JSON y TSV con SQL real a través de DuckDB. Proporciona a tu herramienta de codificación de IA acceso a datos verificados en lugar de respuestas alucinadas.
Documentación
Pipetable
El runtime de datos local para agentes de IA.
Apúntalo a una carpeta de archivos CSV, Parquet, JSON o TSV: tu IA ahora puede consultarlos con SQL real en lugar de alucinar.
Funciona como servidor MCP para Claude Code, Cursor, RooCode y Copilot. También incluye una CLI independiente para exploración interactiva de datos. Impulsado por DuckDB. Los archivos nunca salen de tu máquina.
Licencia MIT.
Instalación
# macOS / Linux
curl -fsSL https://pipetable.com/install | sh
# Windows
irm https://pipetable.com/install.ps1 | iex
# Rust
cargo install pipetable
Configuración del 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"]
}
}
}
Una vez configurado, tu IA puede:
scan_folder— registrar todos los archivos de datos en una carpetalist_datasets— ver esquemas y tipos de columnasget_schema— inspeccionar una tabla específica con filas de muestraexecute_sql— ejecutar SQL real de DuckDB contra tus archivos
Los resultados son la verdad real de DuckDB, no generados.
CLI
pipetable ~/data/
SQL y lenguaje natural en el prompt >. SQL siempre funciona. El lenguaje natural requiere Ollama ejecutándose 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
Canalización de resultados
Cada consulta guarda su resultado como _last — una vista viva de DuckDB que puedes consultar más a fondo:
> SELECT * FROM sales WHERE region = 'EU'
...
→ piped as _last
> show me top 3 from _last
Using: _last
Thinking.....
Comandos de punto
| Comando | Descripción |
|---|---|
.scan <path> | Cargar una carpeta o archivo (Tab completa) |
.datasets | Listar conjuntos de datos cargados |
.schema <name> | Columnas + filas de muestra |
.drop <name> | Eliminar un conjunto de datos de la sesión |
.use <n1> <n2> | Enfocar consultas de lenguaje natural en conjuntos de datos específicos |
.remove <name> | Quitar del enfoque |
.clear | Restablecer el enfoque a todos los conjuntos de datos |
.model <name> | Cambiar el modelo de Ollama |
.help | Mostrar ayuda |
Tab completa los nombres de conjuntos de datos después de FROM, JOIN, .schema, .drop, .use.
Consulta de una sola vez
pipetable ask "who has the highest revenue?" ~/data/
pipetable ask "SELECT * FROM sales LIMIT 5" ~/data/
Lenguaje natural (opcional)
Configura cualquiera de estos — pipetable lo detecta automáticamente:
# 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
Prioridad: Anthropic → compatible con OpenAI → Ollama. SQL y MCP funcionan sin ninguno de ellos.
Formatos compatibles
CSV, Parquet, JSON, NDJSON, TSV, Excel (xlsx, xls, xlsm). Archivos de hasta 2GB. Carpetas escaneadas hasta 3 niveles de profundidad. Los archivos ocultos y directorios de ruido comunes (node_modules, target, .git) se omiten automáticamente.