🌐

Tableau MCP Server

Updated June 2026✓ OfficialTrust grade A98/100

Tableau MCP server for Tableau Cloud, Tableau Server and Tableau Desktop, published first-party by Tableau under Apache-2.0 and carrying the vendor's own "Tableau Supported" badge — one of the few analytics MCP servers that is not a community reimplementation. Built by Tableau, it is officially maintained and best for API & Web.

by Tableau

About

Tableau MCP server for Tableau Cloud, Tableau Server and Tableau Desktop, published first-party by Tableau under Apache-2.0 and carrying the vendor's own "Tableau Supported" badge — one of the few analytics MCP servers that is not a community reimplementation. It ships three ways and the choice matters more than the install: a hosted server at mcp.tableau.com that uses OAuth 2.1 so every user signs in with their own Tableau Cloud identity and existing per-user permissions are enforced automatically; a self-hosted npm package, @tableau/mcp-server, run over stdio or HTTP for Tableau Server and for Cloud customers who need their own infrastructure; and a Docker/Heroku deployment for shared use. The web server exposes 43 tools across sixteen groups: datasource discovery and VizQL querying (list-datasources, get-datasource-metadata, query-datasource), workbook and view retrieval including rendered images (get-view-image, get-custom-view-image), Tableau Pulse metric definitions and generated insight briefs, Prep flow runs, extract-refresh tasks and jobs, user administration, Admin Insights queries, and MCP-Apps tools that render an interactive viz inside the client. A separate desktop build adds six authoring tools that read and apply workbook XML against a running Tableau Desktop instance. Self-hosted authentication is a Personal Access Token by default (PAT_NAME plus PAT_VALUE), with Connected App direct-trust JWT, user-attribute tokens and full OAuth 2.1 also supported. Requires Node.js 22.7.5 or later. Actively maintained — v4.6.0, last pushed August 2026.

A
Reliable98/100
low confidence · 1 measured signal

Grade A (98/100, reliable) from 1 measured signal, based on repository evidence. Only one signal stands behind it, so treat the grade as provisional.

What was measured

  • Repository maintenance100/100 · weight 20

    The repository has been pushed to or released within the last six months. — last push 2026-07-25, last release 2026-07-24 (v3.6.0).

  • Source verification100/100 · weight 25

    The repository URL was confirmed to resolve against the live GitHub API and is not archived.

  • Provenance90/100 · weight 10

    Published and maintained by the vendor of the service it connects to, rather than by a third party.

  • Listing ↔ repository match100/100 · weight 5

    The listing name lines up with the linked repository tableau/tableau-mcp.

What could not be measured

These contributed nothing to the score — not a penalty, not a zero. They are why the confidence reads the way it does.

  • Live MCP handshakeunknown

    No remote endpoint to handshake — this server installs and runs locally over stdio, so there is nothing to probe from the outside.

  • Measured uptimeunknown

    No probe history recorded for this server yet.

  • Tool-schema stabilityunknown

    Drift is a difference between two successive checks, and this server has none recorded.

Installation

npm / npx⚠️ Not on the registry
npx -y @tableau/mcp-server@latest

This command will fail: tableau-mcp was not published to the npm registry when we checked on August 17, 2026. Install from the repository below instead.

There is only one Tableau MCP server worth considering and Tableau publishes it themselves, so the decision here is not which project to trust — it is which of the three ways to run it you want. The hosted server at mcp.tableau.com is the right default for Tableau Cloud: it speaks OAuth 2.1, each user signs in as themselves, and the permissions already configured on your site are what the agent gets, with nothing to deploy. The self-hosted npm package is for Tableau Server, and for Cloud customers whose security review will not allow a vendor-hosted endpoint; you supply a Personal Access Token and the server runs beside the client, which means it runs with that token’s permissions for everyone who talks to it. The third path, the Tableau Desktop authoring build, is the one people find by accident and lose an afternoon to — it exists in the repository, it is not in the published npm package, and its README is a single heading with no body. Read the gotchas below before you pick.

Connecting the Tableau MCP server

  1. 1.Decide hosted or self-hosted before anything else

    On Tableau Cloud, point your client at the hosted server and stop — there is no install, no token to mint and no Node version to satisfy. Every MCP-compatible client that supports remote servers and OAuth will prompt you to sign in to Tableau on first use, and per-user permissions are enforced automatically. Only continue to step 2 if you are on Tableau Server, or if you need the server on your own infrastructure.

    hosted endpoint
    https://mcp.tableau.com
  2. 2.Check your Node version first

    The package declares engines.node >= 22.7.5. That is a newer floor than most MCP servers and it is the most common reason a first npx run fails with a syntax error rather than a clean message. Confirm before you write any config.

    shell
    node --version   # must be >= 22.7.5
  3. 3.Create a Personal Access Token on your Tableau site

    Self-hosted defaults to PAT auth. In Tableau, open your account settings, create a Personal Access Token, and keep both halves: the token name goes in PAT_NAME and the secret in PAT_VALUE. The server refuses to start without both — config.ts asserts each one individually. SITE_NAME is the site’s URL name, not its display name; on Tableau Cloud it is the segment that appears after /site/ in the browser address bar, and on a Server default site it is the empty string.

  4. 4.Add the server to your MCP client

    This is the configuration from the project README, unmodified. It works as-is in Claude Desktop, Claude Code, Cursor, VS Code and any other client that accepts the standard mcpServers block — the only difference between them is which JSON file it goes in.

    claude_desktop_config.json
    {
      "mcpServers": {
        "tableau": {
          "command": "npx",
          "args": ["-y", "@tableau/mcp-server@latest"],
          "env": {
            "SERVER": "https://my-tableau-server.com",
            "SITE_NAME": "my_site",
            "PAT_NAME": "my_pat",
            "PAT_VALUE": "pat_value"
          }
        }
      }
    }
  5. 5.Turn on the tool groups that ship disabled

    Admin Insights, Prep flow and generated-insight tools are gated behind three separate flags that default to off, and each is compared literally against the string "true". If query-admin-insights, the four flow tools or generate-insight-cards are missing from your client’s tool list, this is why — it is not a permissions problem on the Tableau side.

    env additions
    "ADMIN_TOOLS_ENABLED": "true",
    "FLOW_TOOLS_ENABLED": "true",
    "INSIGHTS_TOOLS_ENABLED": "true"
  6. 6.Smoke test with a content query, not a data query

    Ask the client to list your workbooks before you ask it anything about numbers. list-workbooks exercises the auth handshake and the site name without depending on a datasource being queryable, so a failure points at exactly one thing. Once that returns, move on to query-datasource.

    prompt
    Find me the most viewed workbook within the last year.

43 web tools in 16 groups, plus 6 desktop authoring tools

Grouped as the project groups them — the group names are also the values INCLUDE_TOOLS and EXCLUDE_TOOLS accept, so you can scope the server to "datasource,view" rather than listing tools one by one. Three groups are disabled by default; see the setup step above.

datasource

list-datasources, get-datasource-metadata, query-datasource — discovery plus the VizQL query that actually returns rows.

workbook

list-workbooks, get-workbook, download-workbook.

view

list-views, list-custom-views, get-view, get-view-data, get-view-image, get-custom-view-data, get-custom-view-image — the image tools return a rendered viz, which is how a chart appears inline in a chat client.

pulse

Seven tools over Tableau Pulse: metric definitions by id, metrics by definition, subscriptions, plus generate-pulse-metric-value-insight-bundle and generate-pulse-insight-brief.

project

list-projects.

flow

list-flows, get-flow, list-flow-runs, list-flow-tasks — Tableau Prep. Gated behind FLOW_TOOLS_ENABLED.

tasks

list-extract-refresh-tasks, update-cloud-extract-refresh-task and its confirm- pair — the update is a two-step human-in-the-loop confirmation, not a single call.

jobs

list-jobs.

users

list-users, update-user.

authoring

request-workbook-upload, publish-workbook.

content

delete-content and confirm-delete-content — also a confirm-gated pair, deliberately.

content-exploration

search-content — one search across workbooks, views, datasources and projects.

insights

generate-insight-cards. Gated behind INSIGHTS_TOOLS_ENABLED.

admin-insights

query-admin-insights. Gated behind ADMIN_TOOLS_ENABLED.

token-management

revoke-access-token, reset-consent.

mcp-apps

get-embed-token, record-event, render-interactive-viz — the MCP-Apps surface that draws a live, interactive Tableau viz inside a supporting client rather than returning a static image.

desktop (separate build)

list-instances, check-for-user-changes, get-workbook-xml, apply-workbook, list-worksheets, list-dashboards — authoring against a running Tableau Desktop. Not in the npm package; see the gotchas.

What people use it for

Answer a data question without opening Tableau

For the Superstore Datasource, what are the top 5 states with the most sales in 2025?

This is the README’s own example and it is the single call worth testing first, because it exercises query-datasource — the tool that turns a natural-language question into VizQL against a published datasource and returns actual rows rather than metadata.

Audit which content is actually used

List every workbook in the Marketing project, then show me the ones with fewer than 10 views in the last year.

list-workbooks plus list-views is the cheapest read-only pass at the question every Tableau admin eventually has to answer. It needs no extra flags and no write permissions.

Put a chart into the conversation

Show me the "Economy" view in the "Finances" project.

get-view-image returns a rendered image, so the answer is the chart itself rather than a description of it. In a client that supports MCP-Apps, render-interactive-viz goes further and embeds a live viz.

Catch a stale extract before someone else does

List the extract refresh tasks on this site and tell me which ones last completed more than a week ago.

list-extract-refresh-tasks and list-jobs together cover the failure that quietly makes every dashboard wrong. Changing a schedule is possible too, but update-cloud-extract-refresh-task requires an explicit confirm call, so an agent cannot reschedule anything by accident.

Which one should you use?

Tableau is one of the few analytics vendors that ships its own server, so the comparison worth making is against the other BI servers you might be connecting the same agent to.

Hosted mcp.tableau.com vs self-hosted @tableau/mcp-server

Hosted unless you are on Tableau Server or a security review forbids it. Hosted gets you OAuth 2.1, per-user permissions and no deployment; self-hosted gets you network control at the cost of a shared PAT identity.

BigQuery MCP Server

BigQuery if the question is about raw warehouse tables. Tableau if the question is about published datasources, governed metrics and existing dashboards — the value here is that the semantics are already modelled.

Mixpanel MCP Server

Mixpanel for product-analytics event funnels, and note it is a community server with no vendor support. Tableau for governed BI. They rarely overlap.

Looker

Looker if your semantic layer is LookML. Both are governed-BI servers; the answer is whichever platform your metrics are actually defined in.

Frequently Asked Questions

Why does pip install tableau-mcp fail?
Because it does not exist. Tableau MCP is a TypeScript project distributed on npm as @tableau/mcp-server; there has never been a PyPI package named tableau-mcp and the name 404s on pypi.org. Use npx -y @tableau/mcp-server@latest. This catalog carried the pip command itself until 2026-08-23, which is a fair illustration of how far the wrong instruction travels.
Why are the Tableau Desktop authoring tools missing?
Because they are not in the published package. The npm tarball for 4.6.0 contains exactly one entry point, build/index.js, and package.json maps its only bin — tableau-mcp-server — to that file. The desktop server is a separate build target (npm run build:desktop against src/index.desktop.ts) and ships neither compiled nor as a second bin, so no amount of npx flags will surface list-worksheets or apply-workbook. You have to clone and build. README.desktop.md, which is where you would look for this, is a single heading with no body in both the repo and the tarball.
Why do I still see all the tools after setting INCLUDE_TOOLS?
A typo. INCLUDE_TOOLS is split on commas and each entry is resolved as either a tool name or a group name; anything matching neither is dropped silently rather than raising. The filter then only applies when the resulting list is non-empty, so a value that is entirely misspelled collapses to an empty list and the server exposes every tool — the opposite of what you asked for, with no warning. Verify against the tool list above, and note that setting INCLUDE_TOOLS and EXCLUDE_TOOLS together does throw, so the silence is specific to the typo case.
Why is the server ignoring my AUTH setting?
An unrecognised AUTH value is not an error. config.ts falls back to oauth when an OAuth issuer is configured and to pat otherwise, so a misspelled auth type quietly becomes PAT auth and then fails later with "the environment variable PAT_NAME is not set" — a message about the wrong variable entirely. The four accepted values are pat, uat, direct-trust and oauth.
Why does the server refuse to start when OAUTH_ISSUER is set?
OAuth requires the HTTP transport. Setting OAUTH_ISSUER while TRANSPORT is stdio throws "TRANSPORT must be 'http' when OAUTH_ISSUER is set" at startup. The reverse constraint applies to the desktop build, which throws unless TRANSPORT is stdio. If you want OAuth without running an HTTP listener yourself, use the hosted server at mcp.tableau.com instead.
Does a self-hosted Tableau MCP server respect each user’s permissions?
Not by default. A PAT is one identity, so every client sharing that server sees whatever that token can see. Per-user enforcement is what the hosted OAuth 2.1 server buys you, and self-hosted deployments can approximate it with Connected App direct-trust (JWT_SUB_CLAIM plus the three CONNECTED_APP_* variables) or user-attribute tokens. Worth settling before a shared HTTP deployment, not after.
Is Tableau MCP officially supported?
Yes, and unusually explicitly. The repository is tableau/tableau-mcp under Apache-2.0 and carries Tableau’s own "Tableau Supported" support-level badge, which is a documented commitment rather than a community label. It is on 4.6.0 with commits in August 2026.
What is Tableau MCP Server?
Tableau is an MCP server built by Tableau. Tableau MCP server for Tableau Cloud, Tableau Server and Tableau Desktop, published first-party by Tableau under Apache-2.0 and carrying the vendor's own "Tableau Supported" badge — one of the few analytics MCP servers that is not a community reimplementation. It ships three ways and the choice matters more than the install: a hosted server at mcp.tableau.com that uses OAuth 2.1 so every user signs in with their own Tableau Cloud identity and existing per-user permissions are enforced automatically; a self-hosted npm package, @tableau/mcp-server, run over stdio or HTTP for Tableau Server and for Cloud customers who need their own infrastructure; and a Docker/Heroku deployment for shared use. The web server exposes 43 tools across sixteen groups: datasource discovery and VizQL querying (list-datasources, get-datasource-metadata, query-datasource), workbook and view retrieval including rendered images (get-view-image, get-custom-view-image), Tableau Pulse metric definitions and generated insight briefs, Prep flow runs, extract-refresh tasks and jobs, user administration, Admin Insights queries, and MCP-Apps tools that render an interactive viz inside the client. A separate desktop build adds six authoring tools that read and apply workbook XML against a running Tableau Desktop instance. Self-hosted authentication is a Personal Access Token by default (PAT_NAME plus PAT_VALUE), with Connected App direct-trust JWT, user-attribute tokens and full OAuth 2.1 also supported. Requires Node.js 22.7.5 or later. Actively maintained — v4.6.0, last pushed August 2026.
Who built Tableau MCP Server?
Tableau MCP Server was built by Tableau.
Is Tableau MCP Server free?
Yes, Tableau MCP Server has a free option. This MCP server is free and open-source. Check the GitHub repository for details.
How do I install Tableau MCP Server?
The install command commonly listed for Tableau MCP Server (npx -y @tableau/mcp-server@latest) names the PyPI package tableau-mcp, which was not published to the npm registry when we checked on August 17, 2026, so it will fail. Install it from source instead: https://github.com/tableau/tableau-mcp
What does Tableau MCP Server integrate with?
Tableau MCP Server integrates with Claude Desktop, Cursor, VS Code, Windsurf, Cline.

Repo Health

Actively maintained

Local/stdio install — runs on your machine, so there is no remote endpoint to verify live. Trust signal below is from the source repo.

Last commit
1mo ago
Last release
v3.6.0 · 1mo ago
Install
pip
Package
tableau-mcp

Quick Info

Install Type
npm
Author
Tableau
Categories
2
Integrations
5

Related Servers

🌐

Fetch

Web content fetching and conversion for efficient LLM usage. Extract readable content from any URL.

Local
🌍

Apify MCP Server

The Apify MCP server gives AI agents access to 6,000+ ready-made cloud scrapers, crawlers, and automation tools on the Apify Store — no infrastructure required. Connect to Apify Actors that extract data from social media platforms (Instagram, TikTok, LinkedIn), search engines (Google, Bing), e-commerce sites (Amazon, eBay), maps (Google Maps), and virtually any website. Each Actor runs in the cloud with managed proxies, browser fingerprinting, and anti-bot bypass built in. Use the Apify MCP server to query Actors by task, stream results directly into your AI context, run custom scraping Actors from your Apify account, and chain multiple data extraction steps in a single workflow. Supports tool filtering to expose only the Actors you need, and integrates with Apify's RAG web browser Actor for retrieval-augmented generation use cases.

Auth required
🌍

Browserbase MCP Server

Browserbase MCP and Stagehand MCP are the same server under two names, and this catalog lists both because people search for both — this page is the platform view, /servers/stagehand covers the natural-language automation layer that runs inside it. What Browserbase supplies is the browser itself: a headless Chrome session running in Browserbase's cloud rather than on the machine your agent is on, which is the reason to use it at all. The session is a real, addressable browser with its own residential-proxy and stealth configuration and a recorded replay you can watch afterwards, so an agent's browsing survives being run from a datacenter IP, and a failed run is debuggable after the fact instead of being a black box. Nothing renders on the developer's machine, so a long-running agent is not tied to a desktop staying awake. Browserbase's recommendation is the hosted server at https://mcp.browserbase.com/mcp over streamable HTTP — they operate it and absorb the model inference that the instruction-following tools require. Clients without HTTP transport connect via npx mcp-remote https://mcp.browserbase.com/mcp. Self-hosting installs @browserbasehq/mcp-server-browserbase from npm and needs BROWSERBASE_API_KEY and BROWSERBASE_PROJECT_ID from your dashboard. Six tools are exposed — start and end for session lifecycle, navigate, act, observe and extract — and they are documented in detail on the Stagehand entry, because the act/observe/extract trio is Stagehand's model rather than Browserbase's. One thing to know before self-hosting: the browserbase/mcp-server-browserbase repository was archived on 2026-07-20 and its README now says it is kept for historical reference and should not be read as representative of the current production service. The npm package still installs and the star count on this page belongs to that archived repo; the hosted endpoint is the path Browserbase actually maintains.

Local
🌍

Firecrawl MCP Server

The Firecrawl MCP server gives your AI assistant the ability to crawl, scrape, and extract structured data from any website — turning raw HTML into clean, LLM-ready Markdown or JSON in seconds. Built by the Firecrawl team, it exposes tools for single-page scraping, deep site crawls (following internal links), and batch URL extraction, all with JavaScript rendering handled automatically so dynamic content is never missed. Developers use it to automate competitive research, build live knowledge bases, extract pricing tables, monitor documentation changes, or feed structured web data into RAG pipelines — all through natural-language prompts without writing a single scraper script. The Firecrawl MCP server handles rate limiting, retries, and proxy rotation behind the scenes. Authentication requires a Firecrawl API key (free tier available). Install with: npx firecrawl-mcp. Works with Claude Desktop, Cursor, VS Code, and any MCP-compatible client. With Firecrawl, any public webpage becomes a structured data source your AI can reason over, compare, and act on — making it the go-to MCP server for web data extraction workflows.

Live
📋

Notion MCP Server

The Notion MCP Server is the official integration from Notion that connects AI assistants directly to your Notion workspace via the Notion REST API. With 4,580+ GitHub stars, it is the canonical MCP tool for bringing Notion's knowledge management capabilities into Claude Desktop, Cursor, Windsurf, and any MCP-compatible client. The server exposes a rich set of tools: search your entire workspace by keyword and return matching pages and databases; retrieve full page content and block trees; create new pages inside any parent page or workspace section; update, append, or delete block content on existing pages; list all databases your integration has access to; query database entries with filter and sort parameters; retrieve individual blocks or nested children by block ID; and add comments to pages. Authentication uses a Notion integration token — create an internal integration at notion.so/my-integrations, share specific pages or databases with it, and set NOTION_TOKEN in your environment (the older OPENAPI_MCP_HEADERS form still works). Install with a single npx command. The Notion MCP Server is especially powerful for AI workflows that span documentation retrieval, project planning, and knowledge capture — Claude can read product specs from Notion, draft new pages from conversation output, log structured data into databases, and search across thousands of notes without any manual copy-paste.

Auth required📘

Sponsored

Better Stack

Free Plan

Get alerted when your APIs, browser tests, payment pipelines, or MCP server dependencies go down. Used by 100K+ developers.

Start monitoring free →