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

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