Skip the install. Get this working in under 2 minutes.
Start a free trial on cloud.anythingmcp.com, add the Tableau in one click, then point your AI client (Claude, ChatGPT, Copilot or Cursor) at the generated MCP endpoint. No Docker, no git clone, zero engineering experience required.
Summary
Work with Tableau Cloud and Tableau Server from any AI agent: find workbooks, views and data sources, read view data as CSV, images, PDFs and Excel crosstabs, query published data sources through the VizQL Data Service, trace lineage with the Metadata API, and manage projects, tags, group members and extract refreshes. Sign-in with a personal access token.
Try asking
Example prompts for Tableau
Click any prompt to copy it. Paste into Claude, ChatGPT, Cursor, Gemini, Copilot or OpenClaw to run it against this connector.
Claude is AI and can make mistakes. Please double-check responses.
💡 No install? Use cloud.anythingmcp.com directly. Sign in, click Connectors → Tableau, paste your credentials, mint an MCP API key and you're done. No Docker, no
git clone, no local server.
Tableau + Gemini
Work with Tableau Cloud and Tableau Server from any AI agent: find workbooks, views and data sources, read view data as CSV, images, PDFs and Excel crosstabs, query published data sources through the VizQL Data Service, trace lineage with the Metadata API, and manage projects, tags, group members and extract refreshes. Sign-in with a personal access token.
Prerequisites
See the full setup instructions baked into the connector (visible in the in-app store when you select the connector). The required environment variables for this connector are:
TABLEAU_SERVER_URL, TABLEAU_PAT_NAME, TABLEAU_PAT_SECRET (optional: TABLEAU_SITE)
Step 1 — Get credentials
Setting up takes about 5 minutes. You need a Tableau Cloud site or Tableau Server 2024.2 or later, and a Tableau user who can see the content the AI should work with.
- In Tableau open your Account Settings, section Personal Access Tokens, enter a token name and click Create Token. On Tableau Server an admin may have to allow personal access tokens first.
- Copy the token name into
TABLEAU_PAT_NAMEand the secret, which is shown only once, intoTABLEAU_PAT_SECRET. Both are case-sensitive. - Put the address without a path into
TABLEAU_SERVER_URL: on Tableau Cloud the pod host you see in the browser, e.g.https://prod-useast-a.online.tableau.com, on Tableau Server its own address, e.g.https://tableau.example.com. - Put the site's content URL into
TABLEAU_SITE: the part after/site/in the browser address (#/site/acme/homegivesacme). Leave it empty for the Default site of a Tableau Server. - Install the connector and run
tableau_get_current_session: it shows the site and the user and confirms the sign-in. Itssite.idis thesite_idevery site tool needs.
The connector signs in with the token, reuses the session and signs in again when it expires. Tableau allows one session per token at a time, so do not use the same token in another tool. Tableau Cloud revokes a token that has not been used for 15 days; create a new one then.
Whose access it is: the AI sees and changes only what the token's user may see and do, with that user's site role and permissions.
What it reads: the server version and newest REST API version, the sites and their settings. A word search across workbooks, views, data sources, projects, flows, metrics, tables and databases. Projects, workbooks with their views and data connections, and views with usage counts. What a dashboard shows: the data behind a view as CSV, a PNG image the model can look at, a PDF of one view or of a whole workbook, and the crosstab as an Excel file, each narrowed with view filters if needed. Published data sources with connections, certification and extract information, their fields (tableau_read_datasource_metadata) and queries on them with dimensions, aggregated measures, filters and sorting (tableau_query_datasource). Lineage through GraphQL on the Metadata API (tableau_metadata_query): which workbooks use a data source, upstream databases, tables and columns, calculated fields, owners and data quality warnings. Users, groups and group members, background jobs and scheduled extract refresh tasks.
What it writes: refreshes the extracts of a workbook or a published data source now, runs a scheduled extract refresh task outside its schedule, creates and updates projects, renames a workbook or switches its tabs on or off, moves a workbook to another project (its permissions may follow the target project's settings), adds tags to workbooks and data sources, and adds a user of the site to a local group (Active Directory groups sync from the directory). A refresh returns a job that the AI follows with tableau_get_job.
Switched off at install: tableau_cancel_job, because a cancelled job cannot be resumed and has to be started again. An admin switches it on when the team needs it.
Data formats: ids are LUIDs (UUIDs). Lists come as {"pagination": {"pageNumber", "pageSize", "totalAvailable"}, "workbooks": {"workbook": [...]}}, and the same for projects, views, data sources, users, groups and jobs. Times are ISO 8601 in UTC. tableau_get_view_data returns CSV text with a header row, with numbers formatted as in the view. tableau_query_datasource returns data as a list of objects keyed by field caption with the function, e.g. SUM(Sales). View filters use the vf_ prefix and the field name as shown in the view, e.g. {"vf_Region": "West"}, with several values comma-separated. A job's finishCode is 0 for success, 1 for failure and 2 for cancelled.
Paging, filters and sorting: list tools take page_size (up to 1000) and page_number; the AI continues while pageNumber * pageSize is below totalAvailable. tableau_search_content pages with limit and page, and its answer carries the total. filter is field:operator:value, several joined by commas, e.g. projectName:eq:Finance,updatedAt:gt:2026-01-01T00:00:00Z; in takes [a,b]. sort is field:asc or field:desc.
Requirements: tableau_read_datasource_metadata and tableau_query_datasource need Tableau Cloud or Tableau Server 2025.1 with the VizQL Data Service on, and the API Access capability on the data source. tableau_metadata_query needs the Metadata API, which is on by default on Tableau Cloud and is enabled by an admin on Tableau Server. tableau_search_content needs Tableau Cloud or Tableau Server 2022.3 and later.
Common errors: Tableau answers {"error": {"code", "summary", "detail"}}. 401 (codes 401001 and 401002) means a wrong or expired token or a wrong site content URL. 403 means the token's user lacks the permission. 404 means a wrong id or a site_id from another site; at sign-in it means TABLEAU_SERVER_URL is wrong (only scheme and host) or the server is older than 2024.2. 400 is a bad filter or parameter, 409 a duplicate name or a refresh that is already queued.
The connector does not publish, download or delete workbooks and data sources, does not delete projects, does not add users to the site or change site roles, and does not remove tags or group members.
Step 2 — Install the adapter
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
Step 3 — Add the connector in Gemini
Your server URL: in AnythingMCP, open MCP Servers → the server this connector is on, and copy its URL (
https://cloud.anythingmcp.com/mcp/…). Use it wherever this guide showsYOUR_SERVER_ID.
Gemini CLI reads MCP servers from ~/.gemini/settings.json (on Windows %USERPROFILE%\.gemini\settings.json). Add:
{
"mcpServers": {
"anythingmcp": {
"httpUrl": "https://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID",
"headers": { "X-API-Key": "YOUR_MCP_API_KEY" }
}
}
}
- Create an MCP API key in AnythingMCP under MCP Servers → your server → API keys, and paste it in place of
YOUR_MCP_API_KEY. - Save the file and restart
gemini. - Run
/mcpinside Gemini CLI (orgemini mcp listin your shell):anythingmcpshould show as connected. - Start prompting: Gemini CLI can now call the
Tableautools.
Available tools
| Tool | What it does |
|---|---|
tableau_get_current_session | The signed-in session: site (id, name, contentUrl) and user (id, name, site role) |
tableau_get_server_info | Product version, build and the newest REST API version of the Tableau Server or Tableau Cloud pod |
tableau_list_sites | Sites the signed-in user can reach (on Tableau Cloud usually only the signed-in one): id, name, contentUrl, state, admin mode |
tableau_get_site | Settings of a site: name, contentUrl, state, storage quota, user quota, and which features (subscriptions, flows, Ask Data, ...) are on |
tableau_search_content | Search the site's content by words: workbooks, views, data sources, projects, flows, metrics, tables, databases |
tableau_list_projects | Projects (folders) of the site: id, name, description, parent project id, owner, content permissions mode |
tableau_list_workbooks | Workbooks of the site: id, name, contentUrl, project, owner, size, tags, created and updated time, webpageUrl |
tableau_get_workbook | One workbook: name, description, project, owner, tags, views, data acceleration and freshness settings, webpageUrl |
tableau_list_workbook_views | Views (sheets and dashboards) of a workbook: id, name, contentUrl, and with include_usage_statistics the total view count |
tableau_list_workbook_connections | Data connections of a workbook: type, server address, port, user name, and the published data source behind each |
tableau_list_views | Views of the whole site: id, name, contentUrl, workbook, owner, project, tags, and with include_usage_statistics the view count |
tableau_get_view | One view: name, contentUrl, workbook, owner, project, tags, and with include_usage_statistics the view count |
tableau_get_view_data | The data behind a view as CSV text (the summary data of its marks), optionally filtered with vf_ filters |
tableau_get_view_image | A PNG image of a view, returned as an image the model can look at, optionally filtered with vf_ filters |
tableau_get_view_pdf | A PDF of one view, returned as a file, with paper size and orientation, optionally filtered with vf_ filters |
tableau_download_view_crosstab_excel | The crosstab of a view as an Excel file (.xlsx), returned as a file, optionally filtered with vf_ filters |
tableau_get_workbook_pdf | A PDF of all views of a workbook, returned as a file, with paper size and orientation |
tableau_list_datasources | Published data sources of the site: id, name, type (database type), project, owner, tags, certification, whether it has an extract, created… |
tableau_get_datasource | One published data source: name, description, type, project, owner, certification note, extract and refresh information |
tableau_list_datasource_connections | Connections of a published data source: type, server address, port, user name |
tableau_read_datasource_metadata | Fields of a published data source through the VizQL Data Service: fieldCaption (the name to use in queries), dataType, role (dimension or… |
tableau_query_datasource | Query a published data source through the VizQL Data Service: pick fields (dimensions and aggregated measures), filters and sorting, get… |
tableau_metadata_query | Run a GraphQL query on the Tableau Metadata API for lineage: which workbooks use a data source, upstream databases and tables, columns… |
tableau_list_users | Users of the site: id, name, full name, e-mail, site role (Creator, Explorer, Viewer, SiteAdministratorCreator, Unlicensed, ...), last… |
tableau_get_user | One user: name, full name, e-mail, site role, last login, external auth id |
tableau_list_user_groups | Groups a user belongs to: group id, name, domain and minimum site role |
tableau_list_groups | Groups of the site: id, name, domain, minimum site role and user count |
tableau_list_group_users | Members of a group: user id, name, full name, site role and last login |
tableau_list_jobs | Background jobs of the site (extract refreshes, subscriptions, flows): id, type, status, progress, created, started and ended time |
tableau_get_job | Status of one job: progress (0 to 100), finishCode (0 success, 1 failed, 2 cancelled), notes with the error text, and the workbook or data… |
tableau_list_extract_refresh_tasks | Scheduled extract refresh tasks of the site: task id, priority, type (full or incremental), schedule (frequency and next run time), and the… |
tableau_refresh_workbook | Refresh the extracts of a workbook now |
tableau_refresh_datasource | Refresh the extract of a published data source now |
tableau_run_extract_refresh_task | Run a scheduled extract refresh task now instead of waiting for its schedule |
tableau_cancel_job | Cancel a running or queued job (an extract refresh, a subscription or a flow run) |
tableau_create_project | Create a project, at the top level or inside a parent project |
tableau_update_project | Rename a project, change its description or content permissions, or move it under another parent |
tableau_update_workbook | Rename a workbook or switch its tabs on or off |
tableau_move_workbook | Move a workbook to another project (its permissions may follow the target project's settings) |
tableau_add_workbook_tags | Add tags to a workbook; existing tags stay, the answer lists all tags of the workbook |
tableau_add_datasource_tags | Add tags to a published data source; existing tags stay, the answer lists all of them |
tableau_add_user_to_group | Add a user of the site to a group (local groups only; Active Directory groups sync from the directory) |
Example prompts
- "Which workbooks in the Finance project were updated in the last 30 days, and who owns them?"
- "Show me the numbers behind the Sales Overview dashboard, filtered to the West region."
- "In the Superstore data source, what were total sales by region in the first half of 2026?"
- "Which workbooks use the published data source Orders? I want to know what breaks if we change it."
- "Did last night's extract refreshes succeed? Show me the failed ones with their error text."
FAQ
Where does Gemini CLI look for MCP servers? In ~/.gemini/settings.json for your user, or in .gemini/settings.json inside a project. gemini mcp list shows each server and whether it connects.
Next steps
- Connector landing page
- Connect to Claude
- Connect to ChatGPT
- Connect to Cursor
- Connect to Meta Muse
- Connect to Microsoft Copilot
Was this guide helpful?