Skip to main content
Tableau The Tableau connector exposes the full Tableau platform — REST API 3.x, Metadata GraphQL, VizQL Data Service and Pulse — to your Prisme.ai workspaces. It can be consumed two ways: as a remote MCP server that Agent Factory agents call as tools, or as a Builder app whose instructions (Tableau.<operation>) you call directly from DSUL. Authentication is a Tableau Personal Access Token (PAT) you paste into the app configuration; the connector exchanges it server-side for a short-lived X-Tableau-Auth session token, so credentials are never exposed to the agent.

Content & Permissions

Browse, publish, download and govern projects, workbooks, views, datasources and Prep flows. Manage tags, permissions and revisions site-wide.

Pulse & Subscriptions

Manage Tableau Pulse metrics and definitions, retrieve BAN insights, and orchestrate email and Pulse subscriptions for end-users.

Metadata & VizQL Queries

Run arbitrary Metadata API GraphQL queries, search assets, walk workbook/datasource lineage and query published datasources via VizQL Data Service.

Who is this for?

This connector is used by three different roles. Jump to the section that matches yours — each one is self-contained.

Agent builder

You build agents in Agent Factory and want them to use Tableau. → Agent builder tab.

Platform admin

You run the platform and want to know what one-time setup Tableau needs. → Platform admin setup accordion below.

Workspace builder

You write Builder automations (DSUL) that call Tableau.<operation> directly. → Workspace builder tab.

Prerequisites

  • A Tableau Cloud site or a Tableau Server installation reachable from Prisme.ai.
  • A Personal Access Token (PAT) created on the target site under My Account Settings → Personal Access Tokens. You need its name and its secret (the secret is shown only once, at creation).
  • The PAT belongs to a Tableau user — that user must exist on the site and own the rights you want to expose (the connector acts as that user).
  • The site contentUrl if you are not on the Default site (the segment after /site/ in the browser URL).
  • Optionally, the REST API version to target (defaults to 3.21; pin only if your Tableau Server release requires it).
No platform-level credential is required. Tableau uses the per-workspace credential model: each workspace pastes its own Personal Access Token in the app configuration, and the connector resolves it server-side. There is no shared platform key, no central OAuth client, and no per-user OAuth flow to register.

Declare the capability in AI Governance (optional)

To let agent builders pick Tableau from the capability catalog instead of pasting an MCP endpoint URL by hand, declare it once as a named capability.
1

Open AI Governance > Capabilities

Create (or edit) a Tableau capability.
2

Point it at the MCP endpoint

Set the capability’s MCP server URL to a Tableau app instance’s MCP Endpoint, and set its Scope to:
context_id,agent_id,user_id
The agent_id in the scope lets the connector identify the calling agent.
3

Make it available to agent builders

Once created, the capability appears in the capability picker for agent builders in your organization. Access to the catalog follows your organization’s existing roles; there is no per-capability role grant for this connector.
Declaring the capability makes the connector discoverable; the Tableau credentials still live in the workspace that owns the app instance the capability points at. Each workspace that installs Tableau supplies its own PAT — there is no OAuth auth-config JSON to attach in Governance.

Agent builder

Goal: let an agent you build in Agent Factory query and act on Tableau through MCP tools.
Before an agent can call the connector, a Workspace builder must have installed and configured the Tableau app in a workspace (see the Workspace builder tab) so a PAT and an MCP Endpoint exist. The Platform admin setup accordion above is optional (it only publishes a reusable capability).
The Tableau credential is resolved server-side from the app configuration — never exposed to the agent. Your agent is identified by the agent_id that Agent Factory injects through the capability Scope.
1

Install and configure Tableau in a workspace

Follow the Workspace builder tab: install Tableau in a workspace and paste your Personal Access Token (patName, patSecret) plus serverUrl (and siteContentUrl if not the Default site). On install, an MCP Endpoint is generated automatically.
2

Add the MCP capability to your agent

In your agent in Agent Factory, add a capability pointing at that workspace’s MCP Endpoint URL, and set its Scope to:
context_id,agent_id,user_id
If a Platform admin has published a Tableau capability in the catalog (see the accordion above), pick it instead — the endpoint and Scope are already wired.
3

Use it

Ask the agent a Tableau question. It calls the relevant tool (workbooks, views, vizqlData, …) and grounds its answer on the result.

Brief the agent in its system prompt

Wiring the capability is not enough — the agent must know the tools exist and when to use them. Copy-pasteable starter:
You have access to the Tableau MCP server. Use it whenever the user asks about Tableau content — workbooks, views, datasources, projects, Prep flows, schedules, jobs, subscriptions, Pulse metrics or insights — or wants to query a published datasource via VizQL Data Service or run a Metadata API GraphQL query. Examples: "List the workbooks in the Marketing project", "Refresh the Sales datasource now", "Show the BAN insight for the Revenue metric", "What datasources feed the Quarterly Review workbook?". Prefer the vizqlData tool for analytical questions (aggregations, top N, filters). Prefer calling the tools directly over guessing, and confirm with the user before any destructive action (delete a workbook, cancel a job, remove a permission).
Refine the trigger keywords (site names, project names, business domains, typical user phrasings) so the agent reliably picks up the right intent in your context.
Legacy AI Knowledge agents (no native MCP picker): add the connector under Advanced > Tools > MCP and paste the MCP Endpoint URL of the Tableau app instance.

Available Tools

The Tableau MCP follows a dispatcher pattern: each tool exposes multiple operations selected by an action argument. The argument list per action is documented in the tool’s own description.

Sites & Users

ToolDescription
sitesManage Tableau sites (Server-only ops; on Tableau Cloud most actions return 403). Actions: list, create, get, update, delete, getRecentlyViewed.
usersManage users on a site. Actions: list, get, addToSite, update, removeFromSite, getGroups.
groupsManage user groups. Actions: list, create, update, delete, addUser, removeUser, getUsers.

Content (Projects, Workbooks, Views)

ToolDescription
projectsManage Tableau content projects (folders). Actions: list, create, update, delete.
workbooksManage workbooks: CRUD, downloads (twb/twbx, PDF, PowerPoint, preview), revisions, connections, permissions, tags. Binary downloads are not inline — call get and share webpageUrl.
viewsManage views: image/PDF/CSV/Excel exports, lookup by id or path, server-side data filters, permissions and tags.

Datasources & Flows

ToolDescription
datasourcesManage published datasources: CRUD, downloads, revisions, connections, permissions, tags, immediate extract refresh (updateNow).
flowsManage Tableau Prep flows: CRUD, run, run history, downloads, connections, permissions.

Scheduling, Jobs & Refresh Tasks

ToolDescription
schedulesServer schedules + add workbook/datasource/flow tasks to them.
jobsInspect background jobs: list, get status, cancel.
extractRefreshTasksManage extract refresh tasks (one-shot or scheduled): list, get, run, delete.

Subscriptions, Webhooks & Favorites

ToolDescription
subscriptionsEmail subscriptions to views/workbooks. Actions: list, get, create, update, delete.
webhooksTableau webhooks (event notifications). Actions: list, get, create, update, delete, test.
favoritesPer-user favorites. Actions: list, add, delete.

Tableau Pulse

ToolDescription
metricsPulse metrics (instances). Actions: list, get, create, delete.
metricDefinitionsPulse metric definitions (templates). Actions: list, get, create, update, delete.
pulseSubscriptionsPulse subscriptions to metrics. Actions: list, create, delete.
insightsGet a Pulse Basic Analytics Narrative (BAN) insight for a metric. Action: get.

Metadata & VizQL Data Service

ToolDescription
metadataTableau Metadata API (GraphQL). Actions: query, search, workbookLineage, datasourceLineage.
vizqlDataQuery a published datasource via VizQL Data Service — the preferred tool for analytical questions. Actions: readMetadata, queryDatasource.

Output Formats

Every tool accepts an outputFormat argument that controls the MCP response shape:
  • verbose (default) — human-readable text for LLM consumption.
  • structured — machine-readable JSON in structuredContent.
  • both — both text and structured content.
Binary outputs (workbook/view image, PDF, PowerPoint, crosstab Excel, file downloads) cannot be returned inline. The connector instead returns metadata — call get and share the webpageUrl, or use views/getData and vizqlData for the underlying data.

Tool Details

workbooks

{
  "name": "workbooks",
  "arguments": {
    "action": "list",
    "filter": "projectName:eq:Marketing",
    "pageSize": 50
  }
}
ParameterRequiredDescription
actionYesOne of list, get, queryViews, getConnections, getRevisions, queryPermissions, publish, update, updateNow, updateConnection, delete, addPermissions, deletePermission, addTags, deleteTag, plus the binary download* actions.
workbookIdConditionalRequired for any per-workbook action.
request_payloadConditionalRequired for publish. The workbook XML metadata.
permissionsConditionalRequired for addPermissions. Tableau capabilities granted to grantees.
tagsConditionalRequired for addTags. Tag set object.

views

{
  "name": "views",
  "arguments": {
    "action": "getData",
    "viewId": "{{viewId}}",
    "viewFilters": { "Region": "EMEA" }
  }
}
ParameterRequiredDescription
actionYesOne of list, get, getByPath, getData, getSummaryData, queryPermissions, addPermissions, deletePermission, addTags, deleteTag, plus the binary getImage / getPdf / getCrosstabExcel.
viewIdConditionalRequired for any action targeting a view by id.
viewUrlConditionalRequired for getByPath (Workbook/sheets/Sheet).
viewFiltersNoServer-side filters for getData / getSummaryData: {"Field": "value"} sent as vf_<field>=<value>.

datasources

{
  "name": "datasources",
  "arguments": {
    "action": "updateNow",
    "datasourceId": "{{datasourceId}}"
  }
}
ParameterRequiredDescription
actionYesOne of list, get, getConnections, getRevisions, queryPermissions, publish, update, updateNow (triggers an extract refresh), updateConnection, delete, addPermissions, deletePermission, addTags, deleteTag, plus binary download*.
datasourceIdConditionalRequired for any per-datasource action.
connectionIdConditionalRequired for updateConnection.
datasourceConditionalRequired for update. Datasource settings object.

metadata

{
  "name": "metadata",
  "arguments": {
    "action": "search",
    "name": "Sales"
  }
}
ParameterRequiredDescription
actionYesOne of query, search, workbookLineage, datasourceLineage.
queryConditionalGraphQL document. Required for query.
variablesNoVariables map for the GraphQL query.
nameConditionalExact-name match used by search (the Metadata API has no fuzzy search).
workbookLuidConditionalRequired for workbookLineage.
datasourceLuidConditionalRequired for datasourceLineage.

vizqlData

{
  "name": "vizqlData",
  "arguments": {
    "action": "queryDatasource",
    "datasource": { "datasourceLuid": "{{datasourceLuid}}" },
    "query": {
      "fields": [
        { "fieldCaption": "Region" },
        { "fieldCaption": "Sales", "function": "SUM" }
      ]
    }
  }
}
ParameterRequiredDescription
actionYesreadMetadata or queryDatasource. Always readMetadata first to discover exact field captions.
datasourceYesObject with datasourceLuid (from workbooks/getConnections or datasources/list).
queryConditionalRequired for queryDatasource. Must contain a fields array; supports filters (SET, QUANTITATIVE_*, MATCH, TOP) and aggregation function (SUM, AVG, COUNTD, …).
optionsNoreturnFormat (OBJECTS / ARRAYS), debug.

pulseSubscriptions

{
  "name": "pulseSubscriptions",
  "arguments": {
    "action": "create",
    "subscription": {
      "metric_id": "{{metricId}}",
      "user_id": "{{userId}}"
    }
  }
}
ParameterRequiredDescription
actionYeslist, create or delete.
subscriptionConditionalRequired for create. Must include metric_id and user_id.
subscriptionIdConditionalRequired for delete.
metric_id / user_idNoFilters for list.

Error Handling

HTTP codeMeaningTypical cause
400Bad RequestMissing or malformed action, invalid filter, missing required parameter for the chosen action.
401UnauthorizedThe PAT was rejected or the session token expired/was revoked. Check patName / patSecret; a concurrent sign-in with the same PAT revokes the session.
403ForbiddenThe PAT’s user lacks the right, or the action is Tableau Server-only and you are on Tableau Cloud (e.g. site CRUD).
404Not FoundThe targeted resource does not exist on this site, or siteContentUrl is wrong.
409ConflictTrying to publish over an existing asset without overwrite: true, or a name collision.
429Too Many RequestsTableau API rate limit hit. Retry with exponential backoff.
500Internal Server ErrorTransient Tableau Server error. Retry; if it persists, check the Tableau status page.

Common Issues

“Tableau auth not configured” — The app instance has no PAT. Create a Personal Access Token on your Tableau site (My Account Settings → Personal Access Tokens) and paste patName, patSecret and serverUrl in the app configuration. “Tableau signin failed (401)” — The provided PAT was rejected by Tableau, or the cached session was revoked. A Tableau PAT allows only one active session, so a parallel sign-in (a script, another tool) invalidates it. Re-copy the secret, or retry — the connector forces a fresh sign-in on a 401. “Site not found” / wrong site — Check siteContentUrl. On Tableau Cloud it is the segment after /site/ in the browser URL; on Tableau Server’s Default site, leave it empty. Tableau Server-only operation on Tableau Cloud — Several site- and schedule-management actions (sites.create, sites.update, schedules.create, …) are only available on Tableau Server and return 403 on Tableau Cloud. Check the Tableau REST API reference for the current allow-list. VizQL queryDatasource returns 403 "API access permission" — A Tableau administrator must grant API Access on the published datasource before the VizQL Data Service can query it.

External Resources

Tableau REST API Reference

Official documentation for the Tableau REST API 3.x, Metadata API, VizQL Data Service and Pulse.

Tool Agents

Learn how Agent Factory agents consume MCP tools and capabilities in Prisme.ai.