Skip to main content
Glama

cwprep - Text-to-PrepFlow-Engine

cwprep ist eine Python-basierte Engine, die die Generierung von Text-to-PrepFlow ermöglicht.

Durch das Reverse-Engineering der .tfl-JSON-Struktur und die Bereitstellung eines integrierten MCP-Servers (Model Context Protocol) fungiert cwprep als Brücke zwischen LLMs (wie Claude, Gemini) und Tableau Prep. Sie können nun Datenbereinigungsabläufe einfach durch natürlichsprachliche Konversationen oder Python-Skripte erstellen, ändern und aufbauen, ohne jemals die GUI öffnen zu müssen!

Autor: Cooper Wenhua imgwho@gmail.com

Installation

pip install cwprep

Related MCP server: cwtwb

Schnelleinstieg

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)

Standardmäßig geben sowohl das SDK als auch MCP nur das finale .tfl/.tflx-Archiv aus. Verwenden Sie save_to_folder() nur, wenn Sie explizit den entpackten Ordner zur Überprüfung benötigen.

Funktionen

Funktion

Methode

Beschreibung

Datenbankverbindung

add_connection()

Verbindung zu MySQL/PostgreSQL/SQL Server

Dateiverbindung

add_file_connection()

Verbindung zu Excel (.xlsx/.xls) oder CSV-Dateien

SQL-Eingabe

add_input_sql()

Benutzerdefinierte SQL-Abfrageeingabe

Tabelleneingabe

add_input_table()

Direkte Tabellenverbindung

Excel-Eingabe

add_input_excel()

Lesen aus Excel-Arbeitsblatt

CSV-Eingabe

add_input_csv()

Lesen aus CSV-Datei

CSV-Union

add_input_csv_union()

Zusammenführen mehrerer CSV-Dateien

Join

add_join()

Left/Right/Inner/Full Joins (einzelne oder mehrere Spalten)

Union

add_union()

Zusammenführen mehrerer Tabellen

Filter

add_filter()

Ausdrucksbasierter Filter

Wertefilter

add_value_filter()

Behalten/Ausschließen nach Werten

Nur behalten

add_keep_only()

Spalten auswählen

Spalten entfernen

add_remove_columns()

Spalten löschen

Umbenennen

add_rename()

Spalten umbenennen

Berechnung

add_calculation()

Tableau-Formelfelder

Schnelle Berechnung

add_quick_calc()

Schnelle Bereinigung (Klein-/Großschreibung/Trimmen/Entfernen)

Typ ändern

add_change_type()

Datentypen von Spalten ändern

Spalte duplizieren

add_duplicate_column()

Eine Spalte duplizieren (kopieren)

Aggregation

add_aggregate()

GROUP BY mit SUM/AVG/COUNT

Pivot

add_pivot()

Zeilen zu Spalten

Unpivot

add_unpivot()

Spalten zu Zeilen

Ausgabe

add_output_server()

Auf Tableau Server veröffentlichen

TFLX-Paketierung

build(is_packaged=True)

Generiert .tflx mit eingebetteten Datendateien

SQL-Übersetzung

SQLTranslator

Übersetzt TFL-Abläufe in äquivalentes ANSI-SQL

Beispiele

Siehe das Verzeichnis examples/ für vollständige Demos:

  • demo_basic.py - Eingabe, Join, Ausgabe

  • demo_cleaning.py - Filter, Berechnung, Umbenennen

  • demo_field_operations.py - Schnelle Berechnung, Typ ändern, Spalte duplizieren

  • demo_aggregation.py - Union, Aggregation, Pivot

  • demo_comprehensive.py - Alle Funktionen kombiniert

  • prompts.md - 8 sofort einsatzbereite MCP-Prompt-Vorlagen für KI-gesteuerte Ablaufgenerierung

MCP-Server

cwprep enthält einen integrierten Model Context Protocol-Server, der es KI-Clients (Claude Desktop, Cursor, Gemini CLI usw.) ermöglicht, TFL-Dateien direkt zu generieren.

Voraussetzungen

Methode

Anforderung

uvx (empfohlen)

Installieren Sie uv — es lädt cwprep automatisch in einer isolierten Umgebung herunter

pip install

Python ≥ 3.8 + pip install cwprep

Schnelleinstieg

# Local (stdio)
cwprep-mcp

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

[!TIP] Upgrade? Wenn Sie zuvor uvx mit einer älteren Version verwendet haben, leeren Sie den Cache, um die neueste Version zu erhalten:

uv cache clean cwprep

Client-Konfiguration

Alle unten aufgeführten Clients verwenden die uvx-Methode (empfohlen). Ersetzen Sie uvx durch cwprep-mcp, falls Sie eine lokale pip install-Installation bevorzugen.

Konfigurationsdatei bearbeiten:

  • 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"]
    }
  }
}

Einstellungen → MCP → Neuen MCP-Server hinzufügen oder ~/.cursor/mcp.json bearbeiten:

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

Erstellen Sie .vscode/mcp.json im Projektstammverzeichnis:

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

Bearbeiten Sie ~/.codeium/windsurf/mcp_config.json:

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

Bearbeiten Sie ~/.gemini/settings.json:

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

Bearbeiten Sie ~/.continue/config.yaml:

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

Starten Sie den Server:

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

Konfigurieren Sie dann Ihren Client mit dem Endpunkt: http://your-server-ip:8000/mcp

Verfügbare MCP-Funktionen

Typ

Name

Beschreibung

🔧 Tool

generate_tfl

Generiert .tfl/.tflx-Datei aus der Ablaufdefinition

🔧 Tool

translate_to_sql

Übersetzt Ablaufdefinition oder .tfl-Datei in ANSI-SQL

🔧 Tool

list_supported_operations

Listet alle unterstützten Knotentypen auf

🔧 Tool

validate_flow_definition

Validiert die Ablaufdefinition vor der Generierung

📖 Resource

cwprep://docs/api-reference

SDK-API-Referenz

📖 Resource

cwprep://docs/calculation-syntax

Tableau Prep-Berechnungssyntax

📖 Resource

cwprep://docs/best-practices

Häufige Fallstricke und Regeln für das Ablaufdesign

💬 Prompt

design_data_flow

Interaktiver Assistent für das Ablaufdesign

💬 Prompt

explain_tfl_structure

Erklärung der TFL-Dateistruktur

KI-Skill-Unterstützung

Dieses Projekt enthält einen spezialisierten KI-Skill für Assistenten wie Claude oder Gemini, der Ihnen beim Erstellen von Abläufen hilft.

  • Speicherort: .agents/skills/tfl-generator/

  • Funktionen: MCP-Server-Index mit Fallback-SDK-Nutzungsanleitung. Detaillierte API- und Syntax-Referenzen werden über MCP-Ressourcen aus src/cwprep/references/ bereitgestellt.

Verzeichnisstruktur

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

Konfiguration

Erstellen Sie config.yaml für Standardeinstellungen:

# 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

Changelog

Siehe changelog.md für die Versionshistorie.

Lizenz

AGPL-3.0-Lizenz

Related MCP Connectors

Related MCP Servers