Skip to main content

Tableau MCP Server (tableau-mcp-navi)

A Model Context Protocol (MCP) server for Tableau Server. Enables AI assistants (like Claude, Cursor) to interact with Tableau workbooks, views, datasources, and metadata.

PyPI version License: MIT Python 3.10+

Features

  • 27 Tools for comprehensive Tableau Server interaction
  • Custom SQL from URL or Name: Give a Tableau URL or workbook name, get the SQL instantly (no file download!)
  • Fuzzy Workbook Matching: Works with CamelCase slugs like InhouseKYCFunnelView or exact names
  • Find Datasource Usage: Discover which dashboards use a specific published datasource
  • Publishing: Upload workbooks and datasources to Tableau Server
  • Two Authentication Methods: Personal Access Token (PAT) or Username/Password
  • Metadata API: Extract refresh info, data lineage, upstream tables
  • Zero Install: Run directly with uvx - no local installation needed
  • Auto Updates: Users always get the latest version

Quick Start

1. Install uv (if not installed)

# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

2. Configure Cursor

Add to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "tableau": {
      "command": "uvx",
      "args": ["tableau-mcp-navi"],
      "env": {
        "TABLEAU_SERVER_URL": "https://your-tableau-server.com",
        "TABLEAU_TOKEN_NAME": "your_token_name",
        "TABLEAU_TOKEN_SECRET": "your_token_secret",
        "TABLEAU_VERIFY_SSL": "false"
      }
    }
  }
}

3. Restart Cursor

The MCP server will be available immediately!

Available Tools (27 total)

Workbook Tools

Tool Description
list_workbooks List all workbooks on the server
get_workbook Get workbook details including views
search_workbooks Search workbooks by name

View Tools

Tool Description
get_view_data Get underlying data from a view
get_view_image Get PNG preview of a view
download_view_image Download view image to disk
download_view_image_from_url Download image from Tableau URL

Data Source Tools

Tool Description
list_datasources List all data sources
get_datasource Get data source details
refresh_datasource Trigger extract refresh

Project Tools

Tool Description
list_projects List all projects
get_project Get project details

Utility Tools

Tool Description
resolve_id Resolve a name to full UUID (workbooks, datasources, views, projects)

Metadata API Tools (RCA & Lineage)

Tool Description
get_datasource_extract_info Get extract refresh times
get_dashboard_extract_info Get extract info for all datasources in a dashboard
find_stale_extracts Find datasources with stale extracts
get_datasource_tables Get upstream tables for a datasource
get_dashboard_tables Get ALL tables powering a dashboard
get_dashboard_sql_from_url Extract custom SQL from dashboard URL
get_datasource_custom_sql NEW Get Custom SQL from datasource (no download!)

Publishing Tools 🆕

Tool Description
publish_workbook Upload a .twb/.twbx workbook to Tableau Server
publish_datasource Upload a .tds/.tdsx datasource to Tableau Server
list_projects_for_publishing List projects with IDs for publishing

Other Tools

Tool Description
test_connection Test Tableau connectivity
list_sites List available sites

Configuration

Environment Variables

Variable Required Description
TABLEAU_SERVER_URL ✅ Your Tableau Server URL
TABLEAU_TOKEN_NAME ✅* Personal Access Token name
TABLEAU_TOKEN_SECRET ✅* Personal Access Token secret
TABLEAU_USERNAME ✅* Username (alternative to PAT)
TABLEAU_PASSWORD ✅* Password (alternative to PAT)
TABLEAU_SITE_ID ❌ Site ID (empty for default)
TABLEAU_VERIFY_SSL ❌ Set to "false" for self-signed certs
TABLEAU_API_VERSION ❌ Override API version
TABLEAU_MCP_ANALYTICS ❌ Set to "false" to disable analytics

*Either PAT or Username/Password required

Getting a Personal Access Token

  1. Log in to Tableau Server
  2. Click your profile icon → My Account Settings
  3. Scroll to Personal Access Tokens
  4. Click Create new token
  5. Copy both the Token Name and Token Secret

Usage Examples

After configuring Cursor:

"List all workbooks in Tableau"
"Get details for workbook abc123"
"Search for workbooks about sales"
"Get data from view xyz789"
"What tables power the Sales Dashboard?"
"Find all stale extracts older than 48 hours"
"Get the SQL from this Tableau URL: https://..."

# New in v0.3.1:
"Resolve the UUID for workbook 'Sales Dashboard'"
"Get the Custom SQL for the 'UPI Daily Metrics' datasource"
"Publish my workbook /path/to/report.twbx to project abc123"
"List projects where I can publish workbooks"

Updates

When the package is updated on PyPI, users automatically get the new version on their next run - no action required!

Development

# Clone
git clone https://github.com/manish-coder-1007/tableau-mcp-navi.git
cd tableau-mcp-navi

# Install dependencies
uv sync

# Run locally
uv run python -m tableau_mcp_navi

License

MIT License - see LICENSE file.

Author

Manish Balot

Links

Release files for tableau-mcp-navi 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tableau-mcp-navi 0.3.1
File Size Uploaded
tableau_mcp_navi-0.3.1.tar.gz 29.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tableau-mcp-navi 0.3.1
File Interpreter ABI Platform
tableau_mcp_navi-0.3.1-py3-none-any.whl Python 3 none any Details

Total release size: 67.4 kB

Release files / tableau_mcp_navi-0.3.1.tar.gz

Download URL tableau_mcp_navi-0.3.1.tar.gz
Size 29.9 kB
Tags Source
SHA-256 checksum
How to use checksums
00dcf1bc0b1933781c4fd0bbd50c9406d9850856a8cb00345f7e07d95d6092ec
BLAKE2b-256 checksum
How to use checksums
5c52894c310641ae85a595ccd8398263dcdb284949ccca6f539fcda11938f0f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.5

Release files / tableau_mcp_navi-0.3.1-py3-none-any.whl

Download URL tableau_mcp_navi-0.3.1-py3-none-any.whl
Size 37.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7b3b05a83d671a2db76c0b184c3a7a720e73bdadd9527187ac3e3c8755d3c993
BLAKE2b-256 checksum
How to use checksums
342254981bcf8ddc473aeed580eb651cef514cf5540e4cd17a1798bde319b27d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.5

Release history Release notifications | RSS feed

This release

0.3.1 This release

2 release files

0.3.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page