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! 🎉
