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
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.
This server cannot be installed
Maintenance
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
Postgres + Kafka Stack Generator
Debug, build, and manage Power Automate cloud flows with AI agents
Postgres + Kafka + Prometheus Stack Generator
Postgres + Grafana Stack Generator
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.7MIT
- 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
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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