Skip to main content
Glama
datalabs89

Tableau Public MCP Server

by datalabs89

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)

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 build

Quick 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.json

  • Windows: %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

get_user_profile

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

Profile API

get_user_profile_categories

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

Profile Categories API

get_user_profile_basic

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

Profile API

Workbook Tools (4)

Tool

Description

API Reference

get_workbooks_list

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)

Workbooks API

get_workbook_details

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

Workbook Details API

get_workbook_contents

Returns complete workbook structure with all sheets, dashboards, data sources, and detailed view information including descriptions, sheet types, and repository URLs

Workbook Contents API

get_related_workbooks

Returns up to 20 recommended workbooks based on content similarity, including titles, authors, view counts, and thumbnails

Related Workbooks API

Social Tools (3)

Tool

Description

API Reference

get_followers

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...)

Followers API

get_following

Returns paginated array of accounts the user follows with usernames, display names, bios, and their latest workbook details. Supports pagination (max 24 per request)

Following API

get_favorites

Returns array of workbook repository URLs that the user has favourited/bookmarked. Includes workbook metadata and URLs for accessing the visualisations

Favourites API

Discovery Tools (3)

Tool

Description

API Reference

search_visualizations

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

Search API

get_viz_of_day

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)

VOTD API

get_featured_authors

Returns list of featured authors (Hall of Fame Visionaries, Tableau Visionaries, or Ambassadors) with profile information, workbook counts, follower counts, and featured workbooks

Featured Authors API

Media Tools (2)

Tool

Description

API Reference

get_workbook_image

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

Workbook Image API

get_workbook_thumbnail

Returns URL to thumbnail-sized preview image of a visualisation. Requires workbookUrl and viewName. Smaller file size ideal for gallery views and previews

Workbook Thumbnail API

TWBX Analysis Tools (7)

Tool

Description

API Reference

download_workbook_twbx

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

Download Workbook API

unpack_twbx

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

get_twbx_calculated_fields

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

get_twbx_workbook_structure

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

get_twbx_calculation_dependencies

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

get_twbx_lod_expressions

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

get_twbx_data_profile

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

MAX_RESULT_LIMIT

Maximum results for paginated queries

1000

LOG_LEVEL

Logging verbosity (debug, info, warn, error)

info

API_TIMEOUT

Request timeout in milliseconds

30000

TABLEAU_PUBLIC_BASE_URL

Base URL for Tableau Public API

https://public.tableau.com

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.ts

Development 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 lint

Testing

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:watch

Test 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

/profile/api/{username}

User metadata and workbooks

Workbooks

/public/apis/workbooks

Workbook listings and details

Social

/profile/api/followers/

Followers, following, favourites

Search

/api/search/query

Content discovery

Discovery

/public/apis/bff/discover/

Featured content

Images

/views/ and /thumb/views/

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 install to 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.log

Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository

  2. Create a feature branch (git checkout -b feature/amazing-feature)

  3. Make your changes with tests

  4. Run tests and linting (npm test && npm run lint)

  5. Commit your changes (git commit -m 'Add amazing feature')

  6. Push to the branch (git push origin feature/amazing-feature)

  7. 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

License

MIT License - see LICENSE file for details

Acknowledgments

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 tools
download_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
workbookNameYes

TDQS

A3.9/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYes

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
countYes
indexYes
usernameYes

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
countYes
indexYes
usernameYes

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
twbFilePathYes
includeHiddenYes
includeDependenciesYes

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
twbFilePathYes
includeSourceFieldsYes

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
twbFilePathYes
extractionPathYes
includeImageProfileYes

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
twbFilePathYes
includeUsageContextYes

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
twbFilePathYes
includeFieldDetailsYes

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYes

TDQS

A3.9/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYes

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageSizeYes
usernameYes
startIndexYes

TDQS

A3.9/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYes
limitYes
filterYearYes
maxResultsYes
filterMonthYes

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
workbookNameYes

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
workbookNameYes

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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').

ParametersJSON Schema
NameRequiredDescriptionDefault
formatYes
qualityYes
maxWidthYes
viewNameYes
maxHeightYes
workbookUrlYes

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
countYes
startYes
usernameYes
visibilityYes

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNameYes
workbookUrlYes
workbookNameYes
useStaticPathYes

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYes
countYes
queryYes
startYes
languageYes

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYes
extractToYes

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 22 tool updatesv1.0.0
    • First observeddownload_workbook_twbx
    • First observedget_favorites
    • First observedget_featured_authors
    • First observedget_followers
    • First observedget_following
    • First observedget_related_workbooks
    • First observedget_twbx_calculated_fields
    • First observedget_twbx_calculation_dependencies
    • First observedget_twbx_data_profile
    • First observedget_twbx_lod_expressions
    • First observedget_twbx_workbook_structure
    • First observedget_user_profile
    • First observedget_user_profile_basic
    • First observedget_user_profile_categories
    • First observedget_viz_of_day
    • First observedget_workbook_contents
    • First observedget_workbook_details
    • First observedget_workbook_image
    • First observedget_workbook_thumbnail
    • First observedget_workbooks_list
    • First observedsearch_visualizations
    • First observedunpack_twbx

TDQS

A3.9/5.0

Scored across 22 tools

Disambiguation4/5

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.

Naming Consistency4/5

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.

Tool Count3/5

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.

Completeness5/5

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

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers