Skip to main content
Glama

cwprep - Motor de Texto a PrepFlow

cwprep es un motor basado en Python que permite la generación de Texto a PrepFlow.

Al realizar ingeniería inversa de la estructura JSON de .tfl y proporcionar un servidor MCP (Model Context Protocol) integrado, cwprep actúa como un puente entre los LLM (como Claude, Gemini) y Tableau Prep. ¡Ahora puedes generar, modificar y construir flujos de limpieza de datos simplemente a través de conversaciones en lenguaje natural o scripts de Python, sin abrir nunca la interfaz gráfica!

Autor: Cooper Wenhua imgwho@gmail.com

Instalación

pip install cwprep

Related MCP server: cwtwb

Inicio rápido

from cwprep import TFLBuilder, TFLPackager

# Create builder
builder = TFLBuilder(flow_name="My Flow")

# Add database connection
conn_id = builder.add_connection(
    host="localhost",
    username="root",
    dbname="mydb"
)

# Add input tables
orders = builder.add_input_table("orders", "orders", conn_id)
customers = builder.add_input_table("customers", "customers", conn_id)

# Join tables
joined = builder.add_join(
    name="Orders + Customers",
    left_id=orders,
    right_id=customers,
    left_col="customer_id",
    right_col="customer_id",
    join_type="left"
)

# Add output
builder.add_output_server("Output", joined, "My_Datasource")

# Build and save
flow, display, meta = builder.build()
TFLPackager.save_tfl("./my_flow.tfl", flow, display, meta)

De forma predeterminada, tanto el SDK como el MCP solo generan el archivo .tfl/.tflx final. Utiliza save_to_folder() solo cuando desees explícitamente la carpeta descomprimida para su inspección.

Características

Característica

Método

Descripción

Conexión a base de datos

add_connection()

Conectar a MySQL/PostgreSQL/SQL Server

Conexión de archivo

add_file_connection()

Conectar a archivos Excel (.xlsx/.xls) o CSV

Entrada SQL

add_input_sql()

Entrada de consulta SQL personalizada

Entrada de tabla

add_input_table()

Conexión directa a tabla

Entrada Excel

add_input_excel()

Leer desde hoja de cálculo Excel

Entrada CSV

add_input_csv()

Leer desde archivo CSV

Unión de CSV

add_input_csv_union()

Combinar múltiples archivos CSV

Unión (Join)

add_join()

Uniones left/right/inner/full (una o varias columnas)

Unión (Union)

add_union()

Combinar múltiples tablas

Filtro

add_filter()

Filtro basado en expresiones

Filtro de valor

add_value_filter()

Mantener/excluir por valores

Mantener solo

add_keep_only()

Seleccionar columnas

Eliminar columnas

add_remove_columns()

Eliminar columnas

Renombrar

add_rename()

Renombrar columnas

Cálculo

add_calculation()

Campos de fórmula de Tableau

Cálculo rápido

add_quick_calc()

Limpieza rápida (minúsculas/mayúsculas/recortar/eliminar)

Cambiar tipo

add_change_type()

Cambiar tipos de datos de columna

Duplicar columna

add_duplicate_column()

Duplicar (copiar) una columna

Agregación

add_aggregate()

GROUP BY con SUM/AVG/COUNT

Pivotar

add_pivot()

Filas a columnas

Despivotar

add_unpivot()

Columnas a filas

Salida

add_output_server()

Publicar en Tableau Server

Empaquetado TFLX

build(is_packaged=True)

Generar .tflx con archivos de datos incrustados

Traducción SQL

SQLTranslator

Traducir flujos TFL a SQL ANSI equivalente

Ejemplos

Consulta el directorio examples/ para ver demostraciones completas:

  • demo_basic.py - Entrada, Unión, Salida

  • demo_cleaning.py - Filtro, Cálculo, Renombrar

  • demo_field_operations.py - Cálculo rápido, Cambiar tipo, Duplicar columna

  • demo_aggregation.py - Unión, Agregación, Pivotar

  • demo_comprehensive.py - Todas las características combinadas

  • prompts.md - 8 plantillas de prompts MCP listas para usar para la generación de flujos impulsada por IA

Servidor MCP

cwprep incluye un servidor Model Context Protocol integrado, que permite a los clientes de IA (Claude Desktop, Cursor, Gemini CLI, etc.) generar archivos TFL directamente.

Requisitos previos

Método

Requisito

uvx (recomendado)

Instalar uv — descarga automáticamente cwprep en un entorno aislado

pip install

Python ≥ 3.8 + pip install cwprep

Inicio rápido

# Local (stdio)
cwprep-mcp

# Remote (Streamable HTTP)
cwprep-mcp --transport streamable-http --port 8000

[!TIP] ¿Actualizando? Si utilizaste uvx anteriormente con una versión antigua, limpia la caché para obtener la última versión:

uv cache clean cwprep

Configuración del cliente

Todos los clientes a continuación utilizan el método uvx (recomendado). Reemplaza uvx con cwprep-mcp si prefieres una instalación local con pip.

Edita el archivo de configuración:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "cwprep": {
      "command": "uvx",
      "args": ["--from", "cwprep", "cwprep-mcp"]
    }
  }
}

Configuración → MCP → Añadir nuevo servidor MCP, o edita ~/.cursor/mcp.json:

{
  "mcpServers": {
    "cwprep": {
      "command": "uvx",
      "args": ["--from", "cwprep", "cwprep-mcp"]
    }
  }
}

Crea .vscode/mcp.json en la raíz del proyecto:

{
  "servers": {
    "cwprep": {
      "command": "uvx",
      "args": ["--from", "cwprep", "cwprep-mcp"]
    }
  }
}

Edita ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "cwprep": {
      "command": "uvx",
      "args": ["--from", "cwprep", "cwprep-mcp"]
    }
  }
}
claude mcp add cwprep -- uvx --from "cwprep" cwprep-mcp

Edita ~/.gemini/settings.json:

{
  "mcpServers": {
    "cwprep": {
      "command": "uvx",
      "args": ["--from", "cwprep", "cwprep-mcp"]
    }
  }
}

Edita ~/.continue/config.yaml:

mcpServers:
  - name: cwprep
    command: uvx
    args:
      - --from
      - cwprep
      - cwprep-mcp

Inicia el servidor:

cwprep-mcp --transport streamable-http --port 8000

Luego configura tu cliente con el endpoint: http://your-server-ip:8000/mcp

Capacidades MCP disponibles

Tipo

Nombre

Descripción

🔧 Herramienta

generate_tfl

Generar archivo .tfl/.tflx a partir de la definición del flujo

🔧 Herramienta

translate_to_sql

Traducir la definición del flujo o archivo .tfl a SQL ANSI

🔧 Herramienta

list_supported_operations

Listar todos los tipos de nodos soportados

🔧 Herramienta

validate_flow_definition

Validar la definición del flujo antes de generar

📖 Recurso

cwprep://docs/api-reference

Referencia de la API del SDK

📖 Recurso

cwprep://docs/calculation-syntax

Sintaxis de cálculo de Tableau Prep

📖 Recurso

cwprep://docs/best-practices

Errores comunes y reglas de diseño de flujo

💬 Prompt

design_data_flow

Asistente interactivo de diseño de flujo

💬 Prompt

explain_tfl_structure

Explicación de la estructura del archivo TFL

Soporte de habilidades de IA

Este proyecto incluye una habilidad de IA especializada para asistentes como Claude o Gemini para ayudarte a construir flujos.

  • Ubicación: .agents/skills/tfl-generator/

  • Características: Índice del servidor MCP con guía de uso del SDK de respaldo. Las referencias detalladas de API y sintaxis se sirven a través de recursos MCP desde src/cwprep/references/.

Estructura del directorio

cwprep/
├── .agents/skills/      # AI Agent skills (MCP index)
├── src/cwprep/          # SDK source code
│   ├── builder.py       # TFLBuilder class
│   ├── packager.py      # TFLPackager class
│   ├── translator.py    # SQLTranslator class
│   ├── expression_translator.py  # ExpressionTranslator class
│   ├── config.py        # Configuration utilities
│   ├── mcp_server.py    # MCP Server (Tools, Resources, Prompts)
│   └── references/      # MCP Resource documents (.md)
├── examples/            # Demo scripts
├── docs/                # Documentation
└── tests/               # Unit tests

Configuración

Crea config.yaml para la configuración predeterminada:

# MySQL (default)
database:
  host: localhost
  port: 3306
  dbname: mydb
  type: mysql

# SQL Server (Windows Authentication)
# database:
#   host: localhost
#   type: sqlserver
#   authentication: sspi
#   schema: dbo

# PostgreSQL
# database:
#   host: localhost
#   port: 5432
#   dbname: mydb
#   type: postgres

tableau_server:
  url: http://your-server
  default_project: Default

Registro de cambios

Consulta changelog.md para ver el historial de versiones.

Licencia

Licencia AGPL-3.0

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

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/aidatacooper/cwprep'

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