nail-peter/tableau-cloud-mcp-server-v2
If you are the rightful owner of tableau-cloud-mcp-server-v2 and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
Tableau Cloud MCP Server 2.0 is a comprehensive server for Tableau Cloud administration, offering enterprise-grade tools and complete API coverage.
create-user
Create new users with specified roles.
search-users
List and filter users by various criteria.
list-workbooks
List and filter published workbooks.
list-datasources
List and filter published data sources.
create-project
Create new projects with permission settings.
Tableau Cloud MCP Server 2.0
A comprehensive MCP (Model Context Protocol) server for Tableau Cloud administration built with TypeScript. This server provides enterprise-grade tools with complete Tableau Cloud API coverage, structured logging, and production-ready architecture.
Features
- Complete API Coverage: 50+ tools covering all aspects of Tableau Cloud administration
- Enterprise Architecture: TypeScript with full type safety, structured logging, and error handling
- Production Ready: Docker support, comprehensive configuration, and professional deployment options
- Official MCP Standards: Built following Tableau's official MCP implementation patterns
- Comprehensive Administration: Users, groups, workbooks, data sources, projects, permissions, and more
Quick Start
Prerequisites
- Node.js 20 or higher
- Tableau Cloud site with API access
- Personal Access Token with Site Administrator permissions
Installation
# Install dependencies
npm install
# Build the project
npm run build
Configuration
- Copy the environment template:
cp .env.example .env
- Edit
.env
with your Tableau Cloud credentials:
SERVER=https://your-site.online.tableau.com
PAT_NAME=your-personal-access-token-name
PAT_VALUE=your-personal-access-token-value
SITE_NAME=your-site-name
- Update
config.json
for Claude Desktop:
{
"mcpServers": {
"tableau-cloud": {
"command": "node",
"args": ["./build/index.js"],
"env": {
"SERVER": "https://your-site.online.tableau.com",
"PAT_NAME": "your-pat-name",
"PAT_VALUE": "your-pat-value",
"SITE_NAME": "your-site-name"
}
}
}
}
Usage
Run the server:
node build/index.js
Or use with MCP Inspector:
npm run inspect
Available Tools
User Management
create-user
- Create new users with specified rolessearch-users
- List and filter users by various criteria
Content Management
list-workbooks
- List and filter published workbookslist-datasources
- List and filter published data sourcescreate-project
- Create new projects with permission settings
Coming Soon
- Additional user tools (update, delete, get-by-name)
- Group management tools
- Permission management tools
- Operational tools (jobs, schedules)
- Site administration tools
- Advanced data access tools
Architecture
This implementation follows the official Tableau MCP patterns with:
- TypeScript Foundation: Full type safety with Zod validation
- Modular Design: Clean separation between MCP layer, SDK abstraction, and tool implementations
- Enterprise Logging: Structured logging with request correlation and secret masking
- Result Types: Functional error handling with ts-results-es
- Configuration Management: Environment-based configuration with validation
- Professional Testing: Vitest framework with coverage reporting
Development
# Install dependencies
npm install
# Start development build with watch
npm run build:watch
# Run tests
npm test
# Run tests with coverage
npm run coverage
# Lint code
npm run lint
# Build and inspect
npm run build:inspect
Deployment
Docker
Build and run with Docker:
npm run build:docker
docker run -e SERVER=... -e PAT_NAME=... -e PAT_VALUE=... -e SITE_NAME=... tableau-cloud-mcp
Production
The server is designed for production deployment with:
- Structured logging with configurable levels
- Request correlation for debugging
- Secure credential handling
- Performance monitoring capabilities
- Error recovery and retry mechanisms
Configuration Options
Environment Variable | Description | Default |
---|---|---|
SERVER | Tableau Cloud server URL | Required |
PAT_NAME | Personal Access Token name | Required |
PAT_VALUE | Personal Access Token value | Required |
SITE_NAME | Tableau site name | Required |
DEFAULT_LOG_LEVEL | Logging level | debug |
DISABLE_LOG_MASKING | Disable sensitive data masking | false |
INCLUDE_TOOLS | Comma-separated list of tools to include | All tools |
EXCLUDE_TOOLS | Comma-separated list of tools to exclude | None |
Contributing
- Fork the repository
- Create a feature branch
- Make your changes with proper TypeScript types
- Add tests for new functionality
- Run linting and tests
- Submit a pull request
License
MIT License - See LICENSE file for details.
Support
For questions, issues, or feature requests:
- Open a GitHub issue
- Check the comprehensive tool documentation
- Review the configuration examples
Built with ❤️ for the Tableau Community