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.

Pipetable demo 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:

  1. scan_folder — registrar todos los archivos de datos en una carpeta
  2. list_datasets — ver esquemas y tipos de columnas
  3. get_schema — inspeccionar una tabla específica con filas de muestra
  4. execute_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

ComandoDescripción
.scan <path>Cargar una carpeta o archivo (Tab completa)
.datasetsListar 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
.clearRestablecer el enfoque a todos los conjuntos de datos
.model <name>Cambiar el modelo de Ollama
.helpMostrar 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.

Licencia

MIT