
Twilize
You'd reach for this when you need to programmatically generate Tableau workbooks without opening Tableau Desktop. It exposes 47 tools that let you build charts, assemble dashboards, define calculation rules, and process CSV data into .twb or .twbx files. Think of it as a headless Tableau generator: you describe what you want through the MCP interface and get back a complete workbook file. Useful for automating report generation, templating dashboards from data pipelines, or creating Tableau artifacts as part of a larger workflow. Supports both local stdio and remote HTTP transport, so you can run it alongside Claude or call it from a web service.
- tools
- 55
- auth
- Secret needed
- transport
- STDIO, HTTP
- env vars
- 4
- last updated
- May 2, 2026
Tools
55 toolsPublic tool metadata for what this MCP can expose to an agent.
generate_layout_jsonGenerate and save a dashboard layout JSON file.3 params
Generate and save a dashboard layout JSON file.
ascii_previewstringlayout_treeobjectoutput_pathstringinspect_target_schemaInspect the first-sheet schema of a target Excel datasource.1 params
Inspect the first-sheet schema of a target Excel datasource.
target_sourcestringprofile_twb_for_migrationProfile workbook datasources and worksheet scope before migration.3 params
Profile workbook datasources and worksheet scope before migration.
file_pathstringscopestringtarget_sourcestringpropose_field_mappingScan source and target schema and propose a field mapping.4 params
Scan source and target schema and propose a field mapping.
file_pathstringmapping_overridesvaluescopestringtarget_sourcestringpreview_twb_migrationPreview a workbook migration onto a target datasource.4 params
Preview a workbook migration onto a target datasource.
file_pathstringmapping_overridesvaluescopestringtarget_sourcestringapply_twb_migrationApply a workbook migration and write a migrated TWB plus reports.5 params
Apply a workbook migration and write a migrated TWB plus reports.
file_pathstringmapping_overridesvalueoutput_pathstringscopestringtarget_sourcestringmigrate_twb_guidedRun the built-in migration workflow and pause for warning confirmation when needed.6 params
Run the built-in migration workflow and pause for warning confirmation when needed.
apply_if_no_blockersbooleanfile_pathstringmapping_overridesvalueoutput_pathstringscopestringtarget_sourcestringlist_capabilitiesList twilize's declared capability boundary.
List twilize's declared capability boundary.
No parameter schema in public metadata yet.
describe_capabilityDescribe one declared capability and its support tier.2 params
Describe one declared capability and its support tier.
kindstringnamestringanalyze_twbAnalyze a TWB file against twilize's declared capabilities.1 params
Analyze a TWB file against twilize's declared capabilities.
file_pathstringdiff_template_gapSummarize the non-core capability gap of a TWB template.1 params
Summarize the non-core capability gap of a TWB template.
file_pathstringvalidate_workbookRun an informational XSD schema check on a workbook (2026.1 schema). This is a non-blocking, advisory check only. Tableau Desktop is the true validator — it routinely produces workbooks that deviate from the published XSD schema, so deviations reported here do NOT indicate the...1 params
Run an informational XSD schema check on a workbook (2026.1 schema). This is a non-blocking, advisory check only. Tableau Desktop is the true validator — it routinely produces workbooks that deviate from the published XSD schema, so deviations reported here do NOT indicate the...
file_pathvaluecreate_workbookCreate a new workbook from a TWB or TWBX template file.2 params
Create a new workbook from a TWB or TWBX template file.
template_pathstringworkbook_namestringopen_workbookOpen an existing workbook (.twb or .twbx) for in-place worksheet editing.1 params
Open an existing workbook (.twb or .twbx) for in-place worksheet editing.
file_pathstringlist_fieldsList all available fields in the current workbook datasource.
List all available fields in the current workbook datasource.
No parameter schema in public metadata yet.
list_worksheetsList worksheet names in the current workbook.
List worksheet names in the current workbook.
No parameter schema in public metadata yet.
list_dashboardsList dashboards and their worksheet zones in the current workbook.
List dashboards and their worksheet zones in the current workbook.
No parameter schema in public metadata yet.
undo_last_changeUndo the last mutating operation, restoring the previous workbook state.
Undo the last mutating operation, restoring the previous workbook state.
No parameter schema in public metadata yet.
add_calculated_fieldAdd a calculated field to the datasource.6 params
Add a calculated field to the datasource.
datatypestringdefault_formatstringfield_namestringfield_typestringformulastringrolestringremove_calculated_fieldRemove a previously added calculated field.1 params
Remove a previously added calculated field.
field_namestringadd_parameterAdd a parameter to the workbook.9 params
Add a parameter to the workbook.
allowed_valuesvaluedatatypestringdefault_formatstringdefault_valuestringdomain_typestringgranularitystringmax_valuestringmin_valuestringnamestringadd_worksheetAdd a new blank worksheet to the workbook.1 params
Add a new blank worksheet to the workbook.
worksheet_namestringconfigure_chartConfigure chart type and field mappings for a worksheet.23 params
Configure chart type and field mappings for a worksheet.
axis_fixed_rangevaluecolorvaluecolor_mapvaluecolumnsvaluecustomized_labelvaluedetailvaluefiltersvaluegeographic_fieldvaluelabelvaluelabel_paramvaluelabel_runsvaluemap_fieldsvaluemap_layersvaluemark_sizing_offbooleanmark_typestringmeasure_valuesvaluerowsvaluesizevaluesort_descendingvaluetext_formatvalue+3 more parameters. See the server's own documentation for the full schema.
configure_dual_axisConfigure a dual-axis chart composition.29 params
Configure a dual-axis chart composition.
color_1valuecolor_2valuecolor_map_1valuecolumnsvaluedetail_1valuedetail_2valuedual_axis_shelfstringfiltersvaluehide_axesbooleanhide_zerolinebooleanlabel_1valuelabel_2valuemark_color_1valuemark_color_2valuemark_sizing_offbooleanmark_type_1stringmark_type_2stringreverse_axis_1booleanrowsvalueshow_labelsboolean+9 more parameters. See the server's own documentation for the full schema.
configure_worksheet_styleApply worksheet-level styling: background color, axis/grid/border visibility.21 params
Apply worksheet-level styling: background color, axis/grid/border visibility.
axis_stylevaluebackground_colorvaluecell_formatsvaluedisable_tooltipbooleanheader_formatsvaluehide_axesbooleanhide_band_colorbooleanhide_bordersbooleanhide_col_field_labelsbooleanhide_droplinesbooleanhide_gridlinesbooleanhide_reflinesbooleanhide_row_field_labelsbooleanhide_table_dividersbooleanhide_zerolinebooleanlabel_formatsvaluepane_cell_stylevaluepane_datalabel_stylevaluepane_mark_stylevaluepane_trendline_hiddenboolean+1 more parameters. See the server's own documentation for the full schema.
configure_chart_recipeConfigure a showcase recipe chart through the shared recipe registry.4 params
Configure a showcase recipe chart through the shared recipe registry.
auto_ensure_prerequisitesbooleanrecipe_argsvaluerecipe_namestringworksheet_namestringset_mysql_connectionConfigure the workbook datasource to use a local MySQL connection.5 params
Configure the workbook datasource to use a local MySQL connection.
dbnamestringportstringserverstringtable_namestringusernamestringset_tableauserver_connectionConfigure the workbook datasource to use a Tableau Server connection.6 params
Configure the workbook datasource to use a Tableau Server connection.
dbnamestringdirectorystringportstringserverstringtable_namestringusernamestringset_hyper_connectionConfigure the workbook datasource to use a local Hyper extract connection.3 params
Configure the workbook datasource to use a local Hyper extract connection.
filepathstringtable_namestringtablesvalueset_mssql_connectionConfigure the workbook datasource to use a Microsoft SQL Server connection.5 params
Configure the workbook datasource to use a Microsoft SQL Server connection.
dbnamestringportstringserver_hoststringtable_namestringusernamestringadd_dashboardCreate a dashboard combining multiple worksheets.5 params
Create a dashboard combining multiple worksheets.
dashboard_namestringheightintegerlayoutvaluewidthintegerworksheet_namesarrayadd_dashboard_actionAdd an interaction action to a dashboard.7 params
Add an interaction action to a dashboard.
action_typestringcaptionstringdashboard_namestringevent_typestringfieldsarraysource_sheetstringtarget_sheetstringadd_reference_lineAdd a reference line to a worksheet (constant, average, median, etc.).8 params
Add a reference line to a worksheet (constant, average, median, etc.).
axis_fieldstringformulastringlabelstringlabel_typestringline_colorstringscopestringvaluestringworksheet_namestringadd_reference_bandAdd a reference band (shaded region) to a worksheet.8 params
Add a reference band (shaded region) to a worksheet.
axis_fieldstringfill_colorstringfrom_formulastringfrom_valuestringscopestringto_formulastringto_valuestringworksheet_namestringadd_trend_lineAdd a trend line to a worksheet (linear, polynomial, log, exp, power).5 params
Add a trend line to a worksheet (linear, polynomial, log, exp, power).
degreeintegerexclude_colorbooleanfitstringshow_confidence_bandsbooleanworksheet_namestringapply_color_paletteSet a custom color palette. Built-in: tableau10, tableau20, blue-red, green-gold.3 params
Set a custom color palette. Built-in: tableau10, tableau20, blue-red, green-gold.
colorsvaluecustom_namestringpalette_namestringapply_dashboard_themeApply uniform styling (background, font) to all zones in a dashboard.4 params
Apply uniform styling (background, font) to all zones in a dashboard.
background_colorstringdashboard_namestringfont_familystringtitle_font_sizestringsave_workbookSave the workbook as a TWB file. Use a .twbx extension to produce a packaged workbook (ZIP) that bundles the XML with any data extracts and images carried over from the source .twbx.1 params
Save the workbook as a TWB file. Use a .twbx extension to produce a packaged workbook (ZIP) that bundles the XML with any data extracts and images carried over from the source .twbx.
output_pathstringinspect_csvInspect a CSV file and return its inferred schema with column classification. Reads the CSV, infers column types (integer, float, date, boolean, string), classifies columns as dimensions or measures with semantic types (categorical, temporal, geographic, numeric), and returns...3 params
Inspect a CSV file and return its inferred schema with column classification. Reads the CSV, infers column types (integer, float, date, boolean, string), classifies columns as dimensions or measures with semantic types (categorical, temporal, geographic, numeric), and returns...
csv_pathstringencodingstringsample_rowsintegersuggest_charts_for_csvSuggest chart types and configurations for a CSV file. Analyzes the data shape (dimensions, measures, temporal fields, etc.) and returns prioritized chart suggestions with shelf assignments. Args: csv_path: Path to the CSV file. max_charts: Maximum number of charts to suggest...4 params
Suggest chart types and configurations for a CSV file. Analyzes the data shape (dimensions, measures, temporal fields, etc.) and returns prioritized chart suggestions with shelf assignments. Args: csv_path: Path to the CSV file. max_charts: Maximum number of charts to suggest...
csv_pathstringmax_chartsintegerrules_yamlstringsample_rowsintegercsv_to_hyperConvert a CSV file to a Tableau Hyper extract. Infers column types and creates a .hyper file that can be used as a data source in Tableau workbooks. Requires tableauhyperapi (pip install tableauhyperapi). Args: csv_path: Path to the source CSV file. hyper_path: Output path for...4 params
Convert a CSV file to a Tableau Hyper extract. Infers column types and creates a .hyper file that can be used as a data source in Tableau workbooks. Requires tableauhyperapi (pip install tableauhyperapi). Args: csv_path: Path to the source CSV file. hyper_path: Output path for...
csv_pathstringhyper_pathstringsample_rowsintegertable_namestringcsv_to_dashboardBuild a complete Tableau dashboard from a CSV file (end-to-end). Pipeline: CSV → schema inference → chart suggestion → Hyper extract → workbook creation → chart configuration → dashboard layout → .twbx output. Args: csv_path: Path to the source CSV file. output_path: Output .t...7 params
Build a complete Tableau dashboard from a CSV file (end-to-end). Pipeline: CSV → schema inference → chart suggestion → Hyper extract → workbook creation → chart configuration → dashboard layout → .twbx output. Args: csv_path: Path to the source CSV file. output_path: Output .t...
csv_pathstringdashboard_titlestringmax_chartsintegeroutput_pathstringrules_yamlstringtemplate_pathstringthemestringinspect_hyperInspect a Hyper extract file and return its schema with column classification. Reads the Hyper file, maps column types, classifies columns as dimensions or measures, and returns a summary. Requires tableauhyperapi (pip install tableauhyperapi). Args: hyper_path: Path to the .h...2 params
Inspect a Hyper extract file and return its schema with column classification. Reads the Hyper file, maps column types, classifies columns as dimensions or measures, and returns a summary. Requires tableauhyperapi (pip install tableauhyperapi). Args: hyper_path: Path to the .h...
hyper_pathstringtable_namestringhyper_to_dashboardBuild a complete Tableau dashboard from a Hyper extract file (end-to-end). Pipeline: Hyper → schema inference → chart suggestion → workbook creation → chart configuration → dashboard layout → .twbx output. Args: hyper_path: Path to the .hyper file. output_path: Output .twbx pa...8 params
Build a complete Tableau dashboard from a Hyper extract file (end-to-end). Pipeline: Hyper → schema inference → chart suggestion → workbook creation → chart configuration → dashboard layout → .twbx output. Args: hyper_path: Path to the .hyper file. output_path: Output .twbx pa...
dashboard_titlestringhyper_pathstringmax_chartsintegeroutput_pathstringrules_yamlstringtable_namestringtemplate_pathstringthemestringmysql_to_dashboardBuild a Tableau dashboard from a MySQL table (end-to-end). Pipeline: MySQL → schema inference → chart suggestion → workbook creation → live MySQL connection → .twb output. Requires mysql-connector-python for schema inference. Args: server_host: MySQL server hostname. dbname: D...12 params
Build a Tableau dashboard from a MySQL table (end-to-end). Pipeline: MySQL → schema inference → chart suggestion → workbook creation → live MySQL connection → .twb output. Requires mysql-connector-python for schema inference. Args: server_host: MySQL server hostname. dbname: D...
dashboard_titlestringdbnamestringmax_chartsintegeroutput_pathstringpasswordstringportintegerrules_yamlstringserver_hoststringtable_namestringtemplate_pathstringthemestringusernamestringmssql_to_dashboardBuild a Tableau dashboard from a Microsoft SQL Server table (end-to-end). Pipeline: MSSQL → schema inference → chart suggestion → workbook creation → live MSSQL connection → .twb output. Requires pyodbc for schema inference and ODBC Driver 17 for SQL Server. Args: server_host:...13 params
Build a Tableau dashboard from a Microsoft SQL Server table (end-to-end). Pipeline: MSSQL → schema inference → chart suggestion → workbook creation → live MSSQL connection → .twb output. Requires pyodbc for schema inference and ODBC Driver 17 for SQL Server. Args: server_host:...
dashboard_titlestringdbnamestringmax_chartsintegeroutput_pathstringpasswordstringportintegerrules_yamlstringserver_hoststringtable_namestringtemplate_pathstringthemestringtrusted_connectionbooleanusernamestringget_active_rulesReturn the active dashboard creation rules. Call this at the start of a session to understand what constraints are enforced. The rules engine validates every configure_chart and add_dashboard call — violations are returned as errors or warnings. Returns: Human-readable summary...
Return the active dashboard creation rules. Call this at the start of a session to understand what constraints are enforced. The rules engine validates every configure_chart and add_dashboard call — violations are returned as errors or warnings. Returns: Human-readable summary...
No parameter schema in public metadata yet.
set_ruleSet a specific rule value in the active dashboard rules. This allows admins to modify rules at runtime without editing YAML files. Changes persist for the current session and can be exported with export_rules(). Args: section: Rule section name. Options: "kpi" — KPI formatting...3 params
Set a specific rule value in the active dashboard rules. This allows admins to modify rules at runtime without editing YAML files. Changes persist for the current session and can be exported with export_rules(). Args: section: Rule section name. Options: "kpi" — KPI formatting...
keystringsectionstringvaluestringreset_rulesReset all rules to the built-in defaults. Discards any runtime changes made via set_rule() and reloads the default rules from the package YAML file. Returns: Confirmation message.
Reset all rules to the built-in defaults. Discards any runtime changes made via set_rule() and reloads the default rules from the package YAML file. Returns: Confirmation message.
No parameter schema in public metadata yet.
export_rulesExport the current active rules to a YAML file. Saves the complete rules (including any runtime changes from set_rule()) to a YAML file that can be placed next to data files or in the working directory for future sessions. Args: output_path: Path to save the YAML file. Default...1 params
Export the current active rules to a YAML file. Saves the complete rules (including any runtime changes from set_rule()) to a YAML file that can be placed next to data files or in the working directory for future sessions. Args: output_path: Path to save the YAML file. Default...
output_pathstringprofile_data_sourceProfile the currently connected data source. Works for ANY connection type: CSV extract, Hyper, MySQL, Tableau Server, Excel — anything that has fields in the workbook. The profile includes dimension/measure classification, semantic types, domain hints, and boolean signals tha...1 params
Profile the currently connected data source. Works for ANY connection type: CSV extract, Hyper, MySQL, Tableau Server, Excel — anything that has fields in the workbook. The profile includes dimension/measure classification, semantic types, domain hints, and boolean signals tha...
source_typestringprofile_csvProfile a CSV file before connecting it. Unlike profile_data_source (which needs an active workbook), this tool profiles a raw CSV file directly. Args: csv_path: Path to the CSV file. sample_rows: Number of rows to sample for type inference. Returns: Human-readable DataProfile.2 params
Profile a CSV file before connecting it. Unlike profile_data_source (which needs an active workbook), this tool profiles a raw CSV file directly. Args: csv_path: Path to the CSV file. sample_rows: Number of rows to sample for type inference. Returns: Human-readable DataProfile.
csv_pathstringsample_rowsintegerrecommend_templateScore all gallery templates and recommend the best fit. Call this AFTER profiling the data source and deciding on chart types, but BEFORE creating the dashboard layout. The decider evaluates every template in the gallery against the data profile and chart mix, returning a rank...2 params
Score all gallery templates and recommend the best fit. Call this AFTER profiling the data source and deciding on chart types, but BEFORE creating the dashboard layout. The decider evaluates every template in the gallery against the data profile and chart mix, returning a rank...
chart_typesvaluekpi_countvaluerecommend_template_for_csvRecommend templates for a CSV file (no active workbook needed). Args: csv_path: Path to the CSV file. chart_types: Comma-separated chart types (optional). sample_rows: Rows to sample for inference. Returns: Ranked template recommendations.3 params
Recommend templates for a CSV file (no active workbook needed). Args: csv_path: Path to the CSV file. chart_types: Comma-separated chart types (optional). sample_rows: Rows to sample for inference. Returns: Ranked template recommendations.
chart_typesvaluecsv_pathstringsample_rowsintegerlist_gallery_templatesList all templates in the gallery with suitability rules. Templates are user-editable YAML files in ``templates/gallery/``. Each template defines layout zones, suitability criteria, recommended themes, and auto-wired interaction actions. Returns: Formatted listing of all galle...
List all templates in the gallery with suitability rules. Templates are user-editable YAML files in ``templates/gallery/``. Each template defines layout zones, suitability criteria, recommended themes, and auto-wired interaction actions. Returns: Formatted listing of all galle...
No parameter schema in public metadata yet.
Sponsors
Configuration
PYTHONUNBUFFEREDdefault: 1Force unbuffered stdout so MCP stdio framing is never delayed by Python buffering.
PYTHONIOENCODINGdefault: utf-8Force UTF-8 stdio so non-ASCII content in workbooks survives the round trip.
MCP_LOG_LEVELdefault: infoServer log level. One of: debug, info, warning, error, critical.
OPENAI_API_KEYsecretOptional. Enables AI-assisted chart suggestions and reference-image styling.
Readme
Details
- Repository
- github.com/subhatta123/twilize
- Website
- github.com/subhatta123/twilize
- Category
- Data & Analytics
- Package
twilize- Transport
- STDIO, HTTP
- Auth
- Required
- Registry
- MCP registry, active