// Tableau + AI · MCP · Claude · Tableau Cloud

Tableau MCP Server: Connect Claude to Tableau

Tableau's own MCP server connects Claude to your content and data; the TableauOps connector lets Claude publish viz extensions. What each is for, setup in Claude and Claude Code, example prompts, and how to keep it read-only.

OCT 14, 2026

"Tableau MCP" now means more than one thing, and I get asked which one to install at least once a week. This guide sorts it out: what each Tableau MCP server is for, how to connect it to Claude, prompts worth trying, and how to keep it safe.

Short version: Tableau MCP (Tableau's own server) connects Claude to your Tableau content and data. The TableauOps MCP connector (the one I built) lets Claude publish hosted Tableau viz extensions. They do different jobs, and they work well side by side.

What is an MCP server, in Tableau terms?

MCP, the Model Context Protocol, is an open standard for giving an AI assistant tools. An MCP server exposes a list of tools ("list workbooks", "query this data source", "publish this extension"), and an MCP client such as Claude Desktop, claude.ai or Claude Code decides when to call them during a conversation.

For Tableau people, that means you can ask Claude a question in plain English and it calls the Tableau APIs on your behalf, with your permissions. No more copying REST responses into a chat. If any of the vocabulary is new, the Tableau AI glossary covers it.

Which Tableau MCP server do you need?

Tableau MCP (hosted)Tableau MCP (self-hosted)TableauOps MCP connector
Made byTableauTableauTableauOps
What it's forAsk questions of your Tableau Cloud content and dataSame, for Tableau Server, or Cloud on your own infrastructureBuild and publish hosted viz extensions
Where it runshttps://mcp.tableau.comYour machine or your servershttps://ext.tableauops.com/mcp
AuthOAuth, your Tableau Cloud identityPAT, Connected App, OAuth and othersOAuth or a TableauOps deploy token
Sees your Tableau dataYes, as youYes, as the configured identityNo

What is Tableau MCP?

Tableau MCP is Tableau's official, open-source MCP server, with docs at tableau.github.io/tableau-mcp. It's published on npm as @tableau/mcp-server and carries Tableau's "Tableau Supported" support level badge in the repo.

It exposes tools in groups. The ones I use most:

  • Data Q&A: list-datasources, get-datasource-metadata, query-datasource. This is the headline feature: ask a question, and Claude queries a published data source through VizQL Data Service.
  • Content: list-workbooks, get-workbook, list-views, get-view-data, get-view-image, search-content, list-projects.
  • Operations: list-jobs, list-extract-refresh-tasks, list-users.
  • Pulse: listing metric definitions and metrics, and generating insight briefs.

There are also tools that change things: publishing and moving workbooks, updating extract refresh tasks, updating users, running flows, and deleting content. Some are gated behind settings (the delete tool is admin only and needs ADMIN_TOOLS_ENABLED; flow write tools need FLOW_WRITE_TOOLS_ENABLED). The full list lives in the tools section of the docs, and it changes often, so check there rather than trusting any blog post's count, including mine.

How do you connect Claude to Tableau Cloud with the hosted Tableau MCP?

If you're on Tableau Cloud, this is the easy path. Tableau runs Tableau MCP as a managed service at https://mcp.tableau.com, using OAuth so each person signs in as themselves and their existing permissions apply. Per Tableau's hosted MCP docs, it's available to Tableau Cloud customers on any SKU and isn't available for Tableau Server. Some tools need extra entitlements, such as Tableau+ for Pulse insight briefs.

In Claude (claude.ai or Claude Desktop): Tableau's client integration guide says to open Customize, then Connectors, choose Add, then Browse connectors, search for Tableau, pick the Tableau Cloud connector, and click Connect to Claude. Sign in to Tableau Cloud and approve.

In Claude Code:

Shell
claude mcp add --transport http Tableau https://mcp.tableau.com

Start a session, type /mcp, select Tableau and choose Authenticate. claude mcp list confirms it's connected.

How do you run Tableau MCP locally with a PAT?

For Tableau Server, or when you want the server on your own machine, run it with npx. You need Node.js, a personal access token, and four values: SERVER, SITE_NAME, PAT_NAME and PAT_VALUE. This is the config shape from the Tableau MCP README, which works in Claude Desktop's config file and most other MCP clients:

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"
      }
    }
  }
}

SITE_NAME is the site's content URL, not its display name. On Tableau Server you can leave it blank for the default site. On Tableau Cloud, SERVER is your pod URL.

In Claude Code, the same thing as one command:

Shell
claude mcp add tableau \
  -e SERVER=https://my-tableau-server.com \
  -e SITE_NAME=my_site \
  -e PAT_NAME=my_pat \
  -e PAT_VALUE=pat_value \
  -- npx -y @tableau/mcp-server@latest

Claude Desktop also has a packaged Tableau extension (a .mcpb file) that runs Tableau MCP locally. Tableau's docs describe installing it from Settings, Extensions, Browse Extensions, or by dragging the .mcpb from the GitHub releases page onto Claude Desktop. It then asks for the same four values.

What can you ask Claude once Tableau MCP is connected?

The README's own examples are a good starting point:

TEXT
For the Superstore Datasource, what are the top 5 states with the most sales in 2025?
TEXT
Find me the most viewed workbook within the last year.
TEXT
Show me the "Economy" view in the "Finances" project.

And a few I use for admin and ops work:

TEXT
List the extract refresh tasks on this site and group them by schedule.
Flag any that refresh more often than the data source's workbooks are viewed.
TEXT
Which published data sources have no workbooks in the Sales project using them?
Give me names, owners and last updated dates. Don't change anything.
TEXT
Get the metadata for the "Orders" data source, then explain each calculated
field in one plain-English sentence.

That last one pairs well with writing Tableau calculated fields with AI. For anything beyond what the tools expose, Tableau REST API automation with Claude picks up where MCP stops.

How do you keep Tableau MCP read-only and safe?

This is the part I'd slow down on. Claude acts with whatever identity you hand it, so the safety model is mostly about that identity.

  1. The PAT is a person. A PAT carries the full permissions of the user who created it. Make a dedicated user with the lowest site role that does the job, and give it access only to the projects it needs. Don't use your admin account.

  2. Allow only the tools you want. INCLUDE_TOOLS takes a comma-separated list of tool or group names, and only those load. For a read-only setup I list tools by name rather than by group, because some groups mix reads and writes (the workbook group includes move-workbook, for example):

    TEXT
    INCLUDE_TOOLS=datasource,list-workbooks,get-workbook,view,list-projects,search-content,list-jobs

    EXCLUDE_TOOLS works the other way round. You can't use both. Both are documented under environment variables.

  3. Scope it to content. Tool scoping variables like INCLUDE_PROJECT_IDS limit which data sources and workbooks the tools can touch.

  4. Treat the PAT like a password. Keep it out of shared config files and repos. Tableau's docs warn that PATs expire after a period of inactivity (15 days by default per their setup guide), so expect to rotate it.

  5. On the hosted server, admins have a lever. Tableau Cloud site admins can't switch off the hosted service, but they can block tool groups for their site with an EXCLUDE_TOOLS site setting through the REST API, as described in the hosted docs.

What is the TableauOps MCP connector?

The TableauOps MCP connector is a remote MCP server I built for one job: letting Claude ship a Tableau viz extension without a local build or a browser round trip. Claude writes a viz component, TableauOps compiles and hosts it, and hands back a real .trex to load in Tableau.

The tools it gives Claude:

ToolWhat it does
publish_extensionCompile a component and host it as a viz extension
update_extensionReplace the source of one you already published
validate_extensionDry run: check a component compiles and see its Marks card tiles
list_extensions / get_extensionSee what's on your account and read one back
set_publicGive an extension a public URL with no per-viewer token
tableau_public_embedGet a Web Page object URL for a Tableau Public dashboard
search_knowledge / read_knowledgeSearch and read the TableauOps knowledge base
permissions_explain / permissions_plan_fixRead-only answers to "why can't this user see X" against a connected TableauOps site

It also exposes an authoring guide that Claude reads first, so the component it writes matches the component contract. The parameter-level detail is in the MCP tools reference.

How do you connect the TableauOps MCP connector to Claude?

claude.ai or Claude Desktop: open Settings, Connectors, Add custom connector. Name it TableauOps and paste https://ext.tableauops.com/mcp. Leave authentication on "Always required" and the OAuth client on "register one automatically". No headers. Click Add, then Connect, sign in to TableauOps and Approve. Then switch the connector on in a chat.

Claude Code (OAuth in the browser):

Shell
claude mcp add --transport http tableauops https://ext.tableauops.com/mcp

CI or headless, with your account deploy token from account settings:

Shell
claude mcp add --transport http tableauops \
  https://ext.tableauops.com/mcp \
  --header "Authorization: Bearer exh_..."

The same endpoint works in Cursor and any MCP client that speaks Streamable HTTP. More detail in the MCP connector guide.

A prompt to try:

TEXT
Publish a KPI card to TableauOps: the latest Revenue as a big number, a
sparkline of the daily trend underneath, and deltas versus prior period and
goal, green up and red down.

Then iterate: "make the goal line dashed" calls update_extension on the same extension.

What doesn't the TableauOps connector do?

  • It doesn't see your Tableau data. It authorizes against your TableauOps account and publishes and manages extensions. Your data reaches the extension inside Tableau, from the Marks card, not through the connector.
  • It doesn't safe-list itself. On Tableau Cloud or Server, an admin adds https://ext.tableauops.com to the extensions safe list once. Tableau Desktop just asks you to allow it.
  • Tableau Public doesn't run network extensions. There, the connector gives you a Web Page object embed that renders from a frozen sample.

Can you use Tableau MCP and the TableauOps connector together?

Yes, and it's a nice pairing. Tableau MCP answers "what does my data look like?" and the TableauOps connector answers "now draw it." Something like:

TEXT
Use Tableau MCP to get the metadata for the Superstore data source and tell me
which fields would suit a dumbbell chart comparing two measures by Region.
Then publish that dumbbell chart to TableauOps with tiles for Region, Start
and End.

Your next step

Connect Tableau MCP first and ask it one real question about your own data. Then add the TableauOps connector and have Claude publish a chart from the answer. If you'd rather see the build without connecting anything, Studio runs in the browser with no account, and the full walkthrough is in build a Tableau extension with Claude.

Frequently asked questions

What is the Tableau MCP server?
Tableau MCP is Tableau's official, open-source Model Context Protocol server. It gives AI assistants like Claude tools to query published data sources, explore workbooks and views, check jobs and work with Pulse, using your Tableau permissions. It runs hosted at mcp.tableau.com for Tableau Cloud or self-hosted with npx.
Does Tableau MCP work with Tableau Server?
Yes, self-hosted. The hosted service at mcp.tableau.com is Tableau Cloud only. Tableau Server customers run the open-source server themselves, for example with npx and a personal access token.
How do I make Tableau MCP read-only?
Connect it as a dedicated low-privilege user and use INCLUDE_TOOLS to load only read tools such as the datasource group, list-workbooks, get-workbook and the view group. Tool scoping variables like INCLUDE_PROJECT_IDS limit it further.
Can the TableauOps MCP connector see my Tableau data?
No. It authorizes against your TableauOps account and can only publish and manage extensions. The extension reads data inside Tableau from the fields you drop on the Marks card.