cwprep-mcp
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 cwprepRelated 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 |
| Conectar a MySQL/PostgreSQL/SQL Server |
Conexión de archivo |
| Conectar a archivos Excel (.xlsx/.xls) o CSV |
Entrada SQL |
| Entrada de consulta SQL personalizada |
Entrada de tabla |
| Conexión directa a tabla |
Entrada Excel |
| Leer desde hoja de cálculo Excel |
Entrada CSV |
| Leer desde archivo CSV |
Unión de CSV |
| Combinar múltiples archivos CSV |
Unión (Join) |
| Uniones left/right/inner/full (una o varias columnas) |
Unión (Union) |
| Combinar múltiples tablas |
Filtro |
| Filtro basado en expresiones |
Filtro de valor |
| Mantener/excluir por valores |
Mantener solo |
| Seleccionar columnas |
Eliminar columnas |
| Eliminar columnas |
Renombrar |
| Renombrar columnas |
Cálculo |
| Campos de fórmula de Tableau |
Cálculo rápido |
| Limpieza rápida (minúsculas/mayúsculas/recortar/eliminar) |
Cambiar tipo |
| Cambiar tipos de datos de columna |
Duplicar columna |
| Duplicar (copiar) una columna |
Agregación |
| GROUP BY con SUM/AVG/COUNT |
Pivotar |
| Filas a columnas |
Despivotar |
| Columnas a filas |
Salida |
| Publicar en Tableau Server |
Empaquetado TFLX |
| Generar .tflx con archivos de datos incrustados |
Traducción SQL |
| Traducir flujos TFL a SQL ANSI equivalente |
Ejemplos
Consulta el directorio examples/ para ver demostraciones completas:
demo_basic.py- Entrada, Unión, Salidademo_cleaning.py- Filtro, Cálculo, Renombrardemo_field_operations.py- Cálculo rápido, Cambiar tipo, Duplicar columnademo_aggregation.py- Unión, Agregación, Pivotardemo_comprehensive.py- Todas las características combinadasprompts.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 |
| Instalar uv — descarga automáticamente |
| Python ≥ 3.8 + |
Inicio rápido
# Local (stdio)
cwprep-mcp
# Remote (Streamable HTTP)
cwprep-mcp --transport streamable-http --port 8000[!TIP] ¿Actualizando? Si utilizaste
uvxanteriormente 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.jsonmacOS:
~/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-mcpEdita ~/.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-mcpInicia el servidor:
cwprep-mcp --transport streamable-http --port 8000Luego configura tu cliente con el endpoint: http://your-server-ip:8000/mcp
Capacidades MCP disponibles
Tipo | Nombre | Descripción |
🔧 Herramienta |
| Generar archivo .tfl/.tflx a partir de la definición del flujo |
🔧 Herramienta |
| Traducir la definición del flujo o archivo .tfl a SQL ANSI |
🔧 Herramienta |
| Listar todos los tipos de nodos soportados |
🔧 Herramienta |
| Validar la definición del flujo antes de generar |
📖 Recurso |
| Referencia de la API del SDK |
📖 Recurso |
| Sintaxis de cálculo de Tableau Prep |
📖 Recurso |
| Errores comunes y reglas de diseño de flujo |
💬 Prompt |
| Asistente interactivo de diseño de flujo |
💬 Prompt |
| 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 testsConfiguració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: DefaultRegistro 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.
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
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.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