A Model Context Protocol (MCP) server for Tableau Server - enables AI assistants to interact with Tableau workbooks, views, datasources, and metadata
Project description
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.
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
InhouseKYCFunnelViewor 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
- Log in to Tableau Server
- Click your profile icon → My Account Settings
- Scroll to Personal Access Tokens
- Click Create new token
- 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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters