Tableau Public MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Tableau Public MCP ServerGet the profile and recent workbooks for user wjsutton"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Tableau Public MCP Server
A Model Context Protocol (MCP) server that enables AI applications to interact with Tableau Public content programmatically. This server provides 22 tools for accessing user profiles, workbooks, visualisations, social connections, discovery features, and workbook analysis through Tableau Public's REST APIs.
Features
22 Comprehensive Tools covering all major Tableau Public API endpoints and workbook analysis
No Authentication Required - all endpoints are public
Type-Safe - built with TypeScript and Zod schema validation
Well-Tested - comprehensive test coverage with Vitest
MCP Standard - follows Model Context Protocol specifications
Easy Integration - works with Claude Desktop and other MCP clients
TWBX Analysis - extract calculations, data profiles, and structure from downloaded workbooks
Related MCP server: Tableau MCP Server
Table of Contents
Installation
Prerequisites
Node.js 20 or higher (includes npm and npx)
Install via npm (Recommended)
No local setup needed — run directly with npx:
{
"mcpServers": {
"tableau-public": {
"command": "npx",
"args": ["-y", "@wjsutton/tableau-public-mcp-server@latest"]
}
}
}Add this to your MCP client configuration file (see Quick Start for file locations).
Install from Source
Alternatively, clone and build locally:
# Clone the repository
git clone https://github.com/wjsutton/tableau-public-mcp.git
cd tableau-public-mcp
# Install dependencies
npm install
# Build the project
npm run buildQuick Start
Video Setup Guide for Claude Desktop and VSCode (GitHub Copilot)
Configure Claude Desktop
Add the server to your Claude Desktop configuration file:
Location:
macOS:
~/Library/Application\ Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Configuration (npm):
{
"mcpServers": {
"tableau-public": {
"command": "npx",
"args": ["-y", "@wjsutton/tableau-public-mcp-server@latest"]
}
}
}Configuration (from source):
{
"mcpServers": {
"tableau-public": {
"command": "node",
"args": ["/absolute/path/to/tableau-public-mcp/build/index.js"]
}
}
}Available Tools
The server provides 22 tools organised into 6 categories:
User Profile Tools (3)
Tool | Description | API Reference |
| Returns comprehensive profile data including display name, location, bio, workbook counts, follower/following counts, favourites count, social media links, website URL, freelance status, and the user's last 21 workbooks with metadata | |
| Returns user-defined workbook categories with contained workbooks, view counts, favourites, and engagement metrics. Supports pagination (max 500 categories). Returns empty array if user hasn't configured categories | |
| Returns essential profile metadata in a lightweight format including profileName, displayName, and basic user information. Faster alternative when you only need core profile details without workbook history |
Workbook Tools (4)
Tool | Description | API Reference |
| Returns paginated array of workbooks including titles, URLs, view counts, publication dates, thumbnails, and sheet/dashboard counts. Supports pagination (max 50 per request) and visibility filtering (NON_HIDDEN or ALL) | |
| Returns detailed metadata for a single workbook including title, author, view count, favourite count, publication date, default view URL, allowDataAccess flag, and complete view listing | |
| Returns complete workbook structure with all sheets, dashboards, data sources, and detailed view information including descriptions, sheet types, and repository URLs | |
| Returns up to 20 recommended workbooks based on content similarity, including titles, authors, view counts, and thumbnails |
Social Tools (3)
Tool | Description | API Reference |
| Returns paginated array of followers with usernames, display names, bios, and their latest workbook details. Supports pagination (max 24 per request, index increments by count: 0, 24, 48...) | |
| Returns paginated array of accounts the user follows with usernames, display names, bios, and their latest workbook details. Supports pagination (max 24 per request) | |
| Returns array of workbook repository URLs that the user has favourited/bookmarked. Includes workbook metadata and URLs for accessing the visualisations |
Discovery Tools (3)
Tool | Description | API Reference |
| Returns ranked search results for visualisations or authors matching the query. Supports type filtering (vizzes/authors), pagination (max 20 per request), and returns titles, authors, view counts, thumbnails, and URLs | |
| Returns paginated list of Tableau Public's featured Viz of the Day winners with titles, authors, descriptions, publication dates, view counts, and workbook URLs. Supports pagination (max 12 per page) | |
| Returns list of featured authors (Hall of Fame Visionaries, Tableau Visionaries, or Ambassadors) with profile information, workbook counts, follower counts, and featured workbooks |
Media Tools (2)
Tool | Description | API Reference |
| Returns URL to full-size PNG screenshot of a visualisation. Requires workbookUrl (e.g., "username/workbook-name") and viewName (sheet/dashboard name). Image displays static visualisation without interactivity | |
| Returns URL to thumbnail-sized preview image of a visualisation. Requires workbookUrl and viewName. Smaller file size ideal for gallery views and previews |
TWBX Analysis Tools (7)
Tool | Description | API Reference |
| Downloads .twbx file to local temp directory. First verifies allowDataAccess flag, then downloads the workbook containing XML definition, data extracts, and embedded assets. Returns file path, size, and metadata | |
| Extracts contents from .twbx ZIP archive. Returns paths to main TWB file, data sources, and embedded files. Creates organised directory structure with workbook XML, data extracts, images, and other assets | Local processing |
| Parses TWB XML to extract calculated fields, parameters, and source fields. Returns formulas, data types, field roles, dependencies, and supports hidden field filtering. Includes dependency analysis showing root and leaf calculations | Local processing |
| Analyses workbook XML to return complete structure including worksheets, dashboards, data sources, connections, and sheet hierarchy. Shows workbook organisation and data source relationships | Local processing |
| Builds dependency graph of calculated fields showing which calculations depend on others. Returns dependency chains, orphaned calculations, and complexity metrics to understand calculation architecture | Local processing |
| Identifies and extracts Level of Detail (LOD) expressions (FIXED, INCLUDE, EXCLUDE) from calculated fields. Returns LOD type, formula, scope, aggregation, and affected dimensions for each expression | Local processing |
| Profiles embedded data files (CSV, Excel, JSON, images) extracting statistics, column info, data types, sample values, and data quality metrics. Returns row counts, column summaries, and data distributions | Local processing |
Usage Examples
Visit https://wjsutton.github.io/tableau-public-mcp-examples/ for:
Use Cases
Examples
Prompt Templates
Configuration
Environment Variables
No environment variables are needed by default. The server supports the following optional environment variables:
Variable | Description | Default |
| Maximum results for paginated queries |
|
| Logging verbosity (debug, info, warn, error) |
|
| Request timeout in milliseconds |
|
| Base URL for Tableau Public API |
|
Development
Project Structure
tableau-public-mcp/
├── src/
│ ├── index.ts # Entry point
│ ├── server.ts # MCP server setup
│ ├── config.ts # Configuration
│ ├── tools/
│ │ ├── tool.ts # Base Tool class
│ │ ├── toolName.ts # Tool name types
│ │ ├── tools.ts # Tool registry
│ │ ├── getUserProfile/ # Tool implementation
│ │ │ ├── getUserProfile.ts
│ │ │ └── getUserProfile.test.ts
│ │ └── ... # Other tools (16 total)
│ └── utils/
│ ├── apiClient.ts # HTTP client
│ ├── pagination.ts # Pagination helpers
│ └── errorHandling.ts # Error utilities
├── build/ # Compiled output
├── package.json
├── tsconfig.json
└── vitest.config.tsDevelopment Commands
# Install dependencies
npm install
# Build TypeScript
npm run build
# Watch mode (rebuild on changes)
npm run dev
# Run tests
npm test
# Run tests in watch mode
npm run test:watch
# Run tests with coverage
npm run test:coverage
# Lint code
npm run lintTesting
The project uses Vitest for testing with comprehensive coverage:
# Run all tests
npm test
# Run with coverage report
npm run test:coverage
# Run in watch mode for development
npm run test:watchTest Structure
Each tool has its own test file that covers:
Metadata validation (name, description)
Successful API calls with mocked responses
Error handling (404, network errors, etc.)
Parameter validation with Zod schemas
Pagination support where applicable
Architecture
System Architecture
┌─────────────────────────────────────────────────────────────────┐
│ MCP Client │
│ (Claude Desktop, etc.) │
└───────────────────────────┬─────────────────────────────────────┘
│ stdio
│ MCP Protocol
┌───────────────────────────▼─────────────────────────────────────┐
│ Tableau Public MCP Server │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ Server (server.ts) │ │
│ │ - MCP Protocol Handler │ │
│ │ - Tool Registration │ │
│ │ - Request/Response Management │ │
│ └─────────────────────┬───────────────────────────────────┘ │
│ │ │
│ ┌─────────────────────▼───────────────────────────────────┐ │
│ │ Tool Registry (tools.ts) │ │
│ │ 22 Tool Factories │ │
│ └─────────┬──────────┬──────────┬──────────┬──────────────┘ │
│ │ │ │ │ │
│ ┌─────────▼──┐ ┌───▼────┐ ┌─▼─────┐ ┌─▼────────┐ ... │
│ │ User │ │Workbook│ │Social │ │Discovery │ │
│ │ Profile │ │ Tools │ │Tools │ │ Tools │ │
│ │ Tools (3) │ │ (4) │ │ (3) │ │ (3) │ │
│ └─────┬──────┘ └───┬────┘ └─┬─────┘ └─┬────────┘ │
│ │ │ │ │ │
│ ┌─────▼─────────────▼──────────▼──────────▼────────────────┐ │
│ │ Utilities Layer │ │
│ │ ┌──────────┐ ┌──────────┐ ┌─────────┐ ┌──────────┐ │ │
│ │ │ Cached │ │ Error │ │ URL │ │ Config │ │ │
│ │ │ API │ │ Handling │ │ Builder │ │ │ │ │
│ │ │ Client │ │ │ │ │ │ │ │ │
│ │ └─────┬────┘ └──────────┘ └─────────┘ └──────────┘ │ │
│ └────────┼───────────────────────────────────────────────────┘ │
└───────────┼──────────────────────────────────────────────────────┘
│ HTTPS
│
┌───────────▼──────────────────────────────────────────────────────┐
│ Tableau Public REST APIs │
│ │
│ /profile/api/* - User profiles and workbooks │
│ /public/apis/bff/* - Search and discovery │
│ /views/* - Workbook images and thumbnails │
└────────────────────────────────────────────────────────────────────┘Design Patterns
Factory Pattern: Each tool is created by a factory function
Type Safety: Full TypeScript typing with Zod schema validation
Error Handling: Consistent error responses with helpful messages
Modularity: Tools are independent and self-contained
Testability: Mocked API clients for unit testing
Technology Stack
Component | Technology | Purpose |
Runtime | Node.js 20+ | JavaScript runtime |
Language | TypeScript 5.7+ | Type safety and modern JS |
MCP SDK | @modelcontextprotocol/sdk | MCP protocol implementation |
Validation | Zod | Schema validation |
Testing | Vitest | Unit and integration tests |
HTTP Client | Axios | API requests |
Key Features
No Authentication: All Tableau Public APIs are public
Stdio Transport Only: Designed for local MCP client integration
Comprehensive Error Handling: Detailed error messages with suggestions
Pagination Support: Built-in helpers for multi-page results
Logging: Request/response logging to stderr (stdout reserved for MCP)
API Reference
All tools interact with Tableau Public REST APIs. Key endpoints:
Endpoint Category | Base Path | Documentation |
User Profiles |
| User metadata and workbooks |
Workbooks |
| Workbook listings and details |
Social |
| Followers, following, favourites |
Search |
| Content discovery |
Discovery |
| Featured content |
Images |
| Visualisation media |
Troubleshooting
Common Issues
Issue: Server fails to start
Solution: Ensure Node.js 20+ is installed and dependencies are up to date
Issue: Tools return 404 errors
Solution: Verify usernames and workbook URLs are correct and publicly accessible
Issue: Rate limiting errors
Solution: Reduce request frequency or implement delays between calls
Issue: TypeScript compilation errors
Solution: Run
npm installto ensure all types are installed
Logging
The server logs to stderr (stdout is reserved for MCP protocol). Set LOG_LEVEL=debug for detailed logging:
LOG_LEVEL=debug node ./build/index.js 2> server.logContributing
Contributions are welcome! Please follow these steps:
Fork the repository
Create a feature branch (
git checkout -b feature/amazing-feature)Make your changes with tests
Run tests and linting (
npm test && npm run lint)Commit your changes (
git commit -m 'Add amazing feature')Push to the branch (
git push origin feature/amazing-feature)Open a Pull Request
Development Guidelines
Follow the existing code style and patterns
Write comprehensive tests for new features
Update documentation for API changes
Use meaningful commit messages
Ensure all tests pass before submitting PR
Related Resources
License
MIT License - see LICENSE file for details
Acknowledgments
Built following the architecture patterns from tableau/tableau-mcp
Tableau Public API documentation by @wjsutton
Model Context Protocol by Anthropic
Support
Enjoy this project? Support it in Tableau's Hackathon
For issues and questions:
Open an issue on GitHub Issues
Check existing issues for solutions
Provide detailed reproduction steps for bugs
Made with ❤️ for the Tableau Public and MCP communities
Available Tools
22 toolsdownload_workbook_twbxA
Downloads a Tableau Public workbook as a .twbx file for offline analysis. First verifies that the workbook allows data access (allowDataAccess flag). The .twbx file contains the workbook definition (XML), data extracts, and embedded assets. Returns the file path where the .twbx is saved. Use the unpack_twbx tool to extract and analyze the contents.
| Name | Required | Description | Default |
|---|---|---|---|
| workbookName | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses key behavior: it verifies the `allowDataAccess` flag before downloading, describes the .twbx contents, and states the return value (file path). Missing error behavior, but overall transparent for a simple download tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (5 sentences) and front-loaded with the main action. Each sentence adds value: action, verification, file contents, return value, and next-step tool. No redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the primary use, the verification step, return value, and a related tool. It lacks explicit error handling and prerequisites (e.g., authentication), but given the tool's simplicity and lack of output schema, this is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description never mentions the single `workbookName` parameter. With schema description coverage reported as 0%, the agent gets no guidance on what value to provide. The parameter name is self-evident, but the description fails to reinforce or clarify it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the exact action: 'Downloads a Tableau Public workbook as a .twbx file for offline analysis.' It specifies the verb, resource, and output format, and naturally distinguishes itself from sibling `get_*` and `unpack_twbx` tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to download (for offline analysis) and directs the agent to use `unpack_twbx` next. It does not explicitly state when not to use it, but the guidance given is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_favoritesA
Retrieves the list of workbooks favorited by a Tableau Public user. Returns workbook information including repository URLs and direct URLs where available. Favorites indicate content the user finds valuable or interesting. Useful for understanding user preferences and discovering quality visualizations curated by the community.
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It mentions that the tool returns workbook information including URLs, which gives some transparency about output. However, it does not disclose limits, pagination, sorting, or error conditions, which would be valuable for a complete picture.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences and front-loaded with the main action. It is concise and readable, with the second and third sentences adding context about the return content and use case. Slightly redundant phrasing ('valuable or interesting') could be tightened, but overall it is well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool with no output schema or annotations, the description covers the basic purpose and return contents, but omits important practical details like pagination, empty-list behavior, or any authentication assumptions. It is adequate but leaves gaps for a fully autonomous agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description should compensate. It mentions 'a Tableau Public user' but does not explicitly detail the 'username' parameter, its format, or any constraints. The schema itself only identifies the parameter as a required string, leaving the agent to infer semantics from the tool description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves a list of favorited workbooks for a Tableau Public user, using a specific verb ('Retrieves') and resource ('favorited workbooks'). It distinguishes from siblings by focusing on favorites, which is not covered by other tools like get_workbooks_list or get_user_profile.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a use case ('useful for understanding user preferences and discovering quality visualizations') but does not explicitly state when to use this tool versus alternatives, nor does it give exclusions or prerequisites. This is implied context rather than direct guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_featured_authorsA
Retrieves authors from Tableau Public community groups. Supports Hall of Fame Visionaries, Tableau Visionaries (default), and Tableau Ambassadors North America. Returns profiles, biographies, specialties, and social links. Pagination supported for all groups (max 12 per request). Useful for discovering influential creators, learning from top community members, and finding quality content sources.
| Name | Required | Description | Default |
|---|---|---|---|
| group | Yes | ||
| limit | Yes | ||
| startIndex | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses the supported groups, default group, returned data types (profiles, biographies, specialties, social links), and pagination limit, which goes beyond minimal disclosure. It omits potential error behavior or authentication needs, but the core behavioral traits are well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences long, each adding meaningful information without redundancy. It front-loads the core purpose and efficiently covers supported groups, return content, pagination, and use cases.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (3 parameters, no annotations, no output schema), the description is nearly complete. It covers purpose, supported values, return contents, and pagination. It could be more explicit about error handling, but the provided information is sufficient for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported as 0%, so the description must compensate. It explains the 'group' parameter with explicit values and default, and mentions the pagination max. However, it does not explain the exact constraint that limit must be 1 or 12, and startIndex is only hinted at through 'pagination supported', leaving some semantics to inference.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'retrieves' with a clear resource ('authors from Tableau Public community groups') and lists the supported groups. It clearly differentiates this tool from sibling tools like get_user_profile and get_workbooks_list, which focus on other entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the tool is 'useful for discovering influential creators, learning from top community members, and finding quality content sources,' giving clear context for when to use it. It does not explicitly mention when not to use it or contrast with alternatives, but the specific use cases imply a distinct role.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_followersA
Retrieves the list of followers for a Tableau Public user. Returns follower usernames, metadata (display names, bios), and their latest workbook details. Supports pagination with index and count parameters. Default returns 24 followers per request (max 24). The index parameter increments by count for pagination (e.g., 0, 24, 48). Useful for analyzing user communities and discovering related authors.
| Name | Required | Description | Default |
|---|---|---|---|
| count | Yes | ||
| index | Yes | ||
| username | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly explains the pagination behavior (index and count, default 24 max 24, increments by count), which is a key behavioral trait. It also lists return content. However, it does not mention error cases, rate limits, or authentication requirements, though for a read-only public endpoint this is not critical. Overall, it discloses the most relevant behaviors sufficiently.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the core purpose. All sentences carry useful information: the first states the primary action, the second details return values, the third explains pagination and defaults, and the last gives a practical use case. No filler or redundancy, making it efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with no output schema, the description is complete enough. It explains what the tool returns (follower usernames, metadata, workbook details), how pagination works, and typical use cases. There is no output schema to delegate return-value explanation to, and the description covers that need. Minor omissions like error behavior are not essential for successful invocation and understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does so admirably: it explains index and count semantics with a concrete example (0, 24, 48), states the default and max for count, and clearly indicates username as the target user. This goes beyond simple parameter names and gives the agent enough to invoke the tool correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves followers for a Tableau Public user, using a specific verb and resource. It distinguishes itself from the sibling 'get_following' by focusing on followers, and further details the return content (usernames, metadata, workbook details), making the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a use case ('analyzing user communities and discovering related authors') which implies when to use the tool, but it does not explicitly compare against alternatives or state when not to use it. Sibling tools like get_following exist, and no exclusions or alternative guidance is given, so the usage context is only implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_followingA
Retrieves the list of accounts a Tableau Public user is following. Returns usernames, metadata (display names, bios), and latest workbook details for each followed account. Supports pagination with index and count parameters. Default returns 24 accounts per request (max 24). The index parameter increments by count for pagination (e.g., 0, 24, 48). Useful for understanding user interests and discovering related content creators.
| Name | Required | Description | Default |
|---|---|---|---|
| count | Yes | ||
| index | Yes | ||
| username | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses pagination behavior, default and max count (24), and index increments (0, 24, 48), which adds meaningful behavioral context beyond a simple retrieval statement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, front-loaded with the main purpose, then return details and pagination. Every sentence earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the moderate complexity and lack of output schema, the description adequately explains return content and pagination. It could mention error cases or requirement that the user exists, but overall it gives sufficient context for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite the schema having parameter descriptions (context says 0% coverage, but they exist), the description adds important semantics about how index and count work together for pagination, with an example. This compensates for any ambiguity in the schema and provides clear usage guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the list of accounts a Tableau Public user is following, with a specific verb and resource. It distinguishes from siblings by mentioning 'following', which is opposite of get_followers and distinct from get_favorites/workbooks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear usage context: 'Useful for understanding user interests and discovering related content creators.' However, it does not explicitly mention when not to use it or name alternative tools, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_twbx_calculated_fieldsB
Extracts calculated fields, parameters, and field definitions from a Tableau workbook (.twb file). Returns formulas, data types, and field dependencies to understand how visualizations are built. Use with the mainTwbPath from unpack_twbx output. Ideal for learning Tableau techniques from existing visualizations.
| Name | Required | Description | Default |
|---|---|---|---|
| twbFilePath | Yes | ||
| includeHidden | Yes | ||
| includeDependencies | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It discloses that the tool extracts/returns formulas, data types, and field dependencies and implies a read-only parse operation. It does not discuss edge cases, expected output structure, or runtime behavior (e.g., failures on malformed files), but it adds meaningful output expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the main action, with no filler. Each sentence contributes (function, usage, use case).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has three required parameters and no output schema, and the description does not explain the boolean flags or fully distinguish from sibling tools. It gives a high-level return summary but lacks enough detail for an agent to correctly choose parameter values and interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not explain the includeHidden or includeDependencies parameters. It only indirectly references the file path via 'mainTwbPath from unpack_twbx output', which is helpful but insufficient for the three required parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Extracts') and identifies the resource ('calculated fields, parameters, and field definitions from a Tableau workbook (.twb file)'), and clarifies it returns formulas and dependencies. It clearly conveys the tool's function, though it overlaps somewhat with sibling tools like get_twbx_calculation_dependencies without explicit differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context: use with 'mainTwbPath from unpack_twbx output' and frames the tool as ideal for learning from existing visualizations. However, it does not mention any alternatives or exclusions relative to sibling tools, so it stops short of explicit when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_twbx_calculation_dependenciesA
Builds a dependency graph showing which calculations depend on which in a Tableau workbook. Shows calculation hierarchy with depth levels, identifies root calculations (depend only on source fields), leaf calculations (nothing depends on them), and detects circular dependencies. Includes an ASCII tree visualization. Ideal for understanding complex calculation chains. Use with the mainTwbPath from unpack_twbx output.
| Name | Required | Description | Default |
|---|---|---|---|
| twbFilePath | Yes | ||
| includeSourceFields | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral disclosure. It accurately reveals the graph-building behavior, detection of circular dependencies, and inclusion of an ASCII tree visualization. It does not mention potential side effects (likely none), but for a read-only analysis tool, this is adequate and informative.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, three sentences, with the primary action front-loaded. Every sentence adds value: what it builds, what it identifies, and how to use it. No fluff or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 2 parameters, no annotations, and no output schema, the description covers the main aspects: purpose, key behaviors (roots, leaves, circular deps), and a usage hint. It does not detail the exact return schema or error scenarios, but for a dependency-analysis tool, the provided information is sufficient for an agent to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides descriptions for both parameters (e.g., full path, include source fields default false). The tool description adds practical context by referring to 'mainTwbPath from unpack_twbx output,' which helps map the twbFilePath parameter to a real user workflow. This goes beyond schema descriptions without redundancy.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Builds a dependency graph showing which calculations depend on which in a Tableau workbook.' This clearly distinguishes it from sibling tools that list fields or structure. It also enumerates specific outputs (root/leaf calculations, circular dependencies) that set it apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States it is 'Ideal for understanding complex calculation chains' and explicitly instructs to 'Use with the mainTwbPath from unpack_twbx output,' giving clear context for when to invoke it. Does not explicitly exclude simpler cases or name alternative tools, but the guidance is specific and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_twbx_data_profileA
Extracts column names from data files in an extracted TWBX package. Supports CSV, Excel (.xlsx/.xls), and JSON files. Notes .hyper and .tde files as unsupported (require Tableau Hyper API). Optionally includes an inventory of embedded images with dimensions. Use with the extraction path from unpack_twbx tool.
| Name | Required | Description | Default |
|---|---|---|---|
| twbFilePath | Yes | ||
| extractionPath | Yes | ||
| includeImageProfile | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses supported formats (CSV, Excel, JSON), unsupported formats (.hyper/.tde), and an optional image inventory feature. This gives the agent insight into tool capabilities and constraints, though it does not explicitly state that the tool is read-only or describe error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, and contains no filler. Every sentence adds value: one for main functionality and supported formats, another for usage context and optional features.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema or annotations, the description provides essential context: what data is extracted, which file types are supported or not, and how the tool fits into the unpack_twbx workflow. It does not describe the exact return format, but for a profile tool that extracts column names, the purpose is sufficiently clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although the schema itself provides descriptions for all three parameters, the tool description adds some clarification by mentioning the extraction path from unpack_twbx and the optional image inventory. However, it does not describe twbFilePath's purpose, relying on the schema's description. Given the schema coverage, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('Extracts column names') and its resource ('data files in an extracted TWBX package'). It also lists supported and unsupported file types, which distinguishes it from sibling tools like get_twbx_workbook_structure that focus on workbook metadata rather than data column extraction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to use it with the extraction path from the unpack_twbx tool, providing clear context for when to use it. It also notes unsupported .hyper/.tde files, implying those require Hyper API, but does not explicitly name alternative tools or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_twbx_lod_expressionsA
Extracts and explains Level of Detail (LOD) expressions from a Tableau workbook. LOD expressions ({FIXED}, {INCLUDE}, {EXCLUDE}) are powerful but complex calculations. This tool parses each LOD, provides human-readable explanations of what they do, categorizes them by common patterns (percent of total, customer cohort, etc.), and includes learning resources. Ideal for understanding and learning from existing LOD calculations. Use with the mainTwbPath from unpack_twbx output.
| Name | Required | Description | Default |
|---|---|---|---|
| twbFilePath | Yes | ||
| includeUsageContext | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that it parses each LOD, provides human-readable explanations, categorizes by common patterns, and includes learning resources. This gives a good sense of behavior without explicitly stating side effects or permissions, but the absence of any write-like behavior suggests a read-only tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences long, front-loaded with the core purpose, and includes supporting details about explanations, categorization, and usage. Every sentence earns its place, with no redundant or vague phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with two parameters and no output schema, the description covers the main functionality, output form (explanations, categorizations), and usage context. It stops short of detailing the exact return format, but given the absence of an output schema, it provides enough for an agent to understand the tool's purpose and typical invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It provides a useful hint for twbFilePath by referencing 'mainTwbPath from unpack_twbx output', but it does not mention includeUsageContext. The schema itself has a description for includeUsageContext, but the tool description does not elaborate on it, leaving a gap for one of the two required parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'Extracts and explains Level of Detail (LOD) expressions from a Tableau workbook', using a specific verb and resource. It distinguishes itself from sibling tools like get_twbx_calculated_fields by focusing specifically on LOD expressions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states it is 'Ideal for understanding and learning from existing LOD calculations' and explicitly references using 'the mainTwbPath from unpack_twbx output'. This provides clear context and a prerequisite, though it does not explicitly mention alternatives or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_twbx_workbook_structureA
Extracts complete workbook architecture from a Tableau workbook (.twb file). Returns an overview of data sources (connections, tables, joins), worksheets (chart types, fields on shelves, encodings, filters), dashboards (layout, contained worksheets), and parameters. Ideal for understanding 'what's in this workbook' at a glance. Use with the mainTwbPath from unpack_twbx output.
| Name | Required | Description | Default |
|---|---|---|---|
| twbFilePath | Yes | ||
| includeFieldDetails | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for behavioral disclosure. It describes the output components and implies a read-only extraction, but does not explicitly state that the file is not modified, or disclose limitations like performance on large workbooks, output format, or error behavior. It adds value by listing contents but lacks deeper transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the core purpose, and each sentence adds essential information: what it does, what it returns, and how to use it. There is no redundant or vague wording, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool deals with complex workbook architecture and has no output schema, so the description must convey what the return value contains. It does list the main categories (data sources, worksheets, dashboards, parameters), but it does not describe the return structure (e.g., JSON keys, nesting) or address edge cases like file-not-found or invalid .twb files. It provides a good high-level overview but lacks sufficient detail for full contextual completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description references 'mainTwbPath from unpack_twbx output' for the twbFilePath parameter, but it does not mention includeFieldDetails or its effect on output detail. Given that schema description coverage is reported as 0% in the context, the description fails to compensate for parameter semantics, leaving the second parameter's purpose solely to the input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Extracts') and resource ('complete workbook architecture') and enumerates the contents (data sources, worksheets, dashboards, parameters), making the tool's purpose unmistakable. It also distinguishes itself from sibling tools by focusing on the overall structure rather than specific components like calculated fields or data profiles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates when to use the tool: 'Ideal for understanding what's in this workbook at a glance.' It also instructs to use it with the 'mainTwbPath from unpack_twbx output,' which is a valuable prerequisite. However, it does not explicitly mention alternatives or when not to use the tool, stopping short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_profileA
Retrieves comprehensive profile information for a Tableau Public user. Returns user metadata including workbook counts, followers, following, favorites, social links, website details, freelance status, and the last 21 workbooks with direct URLs. Useful for getting a complete overview of a user's Tableau Public presence.
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of explaining behavior. It reveals that the tool returns 'the last 21 workbooks with direct URLs,' which is a meaningful behavioral detail. It also lists the types of metadata returned. It does not mention rate limits or error behavior, but for a read-only retrieval, this level of disclosure is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, two sentences, with the main purpose stated upfront. It efficiently lists the return contents without unnecessary elaboration. Every sentence contributes to understanding what the tool does and what it returns.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must explain return values. It does so by listing the returned metadata and the 21-workbook limit. It does not cover potential error scenarios or authentication requirements, but for a simple tool with one parameter and no side effects, this is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description never mentions the 'username' parameter explicitly, and the schema description coverage is 0%. It only refers to 'a Tableau Public user,' which implies the input but adds no details about format, constraints, or examples. The schema itself provides the only parameter description, and the description adds little beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves comprehensive profile information for a Tableau Public user, enumerating specific data like workbook counts, followers, favorites, and the last 21 workbooks. It distinguishes itself from siblings like 'get_user_profile_basic' and 'get_user_profile_categories' by emphasizing 'comprehensive' and listing a broader scope of fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says 'Useful for getting a complete overview of a user's Tableau Public presence,' which implies its use case but does not explicitly contrast it with alternative tools such as 'get_user_profile_basic' or 'get_user_profile_categories'. There is no direct when-to-use vs. when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_profile_basicA
Retrieves basic profile information for a Tableau Public user. Returns essential user metadata in a lightweight format. This is a simpler alternative to get_user_profile when you only need core profile details without the full workbook history. Useful for quick profile lookups and user validation.
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It adds meaningful context beyond the raw schema: the tool returns 'essential user metadata in a lightweight format' and explicitly states that it does not include 'full workbook history.' This informs the agent about the response shape and the absence of heavier data, though it could go further by listing exact fields or noting behavior for nonexistent users.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: it opens with a clear statement of what the tool does, immediately clarifies the difference from a sibling tool, and ends with practical use cases. Every sentence adds value, and there is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, so the description should clarify what data the 'basic profile information' includes. It says 'essential user metadata' and 'lightweight format,' but does not enumerate the fields or mention behavior for invalid usernames. Given the tool's simplicity, the description is adequate but leaves gaps about exact return contents and error handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not mention the username parameter at all, and schema description coverage is 0%. While the schema itself provides a reasonable description of the parameter, the tool description fails to compensate for the low coverage. For a single parameter, some mention of the expected input (e.g., a Tableau Public username) and any constraints would have raised the score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Retrieves') and resource ('basic profile information for a Tableau Public user'). It also distinguishes itself from the sibling tool get_user_profile by explicitly noting it is a 'simpler alternative' that omits 'full workbook history,' making the specific scope clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: 'This is a simpler alternative to get_user_profile when you only need core profile details without the full workbook history.' It also mentions concrete use cases ('quick profile lookups and user validation'), giving the agent a clear decision rule for when to select this tool over its siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_profile_categoriesA
Retrieves workbook categories for a Tableau Public user. Returns user-defined categories containing workbooks, with metadata including category names, contained workbooks, view counts, and favorites. Supports pagination with startIndex and pageSize parameters. Useful for understanding how a user organizes their content.
| Name | Required | Description | Default |
|---|---|---|---|
| pageSize | Yes | ||
| username | Yes | ||
| startIndex | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It covers the read-only nature implicitly via 'Retrieves', lists the return metadata (category names, contained workbooks, view counts, favorites), and mentions pagination support. It does not disclose potential errors or rate limits, but for a public data retrieval this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences long, each adding value: purpose, return details, and a use case. It is front-loaded with the main verb and resource, contains no redundant phrasing, and is easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema and no annotations, so the description must explain the return shape. It does so by listing key metadata fields and pagination support. It lacks explicit notes on response format or errors, but for a straightforward retrieval with three parameters, it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Context signals indicate schema description coverage is 0%, so the description must compensate. It mentions 'startIndex and pageSize parameters' but does not explain their individual meanings, defaults, or constraints. The username parameter is only implied by 'user' in the description. This is insufficient compensation for the lack of schema-level descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with 'Retrieves workbook categories for a Tableau Public user,' which uses a specific verb and resource, clearly distinguishing it from sibling tools like get_user_profile or get_workbooks_list. It also states what is returned, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a use case ('Useful for understanding how a user organizes their content') but does not explicitly state when to use this tool versus alternatives or when not to use it. There is no mention of sibling tools or exclusion criteria, so only implied usage is present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_viz_of_dayA
Retrieves Tableau Public's Visualization of the Day (VOTD) winners. VOTD is a curated selection of exceptional visualizations featured by Tableau. Returns winners with workbook titles, authors, feature dates, descriptions, view counts, thumbnails, and direct URLs for viewing on Tableau Public. Supports efficient bulk fetching with 'maxResults' (up to 500, uses parallel pagination for speed). Can filter by month/year (e.g., filterMonth=10, filterYear=2024 for October 2024). Useful for discovering high-quality visualizations and analyzing trends.
| Name | Required | Description | Default |
|---|---|---|---|
| page | Yes | ||
| limit | Yes | ||
| filterYear | Yes | ||
| maxResults | Yes | ||
| filterMonth | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the returned fields and the parallel pagination behavior for maxResults, but it omits details about default pagination behavior when maxResults is not specified, rate limits, or error cases. The added detail on bulk fetching is useful, but the gap on standard pagination and response shape keeps it at a 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, front-loaded with the primary purpose, and each sentence adds value: what it retrieves, what it returns, the key option, and the use case. There is no redundancy or filler, making it appropriately sized and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 5 parameters, no output schema, and no annotations. The description covers return fields, filtering, and bulk fetching, but it does not specify the overall response shape (list vs. object), default behavior when no filters are applied, or the relationship between page/limit and maxResults. These gaps make it incomplete for a tool with this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% per context, but the description compensates by explaining maxResults (up to 500, parallel pagination) and filterMonth/filterYear with an example. However, page and limit are not described in the tool description, relying on their self-explanatory names and schema descriptions. The partial compensation is adequate but not complete, warranting a 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves Tableau Public's Visualization of the Day winners and distinguishes this from sibling tools by specifying the curated VOTD selection. It names the resource and the action ('Retrieves') and lists concrete return fields, making the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool ('useful for discovering high-quality visualizations and analyzing trends') and explains the VOTD concept, but it does not explicitly mention alternatives or when not to use it. This is a clear context without exclusions, so it fits a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workbook_contentsA
Retrieves the complete structure of a Tableau Public workbook including all visible sheets, dashboards, and stories with their repository URLs and direct URLs. Returns sheet metadata, types, configurations, and ready-to-use links for viewing each sheet. Requires the workbook name from the Tableau Public URL (e.g., 'GloboxABTestAnalysis_17009696417070'). Useful for exploring workbook structure and accessing individual visualizations.
| Name | Required | Description | Default |
|---|---|---|---|
| workbookName | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that only 'visible' sheets are included, and describes the type of data returned (metadata, types, configurations, URLs). It doesn't mention auth, rate limits, or errors, but for a read-only retrieval tool, the behavior is adequately transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, each adds value: purpose, output specifics, required input, and use case. Front-loaded with the main action, no filler or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema, no annotations), the description covers the essential aspects: what it does, what it returns, and what input is needed. It could mention response format or error conditions, but these are not critical for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% (the property lacks a standard description), but the tool description explicitly explains the single parameter 'workbookName' and provides a concrete example. This compensates well for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Retrieves') and resource ('complete structure of a Tableau Public workbook') and lists concrete outputs (sheets, dashboards, stories, URLs, metadata). This clearly differentiates it from siblings like get_workbook_details, which likely focuses on workbook-level metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states a clear prerequisite (workbook name from URL) and a concrete use case ('exploring workbook structure and accessing individual visualizations'), providing context for when to use it. However, it does not explicitly contrast with alternative sibling tools or state when *not* to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workbook_detailsA
Retrieves detailed metadata for a single Tableau Public workbook. Returns comprehensive information including workbook title, description, view names and types, publication dates, author information, view statistics, and direct URL. Requires the workbook name from the Tableau Public URL (e.g., 'GloboxABTestAnalysis_17009696417070'). Useful for getting complete information about a specific workbook.
| Name | Required | Description | Default |
|---|---|---|---|
| workbookName | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the return behavior by enumerating the metadata fields (title, view names, etc.) and specifies the exact input format with an example. It does not mention error handling or rate limits, but for a simple read operation, the disclosed behavior is reasonably complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences long, front-loaded with the main purpose, followed by output details and input requirement. Every sentence adds value without repetition or fluff, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one parameter and no output schema, the description covers the key aspects: what it does, what it returns, and what input is needed. It lacks edge-case or alternative usage details, but these are not critical for a straightforward retrieval tool, making it sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already includes a description for workbookName, but the tool description adds a concrete example and explains where to obtain the value from the Tableau Public URL. This reinforces and slightly extends the schema, providing enough guidance for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Retrieves detailed metadata for a single Tableau Public workbook,' using a specific verb and resource. It further lists the types of metadata returned, distinguishing it from sibling tools like get_workbooks_list or get_workbook_contents by emphasizing 'single' and 'details.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says 'Useful for getting complete information about a specific workbook,' providing clear context for when to use this tool. It also includes the prerequisite of needing the workbook name from the URL. However, it does not explicitly mention alternatives or exclude other scenarios, so it lacks the full 'when-not' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workbook_imageB
Fetches and optimizes a Tableau Public visualization image, saving it to the filesystem. Scales down images larger than 768px (maintaining aspect ratio) and compresses to 150-400KB target size. Preserves text detail important for dashboard analysis. Returns the file path where the optimized image is saved, along with metadata about size and compression. Requires the workbook repository URL and view name. View names should have spaces and periods removed (e.g., 'Dashboard 1' -> 'Dashboard1').
| Name | Required | Description | Default |
|---|---|---|---|
| format | Yes | ||
| quality | Yes | ||
| maxWidth | Yes | ||
| viewName | Yes | ||
| maxHeight | Yes | ||
| workbookUrl | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses key side effects: saving to the filesystem, scaling down images, compressing to a target size, and returning a file path with metadata. It doesn't mention overwrite behavior, permissions, or error handling, which is a gap for a tool that writes to disk, but the disclosed behaviors are useful and non-contradictory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and concise, with four sentences that each add value: purpose, optimizing behavior, text detail rationale, and input requirements/naming convention. No filler or repetition, though it is slightly longer than necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description does a reasonable job: it explains the output (file path and metadata), the optimization behavior, and the required inputs. However, it lacks details on potential side effects (e.g., overwriting files), error scenarios, and doesn't fully cover all six parameters in the context of the tool's behavior. This makes it adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has no top-level description coverage per context signals, so the description must compensate. It clarifies the workbookUrl as 'workbookRepoUrl from API responses' and explains view name normalization ('Dashboard 1' -> 'Dashboard1'). It also connects the 768px scaling to maxWidth and compression target to quality. However, it leaves maxHeight, format, and quality specifics largely to the schema, and the required parameter list includes defaults without behavioral guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: it fetches, optimizes, and saves a Tableau Public visualization image. The verb 'fetches and optimizes' combined with the resource 'Tableau Public visualization image' distinguishes it from sibling tools like download_workbook_twbx or get_workbook_thumbnail, though it doesn't explicitly differentiate from get_workbook_thumbnail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool by mentioning 'Preserves text detail important for dashboard analysis,' suggesting it's for cases where readable text matters. It also specifies required inputs (workbook URL and view name) and provides naming conventions. However, it does not explicitly state when to prefer this over alternatives like get_workbook_thumbnail, or mention any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workbooks_listA
Retrieves a paginated list of workbooks for a Tableau Public user. Returns workbook metadata including titles, view counts, publication dates, thumbnails, sheet counts, and direct URLs for viewing on Tableau Public. Supports pagination with start and count parameters (max 50 per request). Use visibility filter to include or exclude hidden workbooks. Useful for browsing a user's complete workbook portfolio.
| Name | Required | Description | Default |
|---|---|---|---|
| count | Yes | ||
| start | Yes | ||
| username | Yes | ||
| visibility | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It correctly explains pagination behavior via start/count with a max of 50, and the visibility filter to include or exclude hidden workbooks. It also specifies the kind of metadata returned, giving a solid picture of what the tool does without overpromising.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences long, with the main purpose front-loaded. Every sentence adds value: the first defines the operation, the second lists returned metadata, and the third covers pagination and visibility. No filler or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with no output schema, the description adequately covers the operation, return fields, pagination constraints, and visibility filtering. It does not mention potential default ordering or rate limits, but these are not critical for this tool's usage. The overall context is sufficient for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although the context signal reports 0% schema description coverage, the actual schema contains descriptions for all four parameters. The description adds value beyond the schema by explaining the pagination semantics (start/count with max 50) and the meaning of the visibility filter (include/exclude hidden workbooks). This compensates for any perceived gap and provides clear parameter usage context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Retrieves a paginated list of workbooks for a Tableau Public user,' which is a specific verb-resource pair. It clearly distinguishes from siblings like get_workbook_details or get_workbook_contents by focusing on the complete portfolio and listing metadata including titles, view counts, publication dates, thumbnails, sheet counts, and direct URLs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states 'Useful for browsing a user's complete workbook portfolio,' giving a clear use case. It doesn't explicitly mention when not to use it or name alternative tools, but the purpose is clear enough that an agent can infer it is for list-level queries rather than details or contents of a single workbook.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workbook_thumbnailA
Generates thumbnail URLs for a Tableau Public visualization. Requires the workbook repository URL. The view name is auto-resolved from the workbook's default view if not explicitly provided — this is the recommended usage, since view names frequently differ from workbook names. If workbookName is not provided, the tool automatically removes trailing numeric suffixes (e.g., '_17646104017530') from workbookUrl. Supports two URL formats: thumb path (default) and static path (4_3.png).
| Name | Required | Description | Default |
|---|---|---|---|
| viewName | Yes | ||
| workbookUrl | Yes | ||
| workbookName | Yes | ||
| useStaticPath | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden and discloses meaningful behaviors: auto-resolution of the view name, automatic stripping of trailing numeric suffixes from workbookUrl, and support for two URL formats. This is substantive and helps the agent anticipate tool behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five sentences, all informative, with the primary purpose stated upfront. There is no fluff or repetition; every sentence contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is quite complete for a low-complexity tool with no output schema: it explains inputs and core logic. The only minor gap is that it does not explicitly state whether the return value is a single URL string or a structured object.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description compensates for the 0% schema coverage by covering all four parameters: workbookUrl as required repository URL, viewName as optional/auto-resolved, workbookName as derivable from the URL, and useStaticPath as the format selector. The mapping is clear but not itemized.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it generates thumbnail URLs for a Tableau Public visualization, which is a specific verb and resource. It does not explicitly differentiate from sibling tools like get_workbook_image, so it falls one step short of full distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear usage context: recommends relying on auto-resolved view names because they often differ from workbook names, and explains how workbookName is derived when omitted. However, it never names alternative tools or states when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_visualizationsA
Searches Tableau Public for visualizations or authors matching a query. Returns ranked search results with titles, descriptions, authors, view counts, thumbnails, and direct URLs. The directUrl field provides a ready-to-use link to view each visualization on Tableau Public. Can search for either 'vizzes' (workbooks and visualizations) or 'authors' (content creators). Supports pagination with start and count parameters (max 100 results per request). Useful for content discovery, finding specific topics, and identifying relevant creators.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | ||
| count | Yes | ||
| query | Yes | ||
| start | Yes | ||
| language | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It details return fields ('titles, descriptions, authors, view counts, thumbnails, and direct URLs'), explains the directUrl utility, mentions the two search types ('vizzes' and 'authors'), and discloses pagination constraints ('max 100 results per request'). It does not cover rate limits or auth, but these are less critical for a public search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, front-loaded with the core purpose, and every sentence adds value. It avoids redundancy and fluff, efficiently covering purpose, return data, type options, pagination, and use cases.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity and lack of an output schema, the description provides sufficient context: it names the return fields, mentions pagination, and gives usage examples. It does not describe error handling or sorting order, but these are not essential for a search tool. The description is mostly complete for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is reported as 0%, so the description must compensate. It adds meaning for 'type' by explaining 'vizzes' vs 'authors' and for pagination via 'start and count parameters (max 100 results per request).' However, it does not explain 'query' beyond a general reference or 'language' at all. The description partially compensates but leaves notable gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Searches Tableau Public for visualizations or authors matching a query.' It specifies the resource (Tableau Public), the action (searches), and the scope (visualizations or authors). It also differentiates from sibling get_* tools by emphasizing search/discovery rather than direct retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for use: 'Useful for content discovery, finding specific topics, and identifying relevant creators.' It implies when to use the tool, but it does not explicitly mention alternatives or when not to use it. Without naming a sibling like get_workbooks_list, the guidance remains somewhat general.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unpack_twbxA
Extracts and analyzes the contents of a Tableau .twbx file. A .twbx is a packaged workbook containing the workbook XML (.twb), data extracts, and images. Returns the extraction path and a categorized inventory of all files. Categories: twb (workbook XML), data (extracts like .hyper/.tde), image (embedded images), other. Use with files downloaded via download_workbook_twbx tool.
| Name | Required | Description | Default |
|---|---|---|---|
| filePath | Yes | ||
| extractTo | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the transparency burden. It discloses that the tool extracts files and returns a path, but does not mention side effects like file system writes beyond the extraction path, cleanup behavior, or required permissions. This is basic transparency but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, using three sentences that front-load the main purpose and provide essential details (return type, categories, usage context). Every sentence contributes valuable information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description adequately explains the return value and categories, and mentions the download dependency. It lacks details on error handling, edge cases, or the exact scope of 'analyzes,' but is sufficient for a tool of this complexity given the schema descriptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although the context signal reports 0% schema coverage, the actual schema includes descriptions for both parameters (filePath and extractTo), providing sufficient semantics. The description itself adds no parameter-specific details, so the baseline of 3 is appropriate given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Extracts and analyzes the contents of a Tableau .twbx file.' It specifies the return value (extraction path and categorized inventory) and defines categories, distinguishing it from sibling tools that analyze specific aspects like calculated fields or structure.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context by stating 'Use with files downloaded via download_workbook_twbx tool,' implying the tool is for post-download analysis. It doesn't explicitly exclude alternatives but the focus on extraction and inventory makes it clear when to use this tool over more targeted siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
22 tool updates
v1.0.0- First observed
download_workbook_twbx - First observed
get_favorites - First observed
get_featured_authors - First observed
get_followers - First observed
get_following - First observed
get_related_workbooks - First observed
get_twbx_calculated_fields - First observed
get_twbx_calculation_dependencies - First observed
get_twbx_data_profile - First observed
get_twbx_lod_expressions - First observed
get_twbx_workbook_structure - First observed
get_user_profile - First observed
get_user_profile_basic - First observed
get_user_profile_categories - First observed
get_viz_of_day - First observed
get_workbook_contents - First observed
get_workbook_details - First observed
get_workbook_image - First observed
get_workbook_thumbnail - First observed
get_workbooks_list - First observed
search_visualizations - First observed
unpack_twbx
TDQS
Scored across 22 tools
Most tools target distinct resources and actions, but get_user_profile and get_user_profile_basic overlap on the same resource with differing detail, and get_workbook_image versus get_workbook_thumbnail could be confused. The descriptions clearly differentiate them, so ambiguity is limited.
Names consistently follow a verb_noun pattern with the majority using the get_ prefix. The exceptions (download_, unpack_, search_) are still action-oriented and snake_case, making the set predictable despite minor deviation.
With 22 tools, this server falls into the borderline heavy range (16–25). The breadth of the domain—profiles, workbooks, social discovery, and twbx analysis—justifies many tools, but some redundancy exists (e.g., two profile tools) that could be consolidated.
The server provides a comprehensive read-only surface for Tableau Public, covering user profiles, workbooks, social interactions, search, and deep twbx file analysis. There are no obvious gaps for the intended exploration and analysis use cases.
Maintenance
Related MCP Connectors
Read and edit GA4, Search Console and Google Tag Manager from any MCP client. 29 tools.
All public upAPI operations as MCP tools: web scraping, search, screenshots, PDF, OCR and more.
Create, schedule, and publish social posts, manage accounts, and read analytics as MCP tools.
- BasedashOAuthcom.basedash
Governed BI MCP. Ask questions of live company data and list workspace sources via OAuth.
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceEnables interaction with Tableau Cloud and Tableau Server through the REST API, supporting workbook management, view queries, extract refreshes, and content search operations.-
- FlicenseNot gradedqualityNot gradedmaintenanceEnables discovery, querying, and exporting of Tableau Cloud dashboards and data sources. Supports searching workbooks, filtering data, and exporting views as PDF, PNG, PowerPoint, CSV, or JSON.-
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to programmatically read, modify, and query Tableau workbook files (.twb and .twbx) on the local filesystem via 80 tools.8MIT
- AlicenseNot gradedqualityBmaintenance24 MCP tools for SEC financials, FRED economics, US Census demographics, and World Bank data via Streamable HTTP.MIT