cwprep-mcp
cwprep — движок Text-to-PrepFlow
cwprep — это Python-движок, который позволяет генерировать потоки данных с помощью технологии Text-to-PrepFlow.
Благодаря обратному проектированию структуры JSON файлов .tfl и встроенному серверу MCP (Model Context Protocol), cwprep выступает в роли моста между LLM (такими как Claude, Gemini) и Tableau Prep. Теперь вы можете создавать, изменять и строить потоки очистки данных просто с помощью общения на естественном языке или Python-скриптов, не открывая графический интерфейс!
Автор: Cooper Wenhua imgwho@gmail.com
Установка
pip install cwprepRelated MCP server: cwtwb
Быстрый старт
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)По умолчанию как SDK, так и MCP выводят только итоговый архив .tfl/.tflx. Используйте save_to_folder(), только если вам явно нужна распакованная папка для проверки.
Функции
Функция | Метод | Описание |
Подключение к БД |
| Подключение к MySQL/PostgreSQL/SQL Server |
Подключение файла |
| Подключение к файлам Excel (.xlsx/.xls) или CSV |
SQL-ввод |
| Ввод через пользовательский SQL-запрос |
Ввод таблицы |
| Прямое подключение к таблице |
Ввод Excel |
| Чтение из листа Excel |
Ввод CSV |
| Чтение из CSV-файла |
Объединение CSV |
| Объединение нескольких CSV-файлов |
Соединение (Join) |
| Левое/правое/внутреннее/полное соединение (по одному или нескольким столбцам) |
Объединение (Union) |
| Объединение нескольких таблиц |
Фильтр |
| Фильтр на основе выражений |
Фильтр значений |
| Оставить/исключить по значениям |
Оставить только |
| Выбор столбцов |
Удаление столбцов |
| Удаление столбцов |
Переименование |
| Переименование столбцов |
Вычисление |
| Поля с формулами Tableau |
Быстрый расчет |
| Быстрая очистка (нижний/верхний регистр/обрезка/удаление) |
Изменение типа |
| Изменение типов данных столбцов |
Дублирование столбца |
| Дублирование (копирование) столбца |
Агрегация |
| GROUP BY с SUM/AVG/COUNT |
Сводная таблица (Pivot) |
| Строки в столбцы |
Отмена сводной таблицы |
| Столбцы в строки |
Вывод |
| Публикация на Tableau Server |
Упаковка TFLX |
| Генерация .tflx со встроенными файлами данных |
SQL-трансляция |
| Перевод потоков TFL в эквивалентный ANSI SQL |
Примеры
Смотрите каталог examples/ для получения полных демо-версий:
demo_basic.py— Ввод, Соединение, Выводdemo_cleaning.py— Фильтр, Вычисление, Переименованиеdemo_field_operations.py— Быстрый расчет, Изменение типа, Дублирование столбцаdemo_aggregation.py— Объединение, Агрегация, Сводная таблицаdemo_comprehensive.py— Все функции вместеprompts.md— 8 готовых шаблонов промптов MCP для генерации потоков с помощью ИИ
MCP-сервер
cwprep включает встроенный сервер Model Context Protocol, позволяющий ИИ-клиентам (Claude Desktop, Cursor, Gemini CLI и др.) генерировать файлы TFL напрямую.
Предварительные требования
Метод | Требование |
| Установите uv — он автоматически загружает |
| Python ≥ 3.8 + |
Быстрый старт
# Local (stdio)
cwprep-mcp
# Remote (Streamable HTTP)
cwprep-mcp --transport streamable-http --port 8000[!TIP] Обновляетесь? Если вы ранее использовали
uvxсо старой версией, очистите кэш, чтобы получить последний релиз:uv cache clean cwprep
Конфигурация клиента
Все клиенты ниже используют метод uvx (рекомендуется). Замените uvx на cwprep-mcp, если предпочитаете локальную установку через pip.
Отредактируйте файл конфигурации:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"cwprep": {
"command": "uvx",
"args": ["--from", "cwprep", "cwprep-mcp"]
}
}
}Настройки → MCP → Добавить новый MCP-сервер или отредактируйте ~/.cursor/mcp.json:
{
"mcpServers": {
"cwprep": {
"command": "uvx",
"args": ["--from", "cwprep", "cwprep-mcp"]
}
}
}Создайте .vscode/mcp.json в корне проекта:
{
"servers": {
"cwprep": {
"command": "uvx",
"args": ["--from", "cwprep", "cwprep-mcp"]
}
}
}Отредактируйте ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"cwprep": {
"command": "uvx",
"args": ["--from", "cwprep", "cwprep-mcp"]
}
}
}claude mcp add cwprep -- uvx --from "cwprep" cwprep-mcpОтредактируйте ~/.gemini/settings.json:
{
"mcpServers": {
"cwprep": {
"command": "uvx",
"args": ["--from", "cwprep", "cwprep-mcp"]
}
}
}Отредактируйте ~/.continue/config.yaml:
mcpServers:
- name: cwprep
command: uvx
args:
- --from
- cwprep
- cwprep-mcpЗапустите сервер:
cwprep-mcp --transport streamable-http --port 8000Затем настройте свой клиент с конечной точкой: http://your-server-ip:8000/mcp
Доступные возможности MCP
Тип | Имя | Описание |
🔧 Инструмент |
| Генерация файла .tfl/.tflx из определения потока |
🔧 Инструмент |
| Перевод определения потока или файла .tfl в ANSI SQL |
🔧 Инструмент |
| Список всех поддерживаемых типов узлов |
🔧 Инструмент |
| Проверка определения потока перед генерацией |
📖 Ресурс |
| Справочник API SDK |
📖 Ресурс |
| Синтаксис вычислений Tableau Prep |
📖 Ресурс |
| Распространенные ошибки и правила проектирования потоков |
💬 Промпт |
| Интерактивный помощник по проектированию потоков |
💬 Промпт |
| Объяснение структуры файла TFL |
Поддержка навыков ИИ
Этот проект включает специализированный навык ИИ для помощников, таких как Claude или Gemini, чтобы помочь вам создавать потоки.
Расположение:
.agents/skills/tfl-generator/Функции: Индекс MCP-сервера с руководством по использованию резервного SDK. Подробные справочники по API и синтаксису предоставляются через ресурсы MCP из
src/cwprep/references/.
Структура каталогов
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Конфигурация
Создайте config.yaml для настроек по умолчанию:
# 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.md для истории версий.
Лицензия
Лицензия 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
Generate Tableau .twb/.twbx workbooks: 47 tools for charts, dashboards, rules, CSV pipelines.
Standardize, reshape, and normalize messy data — CSV, Excel, Parquet, S3, databases.
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