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.
Public tool metadata for what this MCP can expose to an agent.
generate_layout_jsonGenerate and save a dashboard layout JSON file.3 paramsGenerate and save a dashboard layout JSON file.
layout_treeobjectoutput_pathstringascii_previewstringinspect_target_schemaInspect the first-sheet schema of a target Excel datasource.1 paramsInspect the first-sheet schema of a target Excel datasource.
target_sourcestringprofile_twb_for_migrationProfile workbook datasources and worksheet scope before migration.3 paramsProfile workbook datasources and worksheet scope before migration.
scopestringfile_pathstringtarget_sourcestringpropose_field_mappingScan source and target schema and propose a field mapping.4 paramsScan source and target schema and propose a field mapping.
scopestringfile_pathstringtarget_sourcestringmapping_overridesvaluepreview_twb_migrationPreview a workbook migration onto a target datasource.4 paramsPreview a workbook migration onto a target datasource.
scopestringfile_pathstringtarget_sourcestringmapping_overridesvalueapply_twb_migrationApply a workbook migration and write a migrated TWB plus reports.5 paramsApply a workbook migration and write a migrated TWB plus reports.
scopestringfile_pathstringoutput_pathstringtarget_sourcestringmapping_overridesvaluemigrate_twb_guidedRun the built-in migration workflow and pause for warning confirmation when needed.6 paramsRun the built-in migration workflow and pause for warning confirmation when needed.
scopestringfile_pathstringoutput_pathstringtarget_sourcestringmapping_overridesvalueapply_if_no_blockersbooleanlist_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 paramsDescribe one declared capability and its support tier.
kindstringnamestringanalyze_twbAnalyze a TWB file against twilize's declared capabilities.1 paramsAnalyze a TWB file against twilize's declared capabilities.
file_pathstringdiff_template_gapSummarize the non-core capability gap of a TWB template.1 paramsSummarize 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 paramsRun 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 paramsCreate 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 paramsOpen 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 paramsAdd a calculated field to the datasource.
rolestringformulastringdatatypestringfield_namestringfield_typestringdefault_formatstringremove_calculated_fieldRemove a previously added calculated field.1 paramsRemove a previously added calculated field.
field_namestringadd_parameterAdd a parameter to the workbook.9 paramsAdd a parameter to the workbook.
namestringdatatypestringmax_valuestringmin_valuestringdomain_typestringgranularitystringdefault_valuestringallowed_valuesvaluedefault_formatstringadd_worksheetAdd a new blank worksheet to the workbook.1 paramsAdd a new blank worksheet to the workbook.
worksheet_namestringconfigure_chartConfigure chart type and field mappings for a worksheet.23 paramsConfigure chart type and field mappings for a worksheet.
rowsvaluesizevaluecolorvaluelabelvaluedetailvaluecolumnsvaluefiltersvaluetooltipvaluecolor_mapvaluemark_typestringlabel_runsvaluemap_fieldsvaluemap_layersvaluewedge_sizevaluelabel_paramvaluetext_formatvaluemeasure_valuesvalueworksheet_namestringmark_sizing_offbooleansort_descendingvalueaxis_fixed_rangevaluecustomized_labelvaluegeographic_fieldvalueconfigure_dual_axisConfigure a dual-axis chart composition.29 paramsConfigure a dual-axis chart composition.
rowsvaluesize_1valuesize_2valuecolor_1valuecolor_2valuecolumnsvaluefiltersvaluelabel_1valuelabel_2valuedetail_1valuedetail_2valuehide_axesbooleancolor_map_1valuemark_type_1stringmark_type_2stringshow_labelsbooleanmark_color_1valuemark_color_2valuesize_value_1valuesize_value_2valuesynchronizedbooleanwedge_size_1valuewedge_size_2valuehide_zerolinebooleanreverse_axis_1booleanworksheet_namestringdual_axis_shelfstringmark_sizing_offbooleansort_descendingvalueconfigure_worksheet_styleApply worksheet-level styling: background color, axis/grid/border visibility.21 paramsApply worksheet-level styling: background color, axis/grid/border visibility.
hide_axesbooleanaxis_stylevaluecell_formatsvaluehide_bordersbooleanhide_reflinesbooleanhide_zerolinebooleanlabel_formatsvalueheader_formatsvaluehide_droplinesbooleanhide_gridlinesbooleanworksheet_namestringdisable_tooltipbooleanhide_band_colorbooleanpane_cell_stylevaluepane_mark_stylevaluebackground_colorvaluehide_table_dividersbooleanpane_datalabel_stylevaluehide_col_field_labelsbooleanhide_row_field_labelsbooleanpane_trendline_hiddenbooleanconfigure_chart_recipeConfigure a showcase recipe chart through the shared recipe registry.4 paramsConfigure a showcase recipe chart through the shared recipe registry.
recipe_argsvaluerecipe_namestringworksheet_namestringauto_ensure_prerequisitesbooleanset_mysql_connectionConfigure the workbook datasource to use a local MySQL connection.5 paramsConfigure the workbook datasource to use a local MySQL connection.
portstringdbnamestringserverstringusernamestringtable_namestringset_tableauserver_connectionConfigure the workbook datasource to use a Tableau Server connection.6 paramsConfigure the workbook datasource to use a Tableau Server connection.
portstringdbnamestringserverstringusernamestringdirectorystringtable_namestringset_hyper_connectionConfigure the workbook datasource to use a local Hyper extract connection.3 paramsConfigure the workbook datasource to use a local Hyper extract connection.
tablesvaluefilepathstringtable_namestringset_mssql_connectionConfigure the workbook datasource to use a Microsoft SQL Server connection.5 paramsConfigure the workbook datasource to use a Microsoft SQL Server connection.
portstringdbnamestringusernamestringtable_namestringserver_hoststringadd_dashboardCreate a dashboard combining multiple worksheets.5 paramsCreate a dashboard combining multiple worksheets.
widthintegerheightintegerlayoutvaluedashboard_namestringworksheet_namesarrayadd_dashboard_actionAdd an interaction action to a dashboard.7 paramsAdd an interaction action to a dashboard.
fieldsarraycaptionstringevent_typestringaction_typestringsource_sheetstringtarget_sheetstringdashboard_namestringadd_reference_lineAdd a reference line to a worksheet (constant, average, median, etc.).8 paramsAdd a reference line to a worksheet (constant, average, median, etc.).
labelstringscopestringvaluestringformulastringaxis_fieldstringlabel_typestringline_colorstringworksheet_namestringadd_reference_bandAdd a reference band (shaded region) to a worksheet.8 paramsAdd a reference band (shaded region) to a worksheet.
scopestringto_valuestringaxis_fieldstringfill_colorstringfrom_valuestringto_formulastringfrom_formulastringworksheet_namestringadd_trend_lineAdd a trend line to a worksheet (linear, polynomial, log, exp, power).5 paramsAdd a trend line to a worksheet (linear, polynomial, log, exp, power).
fitstringdegreeintegerexclude_colorbooleanworksheet_namestringshow_confidence_bandsbooleanapply_color_paletteSet a custom color palette. Built-in: tableau10, tableau20, blue-red, green-gold.3 paramsSet 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 paramsApply uniform styling (background, font) to all zones in a dashboard.
font_familystringdashboard_namestringtitle_font_sizestringbackground_colorstringsave_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 paramsSave 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 paramsInspect 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 paramsSuggest 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 paramsConvert 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_pathstringtable_namestringsample_rowsintegercsv_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 paramsBuild 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...
themestringcsv_pathstringmax_chartsintegerrules_yamlstringoutput_pathstringtemplate_pathstringdashboard_titlestringinspect_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 paramsInspect 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 paramsBuild 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...
themestringhyper_pathstringmax_chartsintegerrules_yamlstringtable_namestringoutput_pathstringtemplate_pathstringdashboard_titlestringmysql_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 paramsBuild 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...
portintegerthemestringdbnamestringpasswordstringusernamestringmax_chartsintegerrules_yamlstringtable_namestringoutput_pathstringserver_hoststringtemplate_pathstringdashboard_titlestringmssql_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 paramsBuild 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:...
portintegerthemestringdbnamestringpasswordstringusernamestringmax_chartsintegerrules_yamlstringtable_namestringoutput_pathstringserver_hoststringtemplate_pathstringdashboard_titlestringtrusted_connectionbooleanget_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 paramsSet 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...
keystringvaluestringsectionstringreset_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 paramsExport 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 paramsProfile 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 paramsProfile 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 paramsScore 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...
kpi_countvaluechart_typesvaluerecommend_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 paramsRecommend 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.
csv_pathstringchart_typesvaluesample_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.
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.
com.mcparmory/google-sheets
domdomegg/google-sheets-mcp
henilcalagiya/google-sheets-mcp
cct15/war-dashboard-data
moooonad/mcp-google-sheets-full
io.github.br0ski777/csv-to-json