TableauOps · MCP connector

Build Tableau extensions from your own AI.

Connect TableauOps to Claude (or any MCP client) and it gains a set of tools: your AI writes a viz component, TableauOps compiles and hosts it, and hands back a real .trex to load into Tableau. No local build, no browser round trip. You describe the chart in the AI you already use.

Connect it in Claude Desktop or claude.ai
  1. Open Settings, Connectors, and click Add custom connector.
  2. Name it TableauOps and paste the URL https://ext.tableauops.com/mcp.
  3. Authentication: leave it on Always required. Claude detects it automatically.
  4. OAuth client: leave it on No client ID, register one automatically, also detected. You do not need Anthropic's hosted client metadata, and you do not need to add any request headers.
  5. Click Add, then Connect. TableauOps opens: sign in with your password, or click Email me a code if your account has no password, then Approve.
  6. Back in Claude, switch the TableauOps connector on in a chat. That is the whole setup.

Nothing else to switch on. There is no API key to create and no server setting to flip: the connector authorizes against your TableauOps account and can only publish and manage extensions.

Connect it in Claude Code or another CLI

OAuth in the browser, the same sign-in as above:

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

Prefer a token (CI, headless, no browser)? Skip OAuth with your account deploy token, found in your account settings:

claude mcp add --transport http tableauops \
  https://ext.tableauops.com/mcp \
  --header "Authorization: Bearer exh_..."
What your AI can do
publish_extension
Compile a component and host it as a real Tableau viz extension.
update_extension
Replace the source of one you already published.
list_extensions
See everything on your account, with its hosted page.
get_extension
Read one back, source and all, before you change it.
validate_extension
Dry run: check a component compiles and see its tiles, before publishing.
set_public
Flip an extension to a public URL that needs no per-viewer token.
tableau_public_embed
Get a Web Page object URL that runs the viz on a Tableau Public dashboard.
permissions_explain
Ask why a user can or can’t see or do something on your Tableau content. Read-only.
permissions_plan_fix
Get the minimal change that would grant a missing capability. Guidance only; apply it in the dashboard.

Plus an authoring guide the AI reads first, so the component it writes always fits the contract the host can compile into the right Marks card tiles.

Try it
“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.”
What it does not do
Safe-listing stays your call. On Tableau Server or Cloud you add https://ext.tableauops.com to the extensions safe list once; the connector hands you the URL, it cannot click it for you. Tableau Desktop just prompts to allow it. Tableau Public never runs network extensions, so there the connector gives you a Web Page object embed instead: the viz renders from a frozen sample, since a Web Page object gets no data from Tableau. It sees your account, not your data: the connector can publish and manage extensions, and nothing else.

Authentication is your TableauOps account. The deploy-token option is the same exh_ token the exthost CLI uses: find it in your account settings. New here? Build one in the Studio first (no account), let the AI builder write one, or get the kit.