tableau-mcp-server

ARJ999/tableau-mcp-server

3.2

If you are the rightful owner of tableau-mcp-server 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.

The Tableau MCP Server for Railway is a pre-configured server that facilitates interaction between AI applications, large language models (LLMs), and Tableau Cloud or Tableau Server instances using the Model Context Protocol (MCP).

Tools
4
Resources
0
Prompts
0

Tableau MCP Server for Railway

This repository contains a pre-configured version of the official Tableau MCP Server, optimized for easy deployment to Railway. This server enables AI applications and large language models (LLMs) to interact with your Tableau Cloud or Tableau Server instance using the Model Context Protocol (MCP).

Deploy to Railway

Features

  • Optimized for Railway: Includes railway.json and nixpacks.toml for seamless, zero-configuration deployments.
  • Health Check Endpoint: Integrated /health endpoint for robust monitoring on Railway.
  • Simplified Deployment: A single-click deploy button and a guided shell script (deploy-railway.sh) make deployment effortless.
  • Clear Documentation: Step-by-step instructions for deployment and connecting to LLM clients.
  • Full Tableau MCP Functionality: Provides the complete suite of tools for interacting with Tableau, including:
    • Content exploration (workbooks, views, datasources)
    • Datasource querying
    • View data and image retrieval
    • Tableau Pulse metrics (if enabled)

Deployment to Railway

You can deploy your Tableau MCP Server to Railway in two ways: using the one-click deploy button or cloning this repository and using the Railway CLI.

Option 1: One-Click Deploy (Recommended)

  1. Click the "Deploy to Railway" button at the top of this README.
  2. You will be redirected to Railway to create a new project from this template.
  3. In the Railway project, navigate to the "Variables" tab.
  4. Add the required environment variables as described in the Configuration section below.
  5. Railway will automatically build and deploy the server. Your server URL will be available in the "Settings" tab under "Domains".

Option 2: Manual Deployment with Railway CLI

Prerequisites:

Steps:

  1. Clone the repository:

    git clone https://github.com/ARJ999/tableau-mcp-server.git
    cd tableau-mcp-server
    
  2. Log in to Railway:

    railway login
    
  3. Create and link a new Railway project:

    railway init
    
  4. Run the deployment script:

    This interactive script will prompt you for your Tableau credentials and set them as environment variables in your Railway project.

    chmod +x deploy-railway.sh
    ./deploy-railway.sh
    
  5. Get your service URL:

    Once the deployment is complete, find your public URL by running:

    railway domain
    

Configuration

To connect to your Tableau instance, you must configure the following environment variables in your Railway project under the Variables tab.

Required Variables

VariableDescriptionExample
SERVERThe full URL of your Tableau Server or Tableau Cloud instance.https://prod-apnortheast-a.online.tableau.com
SITE_NAMEThe name of the site to connect to. For the default site, use an empty string ("").my-company-site
PAT_NAMEThe name of the Personal Access Token (PAT) you created in Tableau.mcp-server-token
PAT_VALUEThe secret value of the Personal Access Token. Treat this like a password.aBcDeFgHiJkLmNoPqRsTuVwXyZ1234567890==

Creating a Tableau Personal Access Token (PAT)

  1. Log in to your Tableau Cloud or Server account.
  2. Navigate to My Account Settings.
  3. Under the Personal Access Tokens section, create a new token.
  4. Give the token a descriptive name and copy both the Token Name (PAT_NAME) and the Token Secret (PAT_VALUE). You will not be able to see the secret again after you close the dialog.

Connecting to your LLM

Once your Tableau MCP Server is deployed on Railway, you can connect it to any LLM client that supports remote MCP servers (such as some versions of Claude, Cursor, or custom-built AI applications).

The client needs the public URL of your deployed server.

  1. Get your Server URL: Find your public URL from the Railway project settings (e.g., https://tableau-mcp-server-production-1234.up.railway.app).

  2. Configure your LLM Client: In your LLM client's settings, look for a section related to "Tools", "MCP Servers", or "Custom Connectors". Add a new remote server configuration. The exact format may vary, but it will typically look like this:

    {
      "mcpServers": {
        "tableau": {
          "url": "https://your-railway-deployment-url.up.railway.app/tableau-mcp-server"
        }
      }
    }
    

    Important: Notice that the path /tableau-mcp-server is appended to your Railway URL. This is the base path for the MCP server.

  3. Start Chatting: You can now interact with your Tableau data. Try prompts like:

    • "List all the workbooks I have access to."
    • "Show me the 'Sales Performance' dashboard."
    • "Query the 'Regional Sales' datasource and show me the total sales for the 'East' region."

Local Development

To run the server locally for testing:

  1. Install dependencies:

    npm install
    
  2. Create an environment file:

    Copy the .env.railway.example file to a new file named .env and fill in your Tableau credentials.

    cp .env.railway.example .env
    
  3. Build and start the server:

    This will start the server in HTTP mode on the port specified in your .env file (default is 3927).

    npm run build
    npm run start:http
    

Project Structure

.gitignore
.env.railway.example  # Template for environment variables
deploy-railway.sh     # Interactive deployment script
nixpacks.toml         # Build configuration for Railway
package.json
railway.json          # Deployment configuration for Railway
README.md             # This file
src/                  # Server source code
  ...                 # (Full Tableau MCP Server source)
  server/
    health.ts         # Health check endpoint