{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"github_mcp-tableau-tableau-mcp","slug":"mcp-tableau-tableau-mcp","name":"tableau-mcp","type":"mcp","url":"https://github.com/tableau/tableau-mcp","page_url":"https://unfragile.ai/mcp-tableau-tableau-mcp","categories":["mcp-servers"],"tags":["mcp","mcp-server","modelcontextprotocol","tableau"],"pricing":{"model":"open_source","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"github_mcp-tableau-tableau-mcp__cap_0","uri":"capability://tool.use.integration.multi.transport.mcp.server.binding.with.dynamic.tool.registration","name":"multi-transport mcp server binding with dynamic tool registration","description":"Implements the Model Context Protocol specification by extending McpServer from @modelcontextprotocol/sdk and dynamically registering tools via a toolFactories pattern. Supports both stdio transport for local process communication and HTTP/StreamableHTTPServerTransport via Express for remote deployment. Tool registration can be filtered at startup using INCLUDE_TOOLS/EXCLUDE_TOOLS environment variables, enabling selective capability exposure without code changes. The Server class handles session management in HTTP mode and wires all subsystems (auth, config, logging) during initialization via startServer().","intents":["Deploy a Tableau data integration layer that works with any MCP-compatible AI client (Claude Desktop, Cursor, VS Code)","Run the same MCP server locally via stdio or remotely via HTTP without code modifications","Selectively enable/disable tool groups at deployment time based on security or organizational policies","Integrate Tableau data access into multi-agent systems that speak the MCP protocol"],"best_for":["AI application developers building agents that need standardized protocol-based data access","Enterprise teams deploying Tableau integrations across multiple AI clients","Teams migrating from REST-only integrations to protocol-based agent architectures"],"limitations":["Requires Node.js >=22.7.5 (enforced in package.json); no Python or Go implementations provided","HTTP transport adds session management complexity vs stdio; requires Express server overhead","Tool filtering via environment variables is coarse-grained; no fine-grained permission system per tool parameter","No built-in rate limiting or request queuing at the MCP layer; relies on downstream Tableau API limits"],"requires":["Node.js >=22.7.5","@modelcontextprotocol/sdk (included in package.json)","Express.js for HTTP transport (included in dependencies)","Valid Tableau Server or Tableau Cloud instance with reachable HTTPS URL"],"input_types":["MCP tool call requests (JSON-RPC 2.0 format)","Environment variables for configuration and tool filtering","HTTP POST requests (when using HTTP transport)"],"output_types":["MCP tool response objects (JSON-RPC 2.0 format)","Structured tool results mapped from Tableau REST API responses","Error responses with MCP-compliant error codes"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-tableau-tableau-mcp__cap_1","uri":"capability://data.processing.analysis.tableau.datasource.querying.with.vizql.data.service.integration","name":"tableau datasource querying with vizql data service integration","description":"Exposes query-datasource and list-fields tools that translate natural language or structured queries into Tableau's VizQL Data Service API calls. The implementation wraps RestApi layer calls that handle VizQL query construction, parameter binding, and result streaming. Supports querying published datasources by ID with field-level metadata discovery via the Metadata API (GraphQL). Results are returned as structured data (rows/columns) that AI systems can reason about and present to users. The tool framework abstracts VizQL complexity, allowing agents to query Tableau data without understanding VizQL syntax.","intents":["Query Tableau datasources directly from an AI agent without building custom SQL or VizQL","Discover available fields and their data types in a datasource before constructing queries","Enable agents to fetch data for analysis, visualization, or downstream processing","Support ad-hoc data exploration where agents can iteratively refine queries based on results"],"best_for":["Data analysts using AI agents to explore Tableau datasources interactively","Developers building AI-powered BI tools that need programmatic data access","Teams automating data extraction workflows via agent-driven queries"],"limitations":["VizQL Data Service API has undocumented rate limits; no built-in backoff or retry logic exposed to callers","Query results are limited by Tableau's row fetch limits (typically 10k rows); pagination not explicitly documented in tool interface","Field metadata discovery via GraphQL Metadata API may be slower than direct REST calls for large datasources","No support for complex VizQL expressions (e.g., table calculations, LOD expressions) — only basic field selection and filtering","Datasource must be published to Tableau Server/Cloud; embedded or external datasources not supported"],"requires":["Published datasource on Tableau Server or Tableau Cloud with known datasource ID","Valid authentication credentials (PAT, JWT, UAT, or OAuth token)","Network access to Tableau Server/Cloud instance","Datasource must have at least one field accessible to authenticated user"],"input_types":["Datasource ID (string)","Field names (array of strings)","Filter expressions (optional, format depends on field type)","Limit/offset parameters for pagination"],"output_types":["Structured result set: array of objects with field names as keys","Field metadata: name, data type, aggregation capability","Row count and query execution metadata"],"categories":["data-processing-analysis","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-tableau-tableau-mcp__cap_10","uri":"capability://automation.workflow.http.server.deployment.with.express.and.streamablehttpservertransport","name":"http server deployment with express and streamablehttpservertransport","description":"Implements HTTP server deployment mode using Express.js and @modelcontextprotocol/sdk's StreamableHTTPServerTransport. The server listens on a configurable port (default 3000) and accepts MCP requests via HTTP POST. Each request is routed to the appropriate tool handler, which executes and returns results. The implementation supports session management for stateful operations (e.g., OAuth token refresh). HTTP transport enables remote client connections and cloud deployment scenarios. The server can be deployed as a Docker container or standalone binary with HTTP transport.","intents":["Deploy Tableau MCP as a remote service accessible from multiple clients","Run MCP server in cloud environments (AWS, GCP, Azure) without local process binding","Enable web-based clients (browsers, web apps) to access Tableau via MCP","Support multi-client deployments where multiple AI clients share a single MCP server"],"best_for":["Teams deploying Tableau MCP in cloud environments (Kubernetes, serverless)","Organizations with multiple AI clients that need to share a single Tableau connection","Developers building web-based AI interfaces that need Tableau integration"],"limitations":["HTTP transport adds latency vs stdio (typically 50-200ms per request)","Session management complexity increases; stateful operations (OAuth) require careful handling","No built-in authentication for HTTP endpoints; relies on network isolation or reverse proxy auth","Scaling requires load balancing and session affinity; stateless design preferred but not enforced","HTTP requests are subject to network timeouts; long-running operations may fail"],"requires":["Express.js (included in dependencies)","@modelcontextprotocol/sdk with StreamableHTTPServerTransport","Network access to Tableau Server/Cloud from HTTP server","Reverse proxy or network isolation for security (no built-in auth)"],"input_types":["HTTP POST requests with MCP tool call JSON payload","HTTP headers: Content-Type, Authorization (optional)"],"output_types":["HTTP 200 response with MCP tool result JSON","HTTP error responses (400, 401, 500) with error details"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-tableau-tableau-mcp__cap_11","uri":"capability://automation.workflow.docker.and.single.executable.application.sea.deployment.packaging","name":"docker and single executable application (sea) deployment packaging","description":"Provides pre-built Docker images and Single Executable Application (SEA) binaries for easy deployment without Node.js installation. The Docker image includes all dependencies and can be run with environment variables for configuration. The SEA binary is a self-contained executable that bundles Node.js and the MCP server, enabling deployment to systems without Node.js. Both deployment methods support the same environment-based configuration system. Build system (TypeScript compilation, bundling) produces both Docker images and SEA binaries from the same source code.","intents":["Deploy Tableau MCP without requiring Node.js installation on target systems","Package MCP server for distribution to non-technical users or restricted environments","Simplify deployment to container orchestration platforms (Kubernetes, Docker Compose)","Enable single-binary distribution for easy installation and updates"],"best_for":["DevOps teams deploying Tableau MCP in containerized environments","Organizations with restricted software installation policies","Teams distributing MCP server to non-technical users"],"limitations":["Docker image size is large (typically 500MB+) due to Node.js bundling","SEA binaries are platform-specific (Linux, macOS, Windows); separate builds required for each platform","No automatic updates; new versions require rebuilding or pulling new images","Docker images require container runtime (Docker, Podman); not suitable for bare-metal deployments","SEA binaries may trigger antivirus warnings on some systems due to bundled Node.js"],"requires":["Docker runtime (for Docker deployment)","Linux, macOS, or Windows system (for SEA binary)","Network access to Tableau Server/Cloud"],"input_types":["Environment variables passed to Docker container or SEA binary","Docker image tag or SEA binary version"],"output_types":["Running MCP server (stdio or HTTP transport)","Server logs via container stdout or binary output"],"categories":["automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-tableau-tableau-mcp__cap_12","uri":"capability://code.generation.editing.tool.factory.pattern.with.dynamic.tool.instantiation.and.filtering","name":"tool factory pattern with dynamic tool instantiation and filtering","description":"Implements a toolFactories pattern where each tool group (datasource, workbook, view, content, pulse) is defined as a factory function that returns Tool instances. The Server class iterates over toolFactories and instantiates tools, optionally filtering based on INCLUDE_TOOLS/EXCLUDE_TOOLS environment variables. Each Tool wraps a callback that calls into the RestApi layer. The pattern enables modular tool organization, selective tool registration, and easy addition of new tools without modifying the Server class. Tool implementations are decoupled from the MCP server framework.","intents":["Organize tools into logical groups (datasource, workbook, view, etc.) for maintainability","Enable selective tool registration at startup without code changes","Support easy addition of new tools by creating new factory functions","Decouple tool implementations from MCP server framework"],"best_for":["Developers extending Tableau MCP with new tools","Teams maintaining large tool sets with selective deployment","Organizations with modular development practices"],"limitations":["Tool factory pattern adds abstraction layer; harder to trace tool execution vs direct implementation","No runtime tool registration; tools must be defined at startup","Tool filtering is coarse-grained (entire tool enabled/disabled); no parameter-level filtering","Factory functions must return Tool instances; no support for other tool types or custom wrappers"],"requires":["Understanding of Tool class interface from @modelcontextprotocol/sdk","Familiarity with factory pattern and callback functions"],"input_types":["Tool factory functions (TypeScript/JavaScript)","Tool configuration (name, description, input schema)"],"output_types":["Tool instances registered with MCP server","Tool metadata (name, description, input schema)"],"categories":["code-generation-editing","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-tableau-tableau-mcp__cap_2","uri":"capability://search.retrieval.workbook.and.view.discovery.with.rest.api.enumeration","name":"workbook and view discovery with rest api enumeration","description":"Implements list-workbooks, list-views, and get-view-data tools that enumerate Tableau workbooks and views accessible to the authenticated user via REST API calls. The tools return structured metadata (workbook name, owner, description, view names, last modified timestamp) that agents can use to discover relevant content. get-view-data retrieves the underlying data from a specific view by calling REST API endpoints that return view data as structured rows. The implementation filters results based on user permissions automatically; agents see only content they have access to.","intents":["Discover what workbooks and views exist in Tableau without manual navigation","Find specific views by name or owner to retrieve their data programmatically","Fetch data from a view for analysis, comparison, or downstream processing","Enable agents to recommend relevant views based on user queries or context"],"best_for":["AI agents that need to explore Tableau content catalogs to answer user questions","Teams building AI-powered Tableau search or recommendation systems","Developers automating data extraction from multiple Tableau views"],"limitations":["list-workbooks and list-views return paginated results; no built-in cursor management for large Tableau instances (100+ workbooks)","View data retrieval is limited to views with published data sources; views with embedded or external data sources may fail","No filtering by workbook tags, project, or owner in the tool interface — agents must post-filter results","View data is returned in REST API format (typically CSV or JSON); no support for view-specific formatting or filters","Permissions are evaluated server-side; agents cannot pre-filter based on user roles"],"requires":["Valid authentication credentials (PAT, JWT, UAT, or OAuth token)","Network access to Tableau Server or Tableau Cloud instance","User must have at least View permission on workbooks/views to enumerate them"],"input_types":["Optional: workbook ID or name filter (for list-views)","Optional: view ID or name (for get-view-data)","Optional: pagination parameters (offset, limit)"],"output_types":["Workbook metadata: name, owner, description, last modified, view count","View metadata: name, description, owner, workbook ID","View data: structured rows with column names and values"],"categories":["search-retrieval","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-tableau-tableau-mcp__cap_3","uri":"capability://search.retrieval.content.search.with.full.text.indexing.via.rest.api","name":"content search with full-text indexing via rest api","description":"Implements search-content tool that queries Tableau's full-text search index via REST API to find workbooks, views, datasources, and metrics by keyword. The tool accepts search terms and optional content type filters, returning ranked results with metadata (name, owner, description, content type, URL). Search is performed server-side using Tableau's built-in indexing; results are automatically filtered by user permissions. The tool enables agents to locate relevant Tableau content without enumerating all available items, improving performance for large Tableau instances.","intents":["Search for Tableau content by keyword to answer user questions like 'find views about sales'","Locate specific datasources or metrics by name or description","Enable agents to recommend content based on user queries without full catalog enumeration","Support natural language content discovery where agents interpret user intent and construct search queries"],"best_for":["AI agents building Tableau content recommendation or search interfaces","Teams automating content discovery in large Tableau instances (1000+ items)","Developers creating natural language interfaces to Tableau catalogs"],"limitations":["Search results depend on Tableau's indexing; newly published content may not appear immediately (index lag ~5-15 minutes)","No support for advanced search syntax (boolean operators, field-specific search); only keyword matching","Search ranking is server-side and not customizable; agents cannot influence result order","Results are limited to first N items (typically 100); pagination not exposed in tool interface","Search index includes only published content; draft workbooks or personal spaces may not be searchable"],"requires":["Valid authentication credentials (PAT, JWT, UAT, or OAuth token)","Network access to Tableau Server or Tableau Cloud instance","Tableau Server/Cloud must have search indexing enabled (default)"],"input_types":["Search query string (required)","Content type filter: 'workbook', 'view', 'datasource', 'metric' (optional, array)","Owner filter (optional, string)"],"output_types":["Ranked search results: array of content objects","Per-result metadata: name, owner, description, content type, URL, last modified","Result count and relevance score (if available)"],"categories":["search-retrieval","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-tableau-tableau-mcp__cap_4","uri":"capability://planning.reasoning.pulse.metrics.and.insights.generation.with.ai.powered.analytics","name":"pulse metrics and insights generation with ai-powered analytics","description":"Exposes list-metric-definitions, list-metrics, generate-insight-bundle, and generate-insight-brief tools that integrate with Tableau Pulse (Tableau's AI-powered analytics feature). The tools allow agents to enumerate published metrics, retrieve metric values and trends, and request AI-generated insights about metric behavior. generate-insight-bundle returns comprehensive analysis (anomalies, trends, comparisons), while generate-insight-brief provides concise summaries. The implementation calls Tableau's Pulse API and REST API endpoints, abstracting the complexity of insight generation and metric aggregation. Results include natural language explanations and supporting data.","intents":["Retrieve metric values and trends for KPIs without manual dashboard navigation","Generate AI-powered insights about metric behavior (anomalies, trends, forecasts)","Enable agents to explain metric changes to users in natural language","Support automated alerting or reporting workflows based on metric insights"],"best_for":["Teams using Tableau Pulse for AI-driven analytics and wanting agent integration","Developers building AI-powered BI dashboards or reporting systems","Organizations automating insight generation and distribution via agents"],"limitations":["Tableau Pulse must be enabled on the Tableau Server/Cloud instance; not available in all editions","Insight generation is asynchronous; agents must poll for results or handle callbacks","Insight quality depends on metric data quality and historical data availability; sparse or noisy data produces poor insights","No control over insight generation parameters (e.g., anomaly sensitivity, forecast horizon) via tool interface","Metric subscriptions and notifications are separate from insight generation; no unified subscription management"],"requires":["Tableau Pulse enabled on Tableau Server or Tableau Cloud instance","Published metrics defined in Tableau","Valid authentication credentials (PAT, JWT, UAT, or OAuth token)","Sufficient historical data for metrics (typically 30+ days for trend analysis)"],"input_types":["Metric ID or name (for list-metrics, generate-insight-bundle)","Optional: time range or granularity (daily, weekly, monthly)","Optional: comparison dimensions or filters"],"output_types":["Metric metadata: name, owner, definition, last updated","Metric values: current value, trend, change percentage","Insight bundle: anomalies, trends, comparisons, forecasts (structured + natural language)","Insight brief: concise summary with key findings"],"categories":["planning-reasoning","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-tableau-tableau-mcp__cap_5","uri":"capability://safety.moderation.multi.method.authentication.with.oauth.2.1.jwt.pat.and.uat.support","name":"multi-method authentication with oauth 2.1, jwt, pat, and uat support","description":"Implements a pluggable authentication system supporting four credential types: Personal Access Token (PAT), Connected App JWT (direct-trust), User Attribute Token (UAT), and OAuth 2.1. The Config class reads authentication credentials from environment variables and initializes the appropriate auth handler. Each auth method produces a valid Tableau session token used for all downstream REST API and VizQL calls. OAuth 2.1 flow includes authorization code exchange, token refresh, and session management. The system abstracts auth complexity; tools use authenticated sessions without knowing the underlying auth method.","intents":["Support multiple deployment scenarios: local development (PAT), enterprise SSO (OAuth), service accounts (JWT), and legacy systems (UAT)","Enable secure credential management without embedding secrets in code","Allow organizations to enforce their preferred authentication method via environment configuration","Support multi-tenant deployments where different clients use different auth methods"],"best_for":["Enterprise teams with diverse authentication requirements (SSO, service accounts, legacy systems)","Developers deploying Tableau MCP across multiple environments with different auth policies","Organizations migrating from legacy auth methods to OAuth 2.1"],"limitations":["PAT is simplest but least secure for production; tokens are long-lived and require manual rotation","OAuth 2.1 requires browser-based authorization flow; not suitable for headless/unattended deployments without pre-authorized tokens","JWT (Connected App) requires Tableau Server/Cloud admin setup; not available in all editions","UAT is deprecated in newer Tableau versions; support may be removed in future releases","No built-in token refresh scheduling; OAuth tokens must be refreshed before expiry or requests fail","Credentials stored in environment variables are vulnerable if environment is compromised; no secrets vault integration"],"requires":["Valid Tableau Server or Tableau Cloud instance","Appropriate credentials for chosen auth method: PAT_NAME + PAT_VALUE, or OAUTH_CLIENT_ID + OAUTH_CLIENT_SECRET, or JWT_SECRET, or UAT_TOKEN","For OAuth: redirect URI must be configured in Tableau and MCP server","For JWT: Connected App must be created in Tableau with direct-trust enabled"],"input_types":["Environment variables: TABLEAU_SERVER_URL, TABLEAU_SITE_NAME, and auth-specific variables","For OAuth: authorization code (from browser redirect)","For PAT: token name and value (pre-created in Tableau)"],"output_types":["Authenticated session token (used internally for API calls)","Session metadata: user ID, site ID, expiry time","For OAuth: refresh token (for token renewal)"],"categories":["safety-moderation","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-tableau-tableau-mcp__cap_6","uri":"capability://automation.workflow.environment.based.configuration.with.selective.tool.filtering","name":"environment-based configuration with selective tool filtering","description":"Implements a Config class that reads all server configuration from environment variables (TABLEAU_SERVER_URL, TABLEAU_SITE_NAME, INCLUDE_TOOLS, EXCLUDE_TOOLS, logging settings, etc.). The configuration system supports tool filtering via INCLUDE_TOOLS (whitelist) and EXCLUDE_TOOLS (blacklist) environment variables, enabling selective capability exposure without code changes. Configuration is validated at startup; invalid or missing required variables cause startup failure with clear error messages. The system supports multiple deployment modes (local, Docker, SEA) by reading the same environment variables.","intents":["Deploy the same MCP server binary to different environments with different configurations","Restrict tool availability based on security policies (e.g., disable query-datasource in production)","Support multi-tenant deployments where different clients have different tool access","Enable configuration management via container orchestration (Kubernetes, Docker Compose) without rebuilding"],"best_for":["DevOps teams deploying Tableau MCP across multiple environments","Organizations with strict security policies requiring tool-level access control","Teams using container orchestration (Kubernetes, Docker) for deployment"],"limitations":["Tool filtering is coarse-grained (entire tool enabled/disabled); no parameter-level access control","Configuration is read at startup; changes require server restart","No configuration validation for tool names; typos in INCLUDE_TOOLS/EXCLUDE_TOOLS silently disable unintended tools","Environment variables are visible in process listings and container logs; no secrets encryption","No support for configuration files (YAML, JSON); only environment variables"],"requires":["Environment variables set before server startup","TABLEAU_SERVER_URL must be valid HTTPS URL","TABLEAU_SITE_NAME can be empty string for default site","Valid auth credentials in environment (PAT, OAuth, JWT, or UAT)"],"input_types":["Environment variables: TABLEAU_SERVER_URL, TABLEAU_SITE_NAME, INCLUDE_TOOLS, EXCLUDE_TOOLS, LOG_LEVEL, etc.","Tool names for filtering: 'list-datasources', 'query-datasource', 'list-workbooks', etc."],"output_types":["Validated configuration object used by Server class","Startup logs indicating which tools are enabled/disabled","Error messages if configuration is invalid"],"categories":["automation-workflow","safety-moderation"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-tableau-tableau-mcp__cap_7","uri":"capability://automation.workflow.logging.and.telemetry.with.structured.output.and.configurable.verbosity","name":"logging and telemetry with structured output and configurable verbosity","description":"Implements a logging system that captures MCP server events, API calls, authentication flows, and errors with configurable verbosity (LOG_LEVEL environment variable). Logs are structured (JSON format) for easy parsing by log aggregation systems. The system logs tool invocations, API request/response metadata, authentication events, and performance metrics (latency, result sizes). Telemetry can be sent to external systems (e.g., Datadog, Splunk) via log shipping. Logs are written to stdout/stderr, making them compatible with container logging drivers and log aggregation platforms.","intents":["Debug MCP server behavior and tool execution for troubleshooting","Monitor API call patterns and performance for optimization","Track authentication events and failures for security auditing","Integrate server logs with centralized logging systems for observability"],"best_for":["DevOps teams operating Tableau MCP in production","Teams using centralized logging (ELK, Splunk, Datadog) for observability","Developers debugging MCP server behavior and tool execution"],"limitations":["Logs are written to stdout/stderr; no built-in log rotation or file management","No sampling or rate limiting; high-volume deployments may generate excessive logs","Structured logging format is JSON; custom log formats not supported","No built-in metrics (Prometheus, StatsD); metrics must be extracted from logs","Sensitive data (tokens, credentials) may be logged if not explicitly filtered; requires careful configuration"],"requires":["LOG_LEVEL environment variable set (DEBUG, INFO, WARN, ERROR)","Log aggregation system (optional) for centralized log collection","Sufficient disk/network capacity for log volume"],"input_types":["LOG_LEVEL environment variable: 'DEBUG', 'INFO', 'WARN', 'ERROR'","Optional: log filtering rules (not exposed in tool interface)"],"output_types":["Structured JSON logs with timestamp, level, message, context","Tool invocation logs: tool name, parameters, result summary","API call logs: endpoint, method, status code, latency","Authentication logs: auth method, user ID, success/failure"],"categories":["automation-workflow","safety-moderation"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-tableau-tableau-mcp__cap_8","uri":"capability://image.visual.view.image.rendering.and.export.with.png.pdf.format.support","name":"view image rendering and export with png/pdf format support","description":"Implements get-view-image tool that renders Tableau views as static images (PNG, PDF) via REST API. The tool accepts a view ID and optional parameters (size, format, filters) and returns the rendered image. The implementation calls Tableau's view export endpoints, which render the view server-side using Tableau's rendering engine. Images can be embedded in reports, sent via email, or displayed in chat interfaces. The tool abstracts rendering complexity; agents request images without understanding Tableau's rendering pipeline.","intents":["Embed Tableau view images in AI-generated reports or documents","Send view snapshots via email or chat for quick sharing","Display Tableau visualizations in non-web interfaces (e.g., Slack, email)","Create static archives of Tableau views for compliance or audit purposes"],"best_for":["Teams building AI-powered reporting systems that include Tableau visualizations","Developers creating Slack/Teams bots that display Tableau views","Organizations automating view distribution via email or chat"],"limitations":["Rendering is server-side; large or complex views may timeout (typically 30-60 seconds)","Image quality depends on Tableau's rendering engine; interactive elements (filters, drill-down) are not included","View filters cannot be applied at render time via tool parameters; only pre-filtered views can be rendered","PDF export may not preserve all formatting; complex views may render differently than in Tableau","Image size is limited by Tableau's export settings; very large images may be truncated"],"requires":["View must be published to Tableau Server or Tableau Cloud","View must be accessible to authenticated user","Valid authentication credentials (PAT, JWT, UAT, or OAuth token)"],"input_types":["View ID (required, string)","Format: 'png' or 'pdf' (optional, default 'png')","Size: width and height in pixels (optional)","Filters: array of filter expressions (optional, format depends on view)"],"output_types":["Binary image data (PNG or PDF)","Image metadata: format, size, dimensions","Rendering metadata: render time, view version"],"categories":["image-visual","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-tableau-tableau-mcp__cap_9","uri":"capability://data.processing.analysis.datasource.metadata.discovery.via.graphql.metadata.api","name":"datasource metadata discovery via graphql metadata api","description":"Implements get-datasource-metadata and list-fields tools that query Tableau's GraphQL Metadata API to discover datasource structure (tables, fields, field types, relationships). The tools return comprehensive metadata including field names, data types, aggregation capabilities, and field descriptions. The implementation uses GraphQL queries to fetch metadata efficiently; results are structured for agent consumption. Agents can use this metadata to understand datasource schema before constructing queries, enabling intelligent query construction and validation.","intents":["Discover datasource schema (fields, types) before querying","Enable agents to validate field names and types before constructing queries","Support intelligent query suggestions based on available fields","Document datasource structure for agents and users"],"best_for":["Developers building AI-powered query builders or data explorers","Teams automating datasource documentation and schema discovery","Agents that need to understand datasource structure before querying"],"limitations":["GraphQL Metadata API may be slower than REST API for large datasources (100+ fields)","Metadata includes only published fields; calculated fields or custom expressions not included","Field relationships and join paths are not exposed via tool interface","Metadata is cached server-side; changes to datasource schema may not appear immediately","No support for datasource parameters or filters in metadata queries"],"requires":["Published datasource on Tableau Server or Tableau Cloud","Valid authentication credentials (PAT, JWT, UAT, or OAuth token)","GraphQL Metadata API enabled on Tableau instance (default)"],"input_types":["Datasource ID (required, string)","Optional: field name filter or type filter"],"output_types":["Datasource metadata: name, owner, description, table count","Field metadata: name, data type, aggregation capability, description","Relationship metadata: foreign keys, join paths (if available)"],"categories":["data-processing-analysis","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":39,"verified":false,"data_access_risk":"high","permissions":["Node.js >=22.7.5","@modelcontextprotocol/sdk (included in package.json)","Express.js for HTTP transport (included in dependencies)","Valid Tableau Server or Tableau Cloud instance with reachable HTTPS URL","Published datasource on Tableau Server or Tableau Cloud with known datasource ID","Valid authentication credentials (PAT, JWT, UAT, or OAuth token)","Network access to Tableau Server/Cloud instance","Datasource must have at least one field accessible to authenticated user","Express.js (included in dependencies)","@modelcontextprotocol/sdk with StreamableHTTPServerTransport"],"failure_modes":["Requires Node.js >=22.7.5 (enforced in package.json); no Python or Go implementations provided","HTTP transport adds session management complexity vs stdio; requires Express server overhead","Tool filtering via environment variables is coarse-grained; no fine-grained permission system per tool parameter","No built-in rate limiting or request queuing at the MCP layer; relies on downstream Tableau API limits","VizQL Data Service API has undocumented rate limits; no built-in backoff or retry logic exposed to callers","Query results are limited by Tableau's row fetch limits (typically 10k rows); pagination not explicitly documented in tool interface","Field metadata discovery via GraphQL Metadata API may be slower than direct REST calls for large datasources","No support for complex VizQL expressions (e.g., table calculations, LOD expressions) — only basic field selection and filtering","Datasource must be published to Tableau Server/Cloud; embedded or external datasources not supported","HTTP transport adds latency vs stdio (typically 50-200ms per request)","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.3255019536907418,"quality":0.35,"ecosystem":0.52,"match_graph":0.25,"freshness":0.75,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.15,"match_graph":0.23,"freshness":0.12}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-05-24T12:16:22.065Z","last_scraped_at":"2026-05-03T14:23:38.364Z","last_commit":"2026-05-01T15:55:48Z"},"community":{"stars":255,"forks":97,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=mcp-tableau-tableau-mcp","compare_url":"https://unfragile.ai/compare?artifact=mcp-tableau-tableau-mcp"}},"signature":"ygebI3KyjpfIuJIi1BuGBujCDo0seFN806cSA6DsN5PvPTjwC7XumahOxlNCAsXe9Rg9byFREp84nqnS/M2ADQ==","signedAt":"2026-06-20T01:07:24.445Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/mcp-tableau-tableau-mcp","artifact":"https://unfragile.ai/mcp-tableau-tableau-mcp","verify":"https://unfragile.ai/api/v1/verify?slug=mcp-tableau-tableau-mcp","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}