cwtwb
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_mcp_statusA | Report cwtwb MCP server version, workbook state, and safe usage guardrails. Use this when an AI client seems stale, cannot see expected tools, or is about to edit MCP configuration to switch Tableau credentials. This tool never returns secret values. |
| upload_workbookA | Publish a .twb/.twbx to Tableau Cloud for openability or screenshots. Prefer validate_workbook_api for the default cloud semantic validation path because it does not publish or store the workbook. Use upload_workbook only when you explicitly need a published workbook_id, visual screenshot, TWBX packaging validation, or publish/openability evidence. Args: twb_path: Path to .twb or .twbx file. data_path: Optional data file (.xlsx/.xls/.hyper) to package. name: Workbook name on Tableau Cloud (defaults to filename stem). overwrite: Whether to overwrite existing workbook with same name. env_path: Optional path to a .env file with Tableau credentials. Explicit env_path takes priority over process environment variables. Returns: {success, workbook_id, workbook_url, views, twbx_path, twbx_size_kb, error} |
| validate_workbook_apiA | Validate a .twb file via Tableau Cloud REST API (no publish). This performs semantic validation that checks whether the workbook will actually open in Tableau — beyond what local XSD schema validation can detect (calculated field formulas, field references, data source connectivity, etc.). The file is NOT stored on the server. Only .twb files are supported. For .twbx files, use upload_workbook. Requires Tableau Cloud June 2026+ / Server 2026.2+ (API version 3.29+). Args: twb_path: Path to .twb file. validation_level: "syntactic" (XSD only) or "semantic" (full, default). env_path: Optional path to a .env file with Tableau credentials. Explicit env_path takes priority over process environment variables. Returns: {success, validation_level, valid, errors, warnings, error} |
| screenshot_workbookA | Screenshot a published workbook's view for human review. Use after upload_workbook to capture a visual snapshot. The screenshot is saved locally for human inspection. Args: workbook_id: The workbook ID returned by upload_workbook. output_dir: Directory to save screenshot (default: output/validation). view_index: Index of the view to screenshot (default: 0). view_name: Name of the view to screenshot (overrides view_index). env_path: Optional path to a .env file with Tableau credentials. Explicit env_path takes priority over process environment variables. Returns: {success, path, view_name, view_id, size_kb, error} |
| create_workbookC | Create a new workbook from a TWB or TWBX template file. |
| open_workbookA | Open an existing workbook (.twb or .twbx) for in-place worksheet editing. |
| list_fieldsA | List all available fields in the current workbook datasource. |
| list_worksheetsA | List worksheet names in the current workbook. |
| list_dashboardsA | List dashboards and their worksheet zones in the current workbook. |
| add_calculated_fieldC | Add a calculated field to the datasource. For formula syntax and best practices, read: read_resource('cwtwb://skills/calculation_builder') |
| validate_formulaC | Check Tableau function names without mutating the active workbook. |
| audit_calculated_fieldsA | Report calculated-field datatype/role contradictions without mutation. |
| repair_calculated_field_issuesB | Preview or explicitly apply selected calculated-field metadata repairs. |
| remove_calculated_fieldA | Remove a previously added calculated field. |
| add_groupC | Create a categorical dimension by grouping source-field members. |
| add_setB | Create a Tableau set (datasource filter-group) for membership logic. Use basis_field + top_n to build a top-N set (e.g. Top Central ranked by SUM(Central - Qty)); omit both to create an empty set used as a Set Action target (e.g. Highlighted Manufacturer). |
| set_geocoding_contextC | Set geographic lookup context for generated map coordinates. |
| set_field_geographic_roleC | Assign or clear a field's geographic role. |
| set_field_formatC | Set or clear a field's default Tableau display format. |
| set_shape_paletteC | Embed local shape assets and map categorical members to the native palette. |
| initialize_dashboard_filter_actionC | Initialize an existing native filter action's targets with overridable members. |
| set_field_fiscal_year_startC | Set the native fiscal year starting month on a date field and dependencies. |
| set_date_optionsC | Set datasource weekday origin for date-part headers and week calculations. |
| add_hierarchyC | Create an ordered Tableau drill hierarchy from bare dimension fields. |
| enable_domain_completionC | Add an INDEX() detail table calculation to trigger Tableau densification. |
| configure_worksheet_domain_rangeC | Complete missing dates for discrete exact-date fields; [] disables completion. |
| configure_subtotalsC | Configure visual subtotals and per-dimension subtotal labels. |
| add_reference_lineC | Add a field-backed reference line to a configured worksheet pane. |
| set_compound_color_paletteC | Map ordered categorical tuples to colors, including Measure Names. |
| add_reference_bandC | Add a constant or field-backed native filled band on an existing axis. |
| add_percentage_bandC | Add a native percentage distribution band on an existing axis. |
| add_parameterC | Add a parameter to the workbook. |
| add_worksheetC | Add a new blank worksheet to the workbook. |
| clone_worksheetC | Clone an existing worksheet and its worksheet window. |
| preview_worksheet_refactorB | Preview worksheet-scoped field rewrites without mutating the workbook. |
| apply_worksheet_refactorB | Rewrite one worksheet to use replacement fields without touching others. |
| set_worksheet_captionB | Set or clear a plain-text worksheet caption. |
| set_worksheet_titleC | Set or clear the visible plain-text worksheet title. |
| set_worksheet_hiddenB | Hide or unhide a worksheet tab by updating worksheet window metadata. |
| configure_chartC | Configure chart type and field mappings for a worksheet. For chart type selection and encoding best practices, read: read_resource('cwtwb://skills/chart_builder') |
| configure_dual_axisC | Configure a dual-axis chart composition. For dual-axis chart patterns and best practices, read: read_resource('cwtwb://skills/chart_builder') |
| configure_layered_chartC | Build layered panes with encodings, ordered values and native styles. sort_mode='computed' orders dimension members before table calculations; 'shelf' explicitly selects shelf sorting, and 'auto' retains default routing. table_calc_context gives explicit overrides a local native instance identity, including map calculations whose dimensions live on mark detail shelves. |
| configure_worksheet_styleC | Apply worksheet-level styling: background color, axis/grid/border visibility. pane_mark_style accepts mark-labels-range-field as a public field expression and resolves its native qualified reference for min/max labels. For formatting best practices, read: read_resource('cwtwb://skills/formatting') |
| configure_chart_recipeC | Configure a showcase recipe chart through the shared recipe registry. For recipe chart patterns, read: read_resource('cwtwb://skills/chart_builder') |
| set_mysql_connectionC | Configure the workbook datasource to use a local MySQL connection. |
| set_tableauserver_connectionA | Configure the workbook datasource to use a Tableau Server connection. This edits the workbook datasource connection only. It does not configure Tableau REST API/PAT credentials for validate_workbook_api, upload_workbook, or screenshot_workbook; pass env_path to those validation tools instead. |
| set_excel_connectionC | Configure the workbook datasource to use a local Excel connection. |
| set_csv_connectionC | Configure the workbook datasource to use a local CSV connection. |
| set_hyper_connectionC | Configure the workbook datasource to use a local Hyper extract connection. |
| add_dashboardA | Create a dashboard combining multiple worksheets. Recommended workflow for complex dashboards:
Layout options:
For dashboard design best practices, read: read_resource('cwtwb://skills/dashboard_designer') |
| add_dashboard_extensionC | Add a native dashboard extension with structured manifest and settings. |
| configure_worksheet_time_seriesC | Extend a continuous date domain and allow calculations on added periods. |
| add_dashboard_actionC | Add a filter, highlight, URL, navigation, or parameter dashboard action. For |
| add_dashboard_set_actionB | Add a Set Action (edit-group-action) to a dashboard. The set fills with the marks under the pointer and clears when it leaves, enabling hover-driven labels and calculations. |
| save_workbookA | Save the active workbook as a .twb or .twbx 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. This is the only default MCP tool that writes the active in-memory workbook to disk. After create_workbook/open_workbook plus worksheet/chart/dashboard edits, call save_workbook with the desired output_path to create the final .twb or .twbx file. validate_workbook and analyze_twb do not save files. |
| list_gallery_templatesA | List packaged Gallery layouts and their explicit worksheet slots. |
| recommend_gallery_templatesC | Recommend compatible Gallery templates with scores and reasons. |
| generate_gallery_layoutC | Bind exact worksheet names to a Gallery template and validate the layout DSL. |
| generate_layout_jsonA | Generate and save a dashboard layout file. Recommended workflow:
The layout_tree uses the declarative container DSL:
|
| generate_layout_yamlA | Generate and save a dashboard layout YAML file. Recommended workflow:
The layout_tree uses the same declarative container DSL as generate_layout_json. |
| convert_workbookA | Convert TWB, TWBX, YAML or JSON by output suffix without an editor session. YAML/JSON contain an editable native XML tree, not a simplified chart DSL. Assets are copied alongside definitions; keep these files together. Unknown XML is retained. Only XML syntax is checked, not Tableau runtime behavior. The current editor session is not modified. Existing output requires force. |
| inspect_target_schemaB | Inspect the first-sheet schema of a target Excel datasource. |
| profile_twb_for_migrationB | Profile workbook datasources and worksheet scope before migration. |
| propose_field_mappingC | Scan source and target schema and propose a field mapping. |
| preview_twb_migrationC | Preview a workbook migration onto a target datasource. |
| apply_twb_migrationC | Apply a workbook migration and write a migrated TWB plus reports. |
| list_capabilitiesA | List cwtwb's declared capability boundary. This reports what workbook features/charts are supported by cwtwb. It does not enumerate callable MCP tools and should not be used to infer whether a tool like add_dashboard or save_workbook exists. |
| describe_capabilityB | Describe one declared capability and its support tier. |
| analyze_twbA | Analyze an existing TWB/TWBX file against cwtwb's declared capabilities. This tool requires a file_path that already exists on disk. It cannot analyze the active in-memory workbook directly and it does not save the current workbook. For a newly generated workbook, call save_workbook first, then pass that saved path to analyze_twb. |
| diff_template_gapC | Summarize the non-core capability gap of a TWB template. |
| validate_workbookA | Validate a workbook against the official Tableau TWB XSD schema. Checks whether the generated XML conforms to Tableau's published schema. This tool does not save or export the active workbook. If file_path is omitted, it validates the current in-memory workbook before save; if file_path is provided, it validates an existing .twb/.twbx file on disk. Call save_workbook when you need to write the workbook to a file. Args: file_path: Path to a .twb or .twbx file to validate. If omitted, validates the currently open workbook (in memory, before save). Returns: PASS/FAIL summary with error details. |
| inspect_excel_connectionC | Preview how an Excel workbook will be interpreted before connection setup. |
| link_worksheet_filtersC | Link matching categorical filters so one control filters all given sheets. |
| add_hyper_datasourceC | Add and activate another independent extracted data source. |
| select_datasourceC | Select the source for subsequent field and worksheet authoring. |
| import_blended_fieldC | Define a primary aggregate proxy for a secondary source field. |
| configure_datasource_blendC | Link independently aggregated sources in a worksheet without a join. |
| add_combined_setC | Union existing native sets at the same dimension grain. |
| set_measure_name_aliasesC | Alias actual Measure Names members, including table calculation measures. |
| enable_automatic_phone_layoutC | Derive a scrolling Phone layout from the default dashboard objects. |
| copy_default_device_layoutC | Preserve default geometry in a custom Phone/Tablet layout with shared IDs. |
| configure_custom_labelC | Set rich literal/field mark labels while preserving pane calculation context. |
| configure_custom_tooltipD | Set formatted text/field runs or embedded sheets with explicit filter_fields. |
| add_dashboard_toggle_buttonC | Show/hide a dedicated dashboard sheet container with a native button. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| read_tableau_functions | Read the complete list of Tableau calculation functions. |
| read_gallery_index | List packaged Gallery templates and their resource URIs. |
| read_skills_index | List all available cwtwb agent skills. |
| read_tool_surface | Describe the stable MCP tool surface and correct client usage. |
| read_manual_editing_compat | Compatibility alias for agents that guess a docs/manual-editing URI. |
| read_docs_tool_surface_compat | Compatibility alias for agents that put docs under cwtwb://docs. |
| read_profiles_index | List available dataset profiles used by contract review. |
TDQS
Scored across 84 tools
Many tools are distinct and descriptions disambiguate, but several clusters overlap: multiple validate/analyze tools, several configure_chart variants, and duplicate layout generators (JSON vs YAML) make selection uncertain. The agent can usually recover from descriptions, but not all boundaries are crisp.
All names use snake_case with a consistent verb_noun or verb_noun_phrase pattern (add_, set_, configure_, list_, validate_, etc.). No mixed conventions or cryptic abbreviations appear in tool names.
84 tools is an extreme over-scoping for a single MCP server; the rubric treats 50+ as an extreme mismatch. Even with a broad Tableau authoring domain, this volume imposes heavy selection and maintenance burden.
The surface covers workbook lifecycle, worksheets, dashboards, fields, calculations, connections, migration, validation, and publishing. Some deletion/removal operations (e.g., dashboards, worksheets, parameters) are absent, but most authoring workflows are covered.