Architecture
AI agents (such as Claude, ChatGPT, Slackbot or other AI clients) connect to the hosted
Tableau MCP service through the Tableau routing layer (CloudFront edge location+compute)
which routes the request to corresponding Tableau Cloud pod. Each cloud pod
(e.g. prod-us-west-c, prod-us-east-a, eu-west-1a, ...) runs its own instance of Tableau MCP, which communicates
with the pod-local VizQL Data Service, Metadata API and other REST APIs.
Note: Any AI agent (Claude, ChatGPT, Slackbot, ...) can be routed to any CloudFront edge location. Each agent's request is directed to the nearest edge location to provide the best network latency, so the agent-to-edge pairing shown above is illustrative rather than fixed.
Request routing sequence
-
A user's AI agent sends unauthenticated request to mcp.tableau.com.
-
AI agent's unauthenticated request is routed to the nearest Cloudfront edge location to provide best network latency.
-
Unauthenticated request is sent back by Routing Layer returning an
HTTP 401with aWWW-Authenticateheader pointing the agent to the OAuth 2.1 flow:HTTP/2 401www-authenticate: Bearer realm="MCP", resource_metadata="https://mcp.tableau.com/.well-known/oauth-protected-resource", scope="tableau:mcp:datasource:read tableau:mcp:workbook:read ..."{"error":"unauthorized","error_description":"Authorization required. Use OAuth 2.1 flow. See https://tableau.github.io/tableau-mcp/ for details."} -
AI agent starts OAuth flow from the info provided in
www-authenticateand completes authentication. -
AI agent starts making authenticated requests to mcp.tableau.com.
-
Tableau Routing Layer routes the authenticated request to the corresponding Tableau Cloud pod.