ARJ999/tableau-mcp-server
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).
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).
Features
- Optimized for Railway: Includes
railway.json
andnixpacks.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)
- Click the "Deploy to Railway" button at the top of this README.
- You will be redirected to Railway to create a new project from this template.
- In the Railway project, navigate to the "Variables" tab.
- Add the required environment variables as described in the Configuration section below.
- 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:
-
Clone the repository:
git clone https://github.com/ARJ999/tableau-mcp-server.git cd tableau-mcp-server
-
Log in to Railway:
railway login
-
Create and link a new Railway project:
railway init
-
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
-
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
Variable | Description | Example |
---|---|---|
SERVER | The full URL of your Tableau Server or Tableau Cloud instance. | https://prod-apnortheast-a.online.tableau.com |
SITE_NAME | The name of the site to connect to. For the default site, use an empty string ("" ). | my-company-site |
PAT_NAME | The name of the Personal Access Token (PAT) you created in Tableau. | mcp-server-token |
PAT_VALUE | The secret value of the Personal Access Token. Treat this like a password. | aBcDeFgHiJkLmNoPqRsTuVwXyZ1234567890== |
Creating a Tableau Personal Access Token (PAT)
- Log in to your Tableau Cloud or Server account.
- Navigate to My Account Settings.
- Under the Personal Access Tokens section, create a new token.
- 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.
-
Get your Server URL: Find your public URL from the Railway project settings (e.g.,
https://tableau-mcp-server-production-1234.up.railway.app
). -
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. -
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:
-
Install dependencies:
npm install
-
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
-
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