Tableau MCP Server ๐
A powerful Model Context Protocol (MCP) server that connects Claude Desktop to Tableau Server, enabling natural language interactions with your Tableau data and comprehensive administrative capabilities.
โจ Features
๐ Data Access & Analysis
- List & Browse: Explore all workbooks, views, and data sources
- Data Extraction: Get CSV data from any Tableau view
- Visual Export: Download dashboard images in PNG format
- Complete Datasets: Download entire data sources with all raw data
- Smart Search: Find content across your Tableau server
๐ก๏ธ Administrative Tools (New!)
- User Management: List all users with roles and login history
- Permission Auditing: See exactly who has access to workbooks
- Group Management: View all groups and member counts
- Project Oversight: Audit project permissions and settings
- Site Administration: Get comprehensive site statistics
- Usage Analytics: Detailed workbook usage and access audits
๐ฏ Use Cases
For Data Analysts
- "Show me the sales data from Q4 dashboard"
- "Export the customer metrics as CSV"
- "Find all reports containing revenue data"
For Tableau Administrators
- "Who has access to the Finance workbook?"
- "List all users who haven't logged in recently"
- "Show me all groups and their member counts"
- "Audit the permissions for our HR dashboards"
๐ Quick Start
Prerequisites
- Python 3.8+
- Claude Desktop installed
- Access to Tableau Server or Tableau Cloud
- Administrative privileges (for admin tools)
1. Clone and Setup
# Clone the repository
git clone https://github.com/hetpatel-11/Tableau-MCP.git
cd Tableau-MCP
# Create virtual environment (recommended)
python -m venv tableau_mcp_env
source tableau_mcp_env/bin/activate # On Windows: tableau_mcp_env\Scripts\activate
# Install ALL dependencies including MCP SDK
pip install -r requirements.txt
2. MCP SDK Installation (If Having Issues)
If you encounter MCP SDK installation issues, try these solutions:
# Option 1: Install MCP SDK directly
pip install mcp>=1.0.0
# Option 2: Install with specific version
pip install mcp==1.0.0
# Option 3: Install from source (if needed)
pip install git+https://github.com/modelcontextprotocol/python-sdk.git
# Option 4: Force reinstall
pip install --force-reinstall mcp>=1.0.0
3. Verify Installation
# Test that MCP SDK is properly installed
python -c "import mcp; print('โ
MCP SDK installed successfully')"
# Test Tableau Server Client
python -c "import tableauserverclient as TSC; print('โ
Tableau Server Client ready')"
# Test the server
python tableau_mcp_server.py --test
4. Configuration
Create a .env file with your Tableau credentials:
TABLEAU_SERVER_URL=https://your-tableau-server.com
TABLEAU_SITE_ID=your-site-name
# Option 1: Personal Access Token (Recommended)
TABLEAU_TOKEN_NAME=your-token-name
TABLEAU_TOKEN_VALUE=your-token-value
# Option 2: Username/Password
# TABLEAU_USERNAME=your-username
# TABLEAU_PASSWORD=your-password
5. Claude Desktop Setup
Add to your Claude Desktop configuration:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"tableau-server": {
"command": "/path/to/Tableau-MCP/start_clean.sh",
"args": []
}
}
}
6. Start the Server
# Make startup script executable
chmod +x start_clean.sh
# Start the server
./start_clean.sh
๐ ๏ธ Available Tools
Data Access Tools
| Tool | Description |
|---|---|
list_workbooks |
List all available Tableau workbooks |
list_views |
List views in a specific workbook |
get_view_data |
Extract CSV data from any view |
get_view_image |
Get dashboard/view as PNG image |
search_content |
Search across all Tableau content |
list_datasources |
List all available data sources |
download_datasource |
Download complete raw datasets |
Administrative Tools
| Tool | Description |
|---|---|
list_workbook_permissions |
See who has access to workbooks |
list_all_users |
View all users with roles and details |
list_all_groups |
View all groups with member counts |
get_user_permissions |
Get detailed user permissions |
list_projects_permissions |
Audit project permissions |
get_site_info |
Get site statistics and quotas |
audit_workbook_usage |
Comprehensive workbook audits |
list_user_groups |
See user group memberships |
๐ MCP Resources
The server exposes Tableau content as MCP resources:
tableau://workbooks/{workbook_id}- Workbook metadatatableau://views/{view_id}/data- View data in CSV format
๐ง Advanced Usage
Debug Mode
python tableau_mcp_server.py --debug
Authentication Testing
python tableau_mcp_server.py --test
Manual Setup
python setup.py --test-only
๐๏ธ Architecture
Claude Desktop โ MCP Server โ Tableau REST API โ Tableau Server
โฌ๏ธ
[15 Available Tools]
โฌ๏ธ
[Data + Admin Capabilities]
๐ Project Structure
Tableau-MCP/
โโโ tableau_mcp_server.py # Main MCP server implementation
โโโ start_clean.sh # Server startup script
โโโ requirements.txt # Python dependencies (includes MCP SDK)
โโโ setup.py # Setup and configuration script
โโโ env.example # Environment configuration template
โโโ README.md # This file
โโโ .env # Your credentials (create this)
๐ Security
- Local Operation: Server runs locally with your permissions
- Secure Credentials: Uses environment variables for authentication
- Token Authentication: Supports Tableau Personal Access Tokens
- No Data Leakage: No data sent to external services
๐จ Troubleshooting
MCP SDK Issues
"ModuleNotFoundError: No module named 'mcp'"
# Solution 1: Install MCP SDK
pip install mcp>=1.0.0
# Solution 2: Check virtual environment
source tableau_mcp_env/bin/activate
pip install -r requirements.txt
# Solution 3: Verify Python version
python --version # Should be 3.8+
"MCP SDK version conflict"
# Uninstall and reinstall
pip uninstall mcp
pip install mcp>=1.0.0
Common Issues
"Authentication failed"
- Verify credentials in
.envfile - Check Tableau Server URL format
- Ensure account has proper permissions
"No tools available in Claude"
- Restart Claude Desktop after configuration
- Check that
start_clean.shis executable - Verify Python dependencies are installed
"Permission denied errors"
- Ensure your account has administrative privileges
- Check Tableau Server user permissions
- Verify site access rights
Getting Help
- Test Connection:
python tableau_mcp_server.py --test - Debug Mode:
python tableau_mcp_server.py --debug - Check Logs: Look for error messages in terminal output
- Verify MCP:
python -c "import mcp; print('MCP SDK OK')"
๐ Example Conversations
Data Analysis
User: "Show me all workbooks and find the sales data"
Claude: [Lists workbooks] โ [Finds sales-related content] โ [Extracts data]
User: "Get the customer metrics from the Q4 dashboard as CSV"
Claude: [Locates dashboard] โ [Extracts view data] โ [Provides CSV]
Administration
User: "Who has access to our Finance workbook?"
Claude: [Lists all users and groups with permissions] โ [Shows permission levels]
User: "Show me all users who are site administrators"
Claude: [Lists users by role] โ [Highlights administrators]
๐ค Contributing
- Fork the repository
- Create a feature branch
- Add your improvements
- Test thoroughly
- Submit a pull request
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Acknowledgments
- Built with the Model Context Protocol
- Uses Tableau Server Client
- Designed for Claude Desktop
Ready to supercharge your Tableau workflows with Claude? Get started now! ๐