Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Tableau MCP Serverlist my most recent workbooks"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Tableau MCP Server
A Model Context Protocol (MCP) server for Tableau Cloud and Tableau Server operations.
Project Status
Current Phase: Phase 6 Complete ✅ - Ready for Cloud Run Deployment
Completed Phases
✅ Phase 1: Project Setup
✅ Phase 2: Tableau API Client (13 methods)
✅ Phase 3: MCP Server Core (SSE transport, authentication)
✅ Phase 4: Core MCP Tools (6 tools)
✅ Phase 5: Advanced MCP Tools (3 tools)
✅ Phase 6: Cloud Run Deployment Infrastructure ✨ NEW!
Phase 6 Deliverables
✅ Optimized multi-stage Dockerfile
✅ Staging and production Cloud Run configurations
✅ Automated deployment scripts (
deploy-staging.sh,deploy-production.sh)✅ Secrets management automation (
create-secrets.sh)✅ Comprehensive deployment documentation (2,000+ lines)
✅ Automated testing script (
smoke-test.sh)✅ Monitoring and logging guides
Next Steps
Deploy to staging: Run
./deploy-staging.sh(requires Google Cloud project)Test deployment: Run
./smoke-test.sh stagingPhase 7: Create Cursor MCP configuration file
Phase 8: Comprehensive testing and documentation
See PHASE_6_LOG.md for detailed Phase 6 implementation notes.
See PASS_OFF.md for complete project roadmap.
Project Structure
tableau-mcp-project/
├── src/
│ ├── server.ts # Main MCP server (Phase 3)
│ ├── tableau-client.ts # Tableau API client (Phase 2)
│ ├── tools/ # MCP tool implementations (Phase 4-5)
│ │ ├── list-workbooks.ts
│ │ ├── list-views.ts
│ │ ├── query-view.ts
│ │ ├── refresh-extract.ts
│ │ ├── search-content.ts
│ │ └── get-metadata.ts
│ └── types.ts # TypeScript type definitions
├── package.json
├── tsconfig.json
├── Dockerfile # Cloud Run deployment (Phase 6)
└── env.example # Environment variable templateDevelopment Scripts
# Install dependencies
npm install
# Run in development mode with hot reload
npm run dev
# Build for production
npm run build
# Run production build
npm start
# Clean build artifacts
npm run cleanQuick Start - Cloud Run Deployment (Phase 6)
Prerequisites
Google Cloud Project with billing enabled
gcloud CLI installed and authenticated
Docker installed locally
Tableau Personal Access Token
Deploy to Staging
Create secrets:
chmod +x create-secrets.sh
./create-secrets.sh stagingDeploy service:
chmod +x deploy-staging.sh
./deploy-staging.shTest deployment:
chmod +x smoke-test.sh
./smoke-test.sh stagingDeploy to Production (When Ready)
# Create production secrets
./create-secrets.sh production
# Deploy to production
chmod +x deploy-production.sh
./deploy-production.sh
# Test production deployment
./smoke-test.sh productionComprehensive Guides
Deployment: See
DEPLOYMENT_GUIDE.mdSecrets: See
SECRETS_SETUP.mdTesting: See
TEST_DEPLOYMENT.mdMonitoring: See
MONITORING_GUIDE.mdPhase 6 Log: See
PHASE_6_LOG.md
Environment Configuration
Copy env.example to .env and configure:
TABLEAU_SERVER_URL=https://your-server.tableau.com
TABLEAU_SITE_ID=your-site
TABLEAU_TOKEN_NAME=your-token-name
TABLEAU_TOKEN_VALUE=your-token-value
MCP_API_KEY=secure-random-key-here
PORT=8080
TABLEAU_API_VERSION=3.21Dependencies
Core Dependencies
@modelcontextprotocol/sdk(^1.0.4) - MCP Server SDKexpress(^4.21.2) - HTTP server for SSE transportaxios(^1.7.9) - HTTP client for Tableau REST APIzod(^3.24.1) - Schema validationdotenv(^16.4.7) - Environment variable management
Development Dependencies
typescript(^5.7.2) - TypeScript compilertsx(^4.19.2) - TypeScript execution and hot reload@types/node&@types/express- Type definitions
Phase 1 Implementation Log
See PHASE_1_LOG.md for detailed implementation steps.
Next Implementation Phase
See PASS_OFF.md for Phase 2-8 implementation details.
License: MIT
Author: Agile Market Intelligence