cwprep-mcp
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 cwprepRelated 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 |
| Verbindung zu MySQL/PostgreSQL/SQL Server |
Dateiverbindung |
| Verbindung zu Excel (.xlsx/.xls) oder CSV-Dateien |
SQL-Eingabe |
| Benutzerdefinierte SQL-Abfrageeingabe |
Tabelleneingabe |
| Direkte Tabellenverbindung |
Excel-Eingabe |
| Lesen aus Excel-Arbeitsblatt |
CSV-Eingabe |
| Lesen aus CSV-Datei |
CSV-Union |
| Zusammenführen mehrerer CSV-Dateien |
Join |
| Left/Right/Inner/Full Joins (einzelne oder mehrere Spalten) |
Union |
| Zusammenführen mehrerer Tabellen |
Filter |
| Ausdrucksbasierter Filter |
Wertefilter |
| Behalten/Ausschließen nach Werten |
Nur behalten |
| Spalten auswählen |
Spalten entfernen |
| Spalten löschen |
Umbenennen |
| Spalten umbenennen |
Berechnung |
| Tableau-Formelfelder |
Schnelle Berechnung |
| Schnelle Bereinigung (Klein-/Großschreibung/Trimmen/Entfernen) |
Typ ändern |
| Datentypen von Spalten ändern |
Spalte duplizieren |
| Eine Spalte duplizieren (kopieren) |
Aggregation |
| GROUP BY mit SUM/AVG/COUNT |
Pivot |
| Zeilen zu Spalten |
Unpivot |
| Spalten zu Zeilen |
Ausgabe |
| Auf Tableau Server veröffentlichen |
TFLX-Paketierung |
| Generiert .tflx mit eingebetteten Datendateien |
SQL-Übersetzung |
| Übersetzt TFL-Abläufe in äquivalentes ANSI-SQL |
Beispiele
Siehe das Verzeichnis examples/ für vollständige Demos:
demo_basic.py- Eingabe, Join, Ausgabedemo_cleaning.py- Filter, Berechnung, Umbenennendemo_field_operations.py- Schnelle Berechnung, Typ ändern, Spalte duplizierendemo_aggregation.py- Union, Aggregation, Pivotdemo_comprehensive.py- Alle Funktionen kombiniertprompts.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 |
| Installieren Sie uv — es lädt |
| Python ≥ 3.8 + |
Schnelleinstieg
# Local (stdio)
cwprep-mcp
# Remote (Streamable HTTP)
cwprep-mcp --transport streamable-http --port 8000[!TIP] Upgrade? Wenn Sie zuvor
uvxmit 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.jsonmacOS:
~/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-mcpBearbeiten 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-mcpStarten Sie den Server:
cwprep-mcp --transport streamable-http --port 8000Konfigurieren Sie dann Ihren Client mit dem Endpunkt: http://your-server-ip:8000/mcp
Verfügbare MCP-Funktionen
Typ | Name | Beschreibung |
🔧 Tool |
| Generiert .tfl/.tflx-Datei aus der Ablaufdefinition |
🔧 Tool |
| Übersetzt Ablaufdefinition oder .tfl-Datei in ANSI-SQL |
🔧 Tool |
| Listet alle unterstützten Knotentypen auf |
🔧 Tool |
| Validiert die Ablaufdefinition vor der Generierung |
📖 Resource |
| SDK-API-Referenz |
📖 Resource |
| Tableau Prep-Berechnungssyntax |
📖 Resource |
| Häufige Fallstricke und Regeln für das Ablaufdesign |
💬 Prompt |
| Interaktiver Assistent für das Ablaufdesign |
💬 Prompt |
| 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 testsKonfiguration
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: DefaultChangelog
Siehe changelog.md für die Versionshistorie.
Lizenz
AGPL-3.0-Lizenz
This server cannot be deployed
Maintenance
Related MCP Connectors
Generate Tableau .twb/.twbx workbooks: 47 tools for charts, dashboards, rules, CSV pipelines.
Automate production-ready PDF, Word, Excel and PowerPoint documents from templates and JSON data
Postgres + Kafka Stack Generator
Debug, build, and manage Power Automate cloud flows with AI agents
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceEnables discovery, querying, and exporting of Tableau Cloud dashboards and data sources. Supports searching workbooks, filtering data, and exporting views as PDF, PNG, PowerPoint, CSV, or JSON.-
- AGPL 3.0
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to programmatically read, modify, and query Tableau workbook files (.twb and .twbx) on the local filesystem via 80 tools.9MIT
- AlicenseNot gradedqualityCmaintenanceA local MCP server that allows LLMs to inspect and safely edit Tableau Desktop workbooks (.twb) via XML, including creating native calculated fields using Tableau formula syntax.MIT