tableau-mcp-navi
A Model Context Protocol (MCP) server for Tableau Server. Enables AI assistants to interact with Tableau workbooks, views, datasources, and metadata.
README
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
- 22 Tools for comprehensive Tableau Server interaction
- 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 (22 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 |
|---|---|
list_views |
List views (dashboards/sheets) |
get_view |
Get view details |
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 |
User Tools
| Tool | Description |
|---|---|
list_users |
List users on the server |
get_user |
Get user details |
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 |
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://..."
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
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.