Skip to main content
Glama
krishna-goje

quicksight-mcp

by krishna-goje

QuickSight MCP Server

The most comprehensive AWS QuickSight MCP server -- with self-learning capability, chart builders, and built-in QA verification.

PyPI version License: Apache 2.0 Python 3.10+

Why This Server?

Other QuickSight MCP servers are either auto-generated API wrappers or limited to lineage queries. This server is extracted from a 4,800+ line production library, wrapping battle-tested patterns into 55 MCP tools.

Key Differentiators:

  • 55 purpose-built tools covering the full developer workflow: read, build, edit, verify, publish

  • Chart builders that create visuals from simple parameters (column + aggregation) -- no raw JSON needed

  • QA system with snapshot/diff to compare before and after any change

  • Post-write verification on every operation -- catches QuickSight's silent failures

  • Self-learning engine that tracks usage patterns and suggests optimizations

  • Production safety with auto-backup, optimistic locking, destructive change protection

Related MCP server: Salesforce MCP Server (Extended)

Quick Start

Installation

pip install quicksight-mcp

Or with uv:

uv pip install quicksight-mcp

Configuration

Add to your MCP client config (Claude Desktop, Cursor, etc.):

{
  "mcpServers": {
    "quicksight": {
      "command": "quicksight-mcp",
      "env": {
        "AWS_PROFILE": "your-profile",
        "AWS_REGION": "us-east-1"
      }
    }
  }
}

Or with uvx (no install needed):

{
  "mcpServers": {
    "quicksight": {
      "command": "uvx",
      "args": ["quicksight-mcp"],
      "env": {
        "AWS_PROFILE": "your-profile"
      }
    }
  }
}

Authentication

Uses the standard AWS credential chain:

  1. Environment variables (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)

  2. Named profile (AWS_PROFILE)

  3. IAM role (for EC2/Lambda)

  4. SSO credentials

The account ID is auto-detected from STS. Override with AWS_ACCOUNT_ID if needed.

Tools Reference (55 tools)

Datasets (8 tools)

Tool

Description

list_datasets

List all datasets with name, ID, and import mode

search_datasets

Search datasets by name (case-insensitive)

get_dataset

Get full metadata for a dataset (columns, tables, import mode)

get_dataset_sql

Get the SQL query powering a dataset

update_dataset_sql

Update dataset SQL with auto-backup and verification

refresh_dataset

Trigger SPICE refresh

get_refresh_status

Check SPICE refresh progress

list_recent_refreshes

Get refresh history for a dataset

Analysis Inspection (12 tools)

Tool

Description

list_analyses

List all analyses with status

search_analyses

Search analyses by name

describe_analysis

Get full structure: sheets, visuals, fields, parameters, datasets

list_visuals

List all visuals with types, titles, and sheet locations

list_calculated_fields

List all calculated fields with expressions

get_columns_used

Get column usage frequency across the analysis

get_parameters

List all parameter declarations

get_filters

List all filter groups with scope and conditions

get_analysis_raw

Get the complete raw analysis definition for inspection

verify_analysis_health

Run comprehensive health check (status, layouts, refs)

snapshot_analysis

Capture current state as baseline for QA

diff_analysis

Compare current state against a snapshot

Chart Builders (5 tools)

Create visuals from simple parameters -- no raw JSON needed.

Tool

Description

create_kpi

Create a KPI from column + aggregation

create_bar_chart

Create bar chart with category + value columns

create_line_chart

Create line chart with date + value + granularity

create_pivot_table

Create pivot table with row/value columns

create_table

Create flat table with column list

Visual Management (5 tools)

Tool

Description

get_visual_definition

Get the full raw definition of any visual

add_visual

Add a visual from JSON definition (for advanced use)

delete_visual

Delete a visual with layout cleanup

set_visual_title

Update a visual's display title

set_visual_layout

Set visual position and size on the grid

Sheet Management (5 tools)

Tool

Description

add_sheet

Add a new sheet to an analysis

delete_sheet

Delete a sheet and its visuals

rename_sheet

Rename an existing sheet

list_sheet_visuals

List all visuals on a specific sheet

replicate_sheet

Copy entire sheet with all visuals (batch, single API call)

Calculated Fields (4 tools)

Tool

Description

add_calculated_field

Add new calculated field to an analysis

update_calculated_field

Update a calculated field's expression

delete_calculated_field

Delete a calculated field

get_calculated_field

Get details of a specific calculated field

Parameters & Filters (4 tools)

Tool

Description

add_parameter

Add a parameter (string, integer, date, decimal)

delete_parameter

Delete a parameter by name

add_filter_group

Add a filter group with scope configuration

delete_filter_group

Delete a filter group

Dashboards (5 tools)

Tool

Description

list_dashboards

List all dashboards

search_dashboards

Search dashboards by name

get_dashboard_versions

List version history

publish_dashboard

Publish dashboard from analysis

rollback_dashboard

Rollback to a previous version

Backup & Restore (4 tools)

Tool

Description

backup_analysis

Backup analysis definition to JSON

backup_dataset

Backup dataset definition to JSON

restore_analysis

Restore analysis from backup file

clone_analysis

Clone analysis for safe testing

Self-Learning (2 tools)

Tool

Description

get_learning_insights

Show usage patterns and optimization suggestions

get_error_patterns

Show common errors and their frequencies

Developer Workflow

The server supports the full build-verify-publish cycle:

1. Build: Create Visuals from Simple Parameters

"Add a KPI showing total contracts to the SLA sheet"

create_kpi(
    analysis_id = "abc-123",
    sheet_id    = "sheet-456",
    title       = "Total Contracts",
    column      = "FLIP_TOKEN",
    aggregation = "COUNT",
    dataset_identifier = "acq_l2_flip_details"
)
→ Returns: {visual_id: "kpi_50ed988920b4", status: "UPDATE_SUCCESSFUL"}
"Add a weekly trend line chart"

create_line_chart(
    analysis_id = "abc-123",
    sheet_id    = "sheet-456",
    title       = "Weekly Contract Trend",
    date_column = "PURCHASE_AGREEMENT_COMPLETED_AT",
    value_column = "FLIP_TOKEN",
    value_aggregation = "COUNT",
    dataset_identifier = "acq_l2_flip_details",
    date_granularity = "WEEK"
)
"Add a market breakdown pivot table"

create_pivot_table(
    analysis_id = "abc-123",
    sheet_id    = "sheet-456",
    title       = "Market Breakdown",
    row_columns = "MARKET_NAME,ASSESSMENT_TYPE",
    value_columns = "FLIP_TOKEN,REVENUE",
    value_aggregations = "COUNT,SUM",
    dataset_identifier = "acq_l2_flip_details"
)

2. Verify: QA with Snapshot and Diff

# Before making changes -- capture baseline
snapshot_analysis("abc-123")
→ Returns: {snapshot_id: "snap_20260212_193448", visuals: 185, sheets: 20}

# Make your changes...
create_kpi(...)
create_bar_chart(...)

# After changes -- verify what changed
diff_analysis("abc-123", "snap_20260212_193448")
→ Returns: {
    visuals_added: [
      {type: "KPI", title: "Total Contracts"},
      {type: "BarChart", title: "Contracts by Market"}
    ],
    visuals_removed: [],
    visual_changes: [],
    old_visual_count: 185,
    new_visual_count: 187
  }

# Health check -- ensure nothing broke
verify_analysis_health("abc-123")
→ Returns: {
    healthy: true,
    checks: [
      {check: "analysis_status", ok: true},
      {check: "sheet_count", ok: true, count: 20},
      {check: "visual_layout_alignment", ok: true},
      {check: "calc_field_dataset_refs", ok: true}
    ]
  }

3. Publish: Push to Dashboard

# Publish when ready
publish_dashboard("dash-id", "abc-123", "Added KPI and bar chart for contracts")

# Rollback if something goes wrong
rollback_dashboard("dash-id", version_number=5)

Other Common Workflows

Update Dataset SQL:

search_datasets("WBR")                    → find dataset ID
get_dataset_sql("ds-123")                 → view current SQL
update_dataset_sql("ds-123", "new SQL")   → update with auto-backup
refresh_dataset("ds-123")                 → trigger SPICE reload
get_refresh_status("ds-123", "ing-456")   → monitor progress

Replicate an Entire Sheet:

describe_analysis("abc-123")                          → find source sheet ID
replicate_sheet("abc-123", "sheet-456", "My Copy")    → copies all visuals + layouts

Safe Testing with Clone:

clone_analysis("prod-id", "Test Copy")    → creates isolated copy
create_kpi("clone-id", ...)               → make changes on clone
verify_analysis_health("clone-id")        → verify
diff_analysis("clone-id", snapshot_id)    → review changes
[apply same changes to production]

Production Safety Features

Post-Write Verification

Every write operation verifies its changes actually persisted:

  • add_sheet verifies the sheet exists with the correct name

  • delete_sheet verifies the sheet was actually removed

  • create_kpi / create_bar_chart / etc. verify the visual exists

  • set_visual_title verifies the title matches

  • add_parameter verifies the parameter exists

  • replicate_sheet verifies both the sheet and the visual count

This catches QuickSight's silent failures where the API returns 200 OK but doesn't apply the change.

Auto-Backup

Every write operation automatically creates a timestamped JSON backup before making changes. Backups are saved to ~/.quicksight-mcp/backups/.

Optimistic Locking

When modifying an analysis, the server checks that no one else has modified it since you last read it. Prevents silently overwriting concurrent changes.

Destructive Change Protection

Updates that would delete all sheets, most visuals, or most calculated fields are blocked. Prevents accidental data loss from malformed definitions.

Failed Analysis Guard

The server refuses to update an analysis that is in FAILED status, preventing cascading failures on corrupted definitions. Restore from backup first.

QuickSight Limits

The server enforces QuickSight's 20-sheet-per-analysis limit, providing clear error messages instead of cryptic API failures.

Self-Learning Engine

The server learns from your usage patterns and gets smarter over time.

What It Tracks

  • Tool usage frequency and sequences

  • Common workflows (e.g., search -> get SQL -> update -> refresh)

  • Error patterns and their categories

  • Operation durations

What It Suggests

  • Workflow optimizations based on your common patterns

  • Caching improvements for frequently accessed resources

  • Known fixes for recurring errors

  • SQL syntax gotchas specific to QuickSight

All learning data is stored locally. No telemetry is sent anywhere.

Environment Variables

Variable

Default

Description

AWS_PROFILE

(none)

AWS named profile

AWS_REGION

us-east-1

AWS region

AWS_ACCOUNT_ID

(auto-detect)

QuickSight account ID

QUICKSIGHT_BACKUP_DIR

~/.quicksight-mcp/backups

Backup directory

QUICKSIGHT_MCP_LEARNING

true

Enable self-learning

QUICKSIGHT_MCP_LEARNING_DIR

~/.quicksight-mcp/

Learning data directory

LOG_LEVEL

INFO

Logging level

Architecture

quicksight-mcp/
  src/quicksight_mcp/
    server.py              # FastMCP entry point, lazy dependency init
    client.py              # QuickSight API wrapper with safety features
    exceptions.py          # Structured errors
    tools/
      datasets.py          # 8 dataset tools
      analyses.py          # 12 analysis + QA tools
      visuals.py           # 10 visual + chart builder tools
      sheets.py            # 5 sheet management tools
      calculated_fields.py # 4 calculated field tools
      parameters.py        # 2 parameter tools
      filters.py           # 2 filter tools
      dashboards.py        # 5 dashboard tools
      backup.py            # 4 backup/restore tools
      learning.py          # 2 self-learning tools
    learning/
      tracker.py           # Usage pattern recording
      optimizer.py         # Recommendation engine
      knowledge.py         # Local key-value knowledge store

The server uses lazy initialization -- the AWS client and learning engine are only created when the first tool call arrives, keeping startup instant.

Each tool module exposes a register_*_tools(mcp, get_client, get_tracker) function that attaches @mcp.tool handlers to the FastMCP server instance.

Development

git clone https://github.com/krishna-goje/quicksight-mcp.git
cd quicksight-mcp
pip install -e ".[dev]"
pytest

Running Tests

# All tests
pytest

# With coverage
pytest --cov=quicksight_mcp

# Specific module
pytest tests/test_learning.py

Linting

ruff check src/ tests/
ruff format src/ tests/

Author

Krishna Goje -- Staff Analytics Engineer | AI-Augmented Engineering

Background

14 years building data platforms at American Express, Grubhub, Booking.com, and Opendoor. Pioneered an AI-augmented engineering ecosystem connecting 15+ enterprise platforms with parallel agent orchestration and self-learning feedback loops.

Why This Project

This server is extracted from a 4,800+ line production library built over months of daily QuickSight work. Every safety feature exists because of a real production incident:

  • Auto-backup -- an update once wiped an analysis with no way to undo

  • Optimistic locking -- two sessions editing the same analysis silently overwrote each other

  • Change verification -- QuickSight's API returns 200 OK but sometimes doesn't apply the change

  • Destructive change protection -- a malformed definition update deleted all sheets from a live dashboard

  • Failed status guard -- updating a FAILED analysis caused cascading corruption

Open Source

Contributing

Contributions are welcome. Please open an issue first to discuss what you would like to change.

  1. Fork the repository

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

  3. Run the tests (pytest)

  4. Commit your changes

  5. Open a pull request

License

Apache 2.0 -- see LICENSE for details.

Available Tools

61 tools
add_calculated_fieldA
Destructive

Add a new calculated field to a QuickSight analysis.

WARNING: This modifies the analysis definition. A backup is automatically created before making changes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName for the new calculated field. Must be unique within the analysis.
expressionYesQuickSight expression using curly-brace field references. Examples: - sum({Revenue}) - {Price} * {Quantity} - ifelse({Status} = 'Active', 1, 0) - dateDiff({Start}, {End}, "DAY")
analysis_idYesThe QuickSight analysis ID.
dataset_identifierYesThe dataset identifier this field belongs to. Find available identifiers using describe_analysis (look at dataset_identifiers).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, so the bar is lower, yet the description still adds genuinely useful context: it modifies the analysis definition and an automatic backup is created beforehand. It omits whether the change is reversible and any permission requirements, but the backup disclosure is meaningful behavioral information beyond the annotation.

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?

Two short sentences with the purpose front-loaded and the mutation warning immediately after. Zero filler; every sentence earns its place.

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?

An output schema exists, so return values need not be explained, and annotations cover the destructive nature. With full schema coverage on a four-parameter tool, the description is nearly complete, lacking only usage routing and permission context.

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 100%, so all four parameters (including expression syntax examples and the dataset_identifier lookup hint) are already documented in the schema. The description adds nothing about parameters, so the baseline 3 applies.

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?

States a specific verb (Add), resource (calculated field), and target (QuickSight analysis), which cleanly separates it from get/update/delete/list_calculated_field siblings. It stops short of explicitly naming update_calculated_field as the alternative for existing fields, so it does not fully differentiate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No statement of when to use this versus update_calculated_field, no prerequisites (e.g. required permissions), and no conditions under which it should not be used. The reader must infer that 'Add a new' implies the field does not already exist.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_filter_groupB

Add a filter group to a QuickSight analysis.

WARNING: This modifies the analysis definition. A backup is automatically created before making changes.

ParametersJSON Schema
NameRequiredDescriptionDefault
analysis_idYesThe QuickSight analysis ID.
filter_group_definitionYesJSON string of the filter group. Must include FilterGroupId, Filters array, CrossDataset setting, and ScopeConfiguration. Example: {"FilterGroupId": "my-filter-group", "Filters": [{"CategoryFilter": {...}}], "CrossDataset": "SINGLE_DATASET", "ScopeConfiguration": { "SelectedSheets": { "SheetVisualScopingConfigurations": [ {"SheetId": "...", "Scope": "ALL_VISUALS"} ] } }, "Status": "ENABLED"}

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the behavioral burden. It does disclose that this mutates the analysis definition and that a backup is created automatically before changes, which is genuinely useful. It omits permission requirements, idempotency (what happens if the FilterGroupId already exists), and failure modes.

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?

Two short sentences, front-loaded with the action and followed by the warning. Nothing is wasted, though the warning could be more tightly phrased.

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?

An output schema exists, so return values need not be explained. However, for a mutation tool with zero annotations, the definition leaves gaps around permissions, overwrite behavior on a duplicate FilterGroupId, and failure conditions.

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 100% and the filter_group_definition description already includes a full example with required keys. The description adds no parameter-level meaning, so the baseline of 3 applies.

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 states a specific verb and resource ('Add a filter group to a QuickSight analysis'), which is unambiguous. It does not explicitly differentiate from the sibling delete_filter_group or get_filters, so it lands one notch below the top tier.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus alternatives such as delete_filter_group, nor any stated prerequisites. The only contextual note is the backup warning, which is behavior, not usage routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_parameterB

Add a parameter to a QuickSight analysis.

WARNING: This modifies the analysis definition. A backup is automatically created before making changes.

ParametersJSON Schema
NameRequiredDescriptionDefault
analysis_idYesThe QuickSight analysis ID.
parameter_definitionYesJSON string of the parameter declaration. Must contain one of: StringParameterDeclaration, IntegerParameterDeclaration, DecimalParameterDeclaration, or DateTimeParameterDeclaration. Example for a string parameter: {"StringParameterDeclaration": { "ParameterValueType": "SINGLE_VALUED", "Name": "market", "DefaultValues": {"StaticValues": ["All"]}, "ValueWhenUnset": {"ValueWhenUnsetOption": "RECOMMENDED_VALUE"} }}

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are supplied, so the description carries the full burden. It does add real value beyond the schema by flagging that the analysis definition is modified and that a backup is created automatically, which reassures the agent about recoverability. It stops short of stating the permissions required, whether the change is reversible beyond the backup, or how the parameter affects existing visuals.

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?

Two short blocks, action statement first, warning second — zero filler and the risky detail is front-loaded where an agent will see it.

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 an output schema and complete parameter documentation, so return values need not be explained. What remains missing is the surrounding operational context for a mutation on a live analysis definition: permission requirements and downstream effects on dependent visuals.

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 100%, and the parameter_definition field already documents the four allowed declaration types plus a full worked example, so the description adds nothing about parameters. Baseline 3 applies when the schema does the heavy lifting.

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?

States a specific verb (add) and resource (parameter) scoped to a QuickSight analysis, which is unambiguous on its own. It does not, however, distinguish itself from the sibling delete_parameter or explain how a parameter differs from a calculated field, which is the nearer confusion in this toolset.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no indication of when to reach for add_parameter versus add_calculated_field, add_filter_group, or the update_* siblings, and no prerequisites such as required analysis permissions or whether the analysis must be in a published/draft state. Only the mutation itself is described.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_sheetB

Add a new sheet to a QuickSight analysis.

WARNING: This modifies the analysis definition. A backup is automatically created before making changes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesDisplay name for the new sheet.
analysis_idYesThe QuickSight analysis ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are empty, so the description carries the full burden. It does usefully disclose the mutation ('modifies the analysis definition') and the automatic backup, which is real behavioral value. However it omits permissions requirements, whether sheet names must be unique, and whether the operation is idempotent — gaps that matter for a mutation tool with zero annotation coverage.

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?

Two short sentences, front-loaded with the action and followed by the risk warning. No filler. Slightly terse given the mutation risk, but structurally sound.

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?

An output schema exists, so return values need not be explained, and the mutation risk plus automatic backup are covered. For a 2-parameter tool this is largely complete, though permission/constraint context could be richer given the absent annotations.

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 100% and both parameters (name, analysis_id) are documented in the schema; the description adds no format, constraint, or uniqueness details beyond that. Baseline 3 is appropriate when the schema does all the work.

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?

States a specific verb+resource ('Add a new sheet to a QuickSight analysis'), which clearly distinguishes it from the delete_sheet, rename_sheet, and replicate_sheet siblings. It stops short of naming those alternatives explicitly, so it is clear but not maximally differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to add a sheet versus rename_sheet, replicate_sheet, or add_visual to an existing sheet, and no prerequisites or preconditions stated. The only contextual note is that a backup happens automatically, which is not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_visualB

Add a visual to a sheet in a QuickSight analysis.

WARNING: This modifies the analysis definition. A backup is automatically created before making changes.

ParametersJSON Schema
NameRequiredDescriptionDefault
sheet_idYesThe target sheet ID to add the visual to.
analysis_idYesThe QuickSight analysis ID.
visual_definitionYesJSON string of the visual definition. Must be a dict with one key being the visual type (e.g., {"KPIVisual": {...}}, {"BarChartVisual": {...}}). Get examples from get_visual_definition on existing visuals.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/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, and it does disclose one important trait: mutation of the analysis definition plus an automatic backup. It stops short of stating permission requirements, whether re-adding overwrites an existing visual, or failure behavior, so meaningful behavior remains undisclosed.

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?

Two tight sentences with the warning isolated on its own line, so the destructive-by-default nature is front-loaded. Efficient and free of padding, though the warning could be slightly more precise about scope of the change.

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?

An output schema exists, so return values need no explanation, and the schema fully covers parameters. For a mutation tool the description covers the essential safety context (backup) but omits permissions and conflict/overwrite semantics, so it is nearly complete rather than fully so.

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 100%, so all three parameters are already documented in the schema, including the required dict-shape of visual_definition and the pointer to get_visual_definition. The description adds no parameter meaning beyond that, making the baseline 3 appropriate.

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?

States a specific verb and resource ('Add a visual to a sheet in a QuickSight analysis'), so the action is unambiguous. However, it does not distinguish itself from siblings that also create visuals (create_kpi, create_bar_chart, create_line_chart, add_sheet), leaving the agent to infer when the generic definition-driven path is correct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no when-to-use guidance and never mentions the typed siblings (create_bar_chart, create_kpi, etc.) that appear to overlap. The only actionable hint about obtaining a definition lives in the schema, not the description, so the agent gets no routing help from this text.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

backup_analysisA
Idempotent

Save a full backup of a QuickSight analysis definition to disk.

Creates a timestamped JSON file containing the complete analysis definition (sheets, visuals, calculated fields, parameters, filters, etc.). Use restore_analysis to restore from a backup.

Backups are saved to ~/.quicksight-mcp/backups/.

ParametersJSON Schema
NameRequiredDescriptionDefault
analysis_idYesThe QuickSight analysis ID to back up.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only carry idempotentHint, so the description does real work: it discloses that a timestamped JSON file is written, what the file contains (sheets, visuals, calculated fields, parameters, filters), and the exact destination path. It does not say whether repeated calls accumulate new files or overwrite, which is the one behavior that would matter most given the timestamped naming.

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 short sentences, front-loaded with the core action and scope, then contents, then the companion tool and destination. No filler and no repetition of the schema.

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?

An output schema exists, so return values need not be explained, and the description covers purpose, content, destination, and restore pairing. The remaining gap is the overwrite/timestamp-accumulation question, which is not addressed anywhere in the structured data.

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?

With a single parameter at 100% schema description coverage, the schema already defines analysis_id fully. The description adds no format, identifier-source, or validation detail beyond the schema, so the baseline of 3 applies.

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 gives a specific verb and resource ('Save a full backup of a QuickSight analysis definition to disk') and enumerates what the backup contains. It is clear about scope, though it never differentiates itself from the similarly-named sibling snapshot_analysis (or backup_dataset), leaving the agent to guess which backup-style tool applies.

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 explicitly pairs the tool with its counterpart ('Use restore_analysis to restore from a backup'), which tells the agent the intended workflow. It stops short of stating when-not-to-use it versus snapshot_analysis, so the alternative-selection guidance is incomplete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

backup_datasetA
Idempotent

Save a full backup of a QuickSight dataset configuration to disk.

Creates a timestamped JSON file containing the dataset definition (SQL, columns, physical/logical table maps, etc.).

Backups are saved to ~/.quicksight-mcp/backups/.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataset_idYesThe QuickSight dataset ID to back up.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only cover idempotentHint, so the description carries most of the burden and delivers real detail: it produces a timestamped JSON file, writes to ~/.quicksight-mcp/backups/, and lists what the payload contains (SQL, columns, physical/logical table maps). It stops short of stating permission requirements or failure modes for large datasets.

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 action and outcome are front-loaded in the first sentence, followed by concise supporting detail on file format and location. Slightly padded by the parenthetical field list, but nothing is wasted.

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 one-parameter, low-risk tool with an output schema, the description supplies the essentials an agent needs: what is captured, the file format, and the on-disk location. It lacks only guidance on when the backup should be preferred over related read tools.

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?

Only one parameter and schema description coverage is 100%, so the schema fully documents dataset_id. The description adds no syntax or format detail for it, which is the expected baseline when the schema does the heavy lifting.

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?

States a specific verb (save/backup) and resource (QuickSight dataset configuration) with a clear target (disk). It is distinguishable from sibling tools such as get_dataset (read), snapshot_analysis/backup_analysis (analyses, not datasets), and restore_analysis.

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?

Usage is implied (back up a dataset before mutating it, given siblings like update_dataset_sql and update_dataset_definition), but the description never says when to use this versus get_dataset, snapshot_analysis, or backup_analysis, and names no exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cancel_refreshA
Destructive

Cancel a running SPICE dataset refresh.

Use this to stop a SPICE ingestion that is stuck in QUEUED or RUNNING state. Useful when old ingestions block new ones.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataset_idYesThe QuickSight dataset ID.
ingestion_idYesThe ingestion ID to cancel (from refresh_dataset or list_recent_refreshes).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, so the destructive nature is covered by structured data. The description usefully adds the state precondition (QUEUED or RUNNING) and the blocking rationale, but says nothing about what happens to partially ingested data, whether the cancellation is final, or what error occurs if the ingestion is already complete or not found.

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 core action is front-loaded in the first sentence, with two short follow-up sentences that each add distinct value (state precondition, motivation). No filler or restatement of the name.

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?

An output schema exists, so return-value explanation is unnecessary, and parameters are fully covered by the schema. The description supplies the state and motivation context an agent needs to decide to call it; only post-cancellation behavior/error cases are absent.

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 100%, so both dataset_id and ingestion_id are already documented, including the hint that ingestion_id comes from refresh_dataset or list_recent_refreshes. The description adds no parameter-level detail beyond the schema, which matches the baseline for fully covered schemas.

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?

States a specific verb (Cancel) and resource (a running SPICE dataset refresh), scoped to the ingestion rather than the dataset definition itself. This clearly distinguishes it from siblings like refresh_dataset (which starts an ingestion) and get_refresh_status (which only reads state).

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?

Gives explicit when-to-use conditions: ingestions stuck in QUEUED or RUNNING, and the motivating scenario where old ingestions block new ones. It does not explicitly name or compare against alternatives such as get_refresh_status or letting the ingestion finish, so it stops short of full alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

clone_analysisA

Clone a QuickSight analysis for safe experimentation.

Creates a full copy of the analysis with a new name and ID. The clone includes all sheets, visuals, calculated fields, parameters, and filters. Use this to test changes without affecting the original.

Best practice workflow:

  1. clone_analysis to create a test copy

  2. Make and test changes on the clone

  3. When satisfied, publish_dashboard from the clone

  4. Delete the clone when done

ParametersJSON Schema
NameRequiredDescriptionDefault
new_nameYesName for the cloned analysis. Example: "WBR Weekly - Test Copy"
source_analysis_idYesThe analysis ID to clone.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are empty, so the description carries the full burden: it discloses that the clone gets a new name and ID, lists all copied components, and states the original is unaffected. It omits permission requirements, size limits, and whether the clone counts against quotas, leaving some behavioral gaps.

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?

Front-loads the one-line purpose before the detail and workflow. The numbered workflow is slightly verbose but each step maps to a real action, so little is wasted.

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?

An output schema exists, so return values need not be explained, and the description covers what is cloned and the intended workflow. It is complete for invocation, with only minor gaps around permissions and side effects.

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 100% with only two required params, so the schema already documents them fully. The description reinforces that a new name is assigned but adds no format or constraint detail beyond the schema, warranting the baseline 3.

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?

States a specific verb (clone) and resource (QuickSight analysis) plus its purpose, and elaborates exactly what is copied (sheets, visuals, calculated fields, parameters, filters). It does not explicitly distinguish itself from similar siblings such as backup_analysis or snapshot_analysis, which an agent may confuse it with.

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 explicit context ('test changes without affecting the original') and a numbered best-practice workflow ending in publish_dashboard and deleting the clone. No exclusions or named alternatives (e.g., vs snapshot_analysis) are given, so it is clear but not fully routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_bar_chartC

Create a bar chart from simple parameters.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesDisplay title.
sheet_idYesThe sheet to add the chart to.
analysis_idYesThe QuickSight analysis ID.
orientationNoVERTICAL (default) or HORIZONTAL.VERTICAL
value_columnYesMeasure column for Y-axis (e.g., "FLIP_TOKEN").
format_stringNo
category_columnYesDimension column for X-axis (e.g., "MARKET_NAME").
show_data_labelsNo
value_aggregationYesSUM, COUNT, AVG, etc.
dataset_identifierYesThe dataset identifier.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/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 says only 'from simple parameters' and never discloses that this is a mutating operation that adds a visual to an existing sheet, nor any permission or side-effect implications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence is front-loaded and not padded, but the phrase 'from simple parameters' is vague filler rather than useful information. It is concise but under-informative.

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?

With 10 parameters (7 required), an output schema, and no annotations, the description should clarify the mutation semantics and the relationship between analysis_id and sheet_id. Instead it leaves the agent to derive all of this from the schema alone.

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 coverage is 80%, so the schema already documents most parameters (analysis_id, sheet_id, category/value columns, aggregation). The description adds nothing beyond the schema, so the baseline of 3 applies.

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 states a specific verb and resource (create a bar chart), which is clear on its own. However, it offers no differentiation from the many sibling chart/visual creators like create_line_chart, create_pie_chart, create_combo_chart, and add_visual.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose a bar chart over a line, pie, or combo chart, nor any mention of prerequisites such as the target analysis/sheet needing to exist. The agent must infer usage entirely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_combo_chartB

Create a combo chart (bars + line on same chart) from simple parameters.

A combo chart overlays bar values and line values sharing a category axis. For example, count bars with a percentage line overlay.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesDisplay title.
sheet_idYesThe sheet to add the chart to.
bar_columnYesMeasure column rendered as bars (e.g., "FLIP_TOKEN").
analysis_idYesThe QuickSight analysis ID.
line_columnYesMeasure column rendered as a line (e.g., "CONVERSION_RATE").
bar_aggregationYesAggregation for bar values (SUM, COUNT, AVG, etc.).
category_columnYesDimension column for the shared X-axis (e.g., "MARKET_NAME" or "WEEK_DATE").
line_aggregationYesAggregation for line values (SUM, COUNT, AVG, etc.).
show_data_labelsNoShow value labels on bars and line points.
bar_format_stringNoDisplay format for bar values (e.g., "#,##0"). Leave empty for default formatting.
dataset_identifierYesThe dataset identifier.
line_format_stringNoDisplay format for line values (e.g., "0.0%"). Leave empty for default formatting.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It says nothing about permissions, whether the chart is persisted to the sheet, error behavior for invalid column/aggregation combinations, or whether the operation is reversible/removable (e.g., via delete_visual). For a mutation tool with zero annotation coverage this is a significant gap.

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?

Short and front-loaded: the action comes first, followed by a one-sentence clarifying definition and an example. The second sentence is borderline redundant with the parenthetical in sentence one, but it earns its place by disambiguating the 'sharing a category axis' semantics.

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?

An output schema exists, so return values need not be described. However, for a 12-parameter, 9-required mutation tool with no annotations, the description does not cover prerequisites or constraints (e.g., that line and bar columns must be measures compatible with the aggregation, or that the sheet must belong to the given analysis). Adequate but with clear gaps.

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 100% with 12 well-documented parameters, so the schema already explains columns, aggregations, and format strings. The description adds nothing about parameters beyond a vague 'from simple parameters', leaving the baseline of 3 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 states a specific verb and resource ('Create a combo chart') and then defines the concept as 'bars + line on same chart', which cleanly distinguishes it from the sibling create_bar_chart and create_line_chart tools. An agent can tell what it produces without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The example ('count bars with a percentage line overlay') implies a use case but there is no explicit when-to-use-this-vs-a-simple-bar-or-line-chart guidance, nor any prerequisites such as needing an existing sheet, analysis, and dataset. No exclusions or alternatives are named despite the many sibling chart creators.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_datasetB
Destructive

Create a new QuickSight dataset from a SQL query.

ParametersJSON Schema
NameRequiredDescriptionDefault
sqlYesThe SQL query for the dataset. Must be valid SQL for the target data source (e.g., Snowflake, Redshift).
nameYesHuman-readable dataset name.
import_modeNo'SPICE' (cached, default) or 'DIRECT_QUERY' (live).SPICE
data_source_arnYesARN of the QuickSight data source to query. Find this in the QuickSight console or via AWS CLI.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The only annotation is destructiveHint=true, and the description adds nothing about behavior beyond the annotation: it does not say whether naming collisions fail, whether the data source must be reachable, what permissions are required, or whether a refresh follows creation. For a creation tool that mutates account state, that is a significant omission.

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?

A single, front-loaded sentence with no filler; the verb and resource come first. Nothing is wasted.

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?

An output schema exists so return values need not be described, and all four parameters are documented in the schema. However, in a toolset of this size, a create tool should at least say when it applies and what it requires; the description is adequate but thin.

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 100%, and the schema itself explains SQL validity, import_mode semantics, and how to obtain the data_source_arn. The description contributes no additional parameter meaning, so the baseline 3 applies.

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?

States a specific verb and resource ('Create a new QuickSight dataset') plus the input source ('from a SQL query'), so the agent knows exactly what is produced. No sibling performs the same create-dataset action, but the description never distinguishes itself from adjacent tools like clone_analysis or backup_dataset.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this instead of update_dataset_definition, update_dataset_sql, or clone_analysis, and no prerequisites or preconditions are mentioned. The agent must infer usage purely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_kpiC

Create a KPI visual from simple parameters.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesDisplay title (e.g., "Total Contracts").
columnYesColumn name (e.g., "FLIP_TOKEN").
sheet_idYesThe sheet to add the KPI to.
aggregationYesSUM, COUNT, AVG, MIN, MAX, or DISTINCT_COUNT.
analysis_idYesThe QuickSight analysis ID.
format_stringNoDisplay format (e.g., "#,##0", "$#,##0.00", "0.0%"). Leave empty for default formatting.
conditional_formatNoJSON string of color rules. Example: '[{"condition": ">= 100", "color": "#2CAF4A"}, {"condition": "< 50", "color": "#DE3B00"}]' Leave empty for no conditional formatting.
dataset_identifierYesThe dataset identifier.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/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 but offers almost none. It implies a mutation ('Create'), yet does not state required permissions, side effects, whether the KPI is added to an existing sheet, or any failure modes.

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 a single, front-loaded sentence with no wasted preamble. While 'from simple parameters' is somewhat vague filler, the overall structure is efficient and easy to scan.

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?

For a mutation tool with no annotations and eight parameters, the description is too thin. Although an output schema exists and the input schema is fully documented, an agent still lacks context about what a KPI visual is, where it gets placed, or what prerequisites exist beyond the schema fields.

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 input schema has 100% description coverage, so the baseline is 3. The description adds no meaning beyond what the schema already provides for the eight parameters; 'simple parameters' is not parameter semantics.

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 states a specific verb and resource: 'Create a KPI visual', which clearly identifies the action and the artifact. It distinguishes this tool from sibling visual creators like create_bar_chart or create_line_chart by naming the KPI type, though it does not explicitly contrast them or clarify scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives such as add_visual or other create chart tools. No prerequisites, conditions, or exclusions are mentioned; the phrase 'from simple parameters' provides no actionable selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_line_chartC

Create a line chart from simple parameters.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesDisplay title.
sheet_idYesThe sheet to add the chart to.
analysis_idYesThe QuickSight analysis ID.
date_columnYesDate column for X-axis.
value_columnYesMeasure column for Y-axis.
format_stringNo
date_granularityNoDAY, WEEK, MONTH, QUARTER, or YEAR.WEEK
show_data_labelsNo
value_aggregationYesSUM, COUNT, AVG, etc.
dataset_identifierYesThe dataset identifier.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, and it discloses nothing: not that this mutates the analysis, not the required permissions, not whether the chart is persisted to the given sheet, and not what happens on invalid column or aggregation values. Only 'from simple parameters' hints that inputs are lightweight, which is not meaningful disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single front-loaded sentence with no padding, but the brevity comes from under-specification rather than efficient communication — 'from simple parameters' is filler that consumes a clause without conveying information.

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?

For a 10-parameter, 7-required mutation tool with no annotations, the description is far too thin. It never explains how analysis_id, sheet_id, and dataset_identifier relate, how date_column/value_column map to axes and granularity, or what the returned chart reference looks like — even though an output schema exists, the input contract is left to the schema alone.

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 80%, so the schema already documents most parameters (title, sheet_id, analysis_id, date_column, value_column, value_aggregation, dataset_identifier), warranting the baseline 3. However, the description adds no syntax, format, or dependency detail, and leaves format_string and show_data_labels undocumented in both places.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb+resource ('Create a line chart') is unambiguous, but it largely restates the tool name and adds the empty qualifier 'from simple parameters'. It never distinguishes this tool from the many sibling chart creators (create_bar_chart, create_pie_chart, create_combo_chart, create_kpi) or explains when a line chart is the right visual choice.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites (e.g., must the sheet/analysis already exist), and no mention of the sibling chart-creation tools. The agent is left to infer selection entirely from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_pie_chartC

Create a pie chart from simple parameters.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesDisplay title.
sheet_idYesThe sheet to add the chart to.
analysis_idYesThe QuickSight analysis ID.
group_columnYesDimension column for pie slices (e.g., "MARKET_NAME").
value_columnYesMeasure column for slice sizes (e.g., "REVENUE").
format_stringNoDisplay format (e.g., "#,##0", "$#,##0.00", "0.0%"). Leave empty for default formatting.
value_aggregationYesSUM, COUNT, AVG, MIN, MAX, or DISTINCT_COUNT.
dataset_identifierYesThe dataset identifier.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing. 'Create' implies a mutation to the analysis, but the description does not say whether it modifies the analysis definition, what permissions are needed, whether the operation is reversible, or how it interacts with the referenced dataset/sheet. Only the bare mutation semantic is conveyed.

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?

A single short sentence, front-loaded with the verb and resource, which is appropriately sized. The phrase 'from simple parameters' is filler that does not earn its place, keeping it just short of a 5.

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?

This is a complex mutation tool with 8 parameters (7 required) that references an analysis, sheet, and dataset, yet the description explains none of that context. An output schema exists so return values need not be described, but the absence of any prerequisite or scoping information leaves the definition incomplete for correct 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 100%, so all eight parameters are already documented in the schema, giving a baseline of 3. The description adds nothing beyond that — 'simple parameters' is vague and does not explain the relationship between group_column, value_column, value_aggregation, or the required analysis_id/sheet_id/dataset_identifier set.

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?

States a specific verb and resource ('Create a pie chart'), so an agent immediately knows the operation. However, it does nothing to distinguish this tool from siblings like create_bar_chart, create_line_chart, or create_combo_chart beyond the chart type name, and the trailing phrase 'from simple parameters' adds no discriminating information.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose a pie chart over the sibling chart-creation tools, nor any mention of prerequisites such as the analysis or sheet having to exist first. The description is silent on all usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_pivot_tableC

Create a pivot table from simple parameters.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesDisplay title.
sheet_idYesThe sheet to add the table to.
analysis_idYesThe QuickSight analysis ID.
row_columnsYesComma-separated dimension columns for rows (e.g., "MARKET_NAME,ASSESSMENT_TYPE").
value_columnsYesComma-separated measure columns for values (e.g., "FLIP_TOKEN,REVENUE").
dataset_identifierYesThe dataset identifier.
value_aggregationsYesComma-separated aggregations, one per value (e.g., "COUNT,SUM").

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/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 does not state that this is a mutating operation, what permissions or IDs are required, what happens to the target sheet, or how errors are surfaced; only the word 'Create' implies mutation.

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 definition is a single front-loaded sentence with no unnecessary repetition. However, 'from simple parameters' is vague filler and the brevity comes at the cost of useful detail.

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?

For a 7-parameter required mutation tool with no annotations, the description is too thin. The output schema means return values need not be explained, but the description omits routing guidance, prerequisites, and behavioral context that an agent would need before invoking it.

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 100%, so all seven parameters are documented in the schema. The description adds no meaning beyond 'simple parameters' and does not explain relationships such as analysis_id/sheet_id or the row/value/aggregation structure. Baseline 3 is appropriate.

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 has a clear verb+resource: 'Create a pivot table.' It does not distinguish the tool from the many sibling creation tools such as create_table, create_kpi, or create_bar_chart, and the phrase 'from simple parameters' adds no specific scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance is provided. The description does not mention alternatives, prerequisites, or the circumstances under which a pivot table should be chosen over create_table or a calculated field.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_tableC

Create a flat table visual from simple parameters.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesDisplay title.
columnsYesComma-separated column names to display (e.g., "FLIP_TOKEN,MARKET_NAME,PURCHASE_AGREEMENT_COMPLETED_AT").
sheet_idYesThe sheet to add the table to.
analysis_idYesThe QuickSight analysis ID.
dataset_identifierYesThe dataset identifier.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden, and it discloses almost nothing. "Create" implies a write, but there is no statement about permissions, whether an existing table is replaced, what happens to the target sheet, or any side effect. Only the implied mutation verb gives it any credit.

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?

A single short sentence that is front-loaded with the action and resource. It loses a point for the trailing "from simple parameters," which is vague filler rather than useful information.

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?

An output schema exists, so return values need not be explained, and the schema fully documents the parameters. What is missing is behavioral context for a mutating tool with no annotations: placement/ordering of the created table, permission requirements, and overwrite semantics are all unaddressed.

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 100%, so all five parameters (title, columns, sheet_id, analysis_id, dataset_identifier) are already documented in the schema, including the comma-separated column format. The description adds no parameter meaning beyond "simple parameters," so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a verb and resource ("Create a flat table visual"), and the word "flat" loosely differentiates it from the sibling create_pivot_table. However, it never names an alternative, and "from simple parameters" is filler that adds no specificity about scope or behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no mention of prerequisites, and no routing to the many sibling visual-creation tools (create_kpi, create_bar_chart, create_pivot_table, add_visual). The agent must infer that this is the right tool for a flat table purely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_calculated_fieldA
Destructive

Delete a calculated field from a QuickSight analysis.

WARNING: This is destructive. If the field is used by any visuals or other calculated fields, those references will break. Check get_columns_used first to understand the impact.

A backup is automatically created before deletion.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesExact name of the calculated field to delete.
analysis_idYesThe QuickSight analysis ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond destructiveHint=true by naming the concrete failure mode (references in visuals and other calculated fields break) and disclosing that a backup is automatically created. These are operationally important facts an agent cannot derive from annotations or schema.

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?

Front-loads the one-line purpose, then the destructive warning, then the mitigation tool, then the backup reassurance. 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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a destructive annotation, full schema coverage, and an output schema present, the description supplies exactly the missing pieces: blast radius, a verification tool, and backup behavior. Nothing needed for correct invocation is absent.

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 100% and both parameters (name, analysis_id) are documented in the schema, so the description adds no parameter-level detail. Baseline 3 applies when structured fields already do the work.

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?

States a specific verb (delete) and resource (calculated field) scoped to a QuickSight analysis, distinguishing it cleanly from its siblings add_calculated_field, update_calculated_field, and list_calculated_fields.

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?

Explicitly tells the agent to run get_columns_used first to assess impact, which is actionable prerequisite guidance naming a sibling tool. It stops short of stating when deletion should be avoided altogether versus using update_calculated_field instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_empty_sheetsA
Destructive

Delete all empty sheets (0 visuals) from an analysis.

Use this to clean up orphan sheets left by failed operations. Automatically removes filter groups scoped to deleted sheets.

WARNING: This is destructive. A backup is automatically created.

ParametersJSON Schema
NameRequiredDescriptionDefault
analysis_idYesThe QuickSight analysis ID.
name_containsNoIf set, only delete empty sheets whose name contains this text (case-insensitive). Leave empty to delete ALL empty sheets.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare destructiveHint=true, so the description carries meaningful extra weight: it discloses a cascade side effect ('automatically removes filter groups scoped to deleted sheets') and a safety net ('a backup is automatically created'). Those are exactly the behavioral facts an agent needs before invoking a destructive bulk tool and are not derivable from the annotation.

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?

Four short lines, front-loaded with the action and scope before context, side effects and warning. The 'WARNING: This is destructive' clause partially restates the destructiveHint annotation, so it is slightly less economical than it could be, though pairing it with the backup note justifies its place.

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?

With an output schema present, return values need no explanation, and the description covers scope, cascade behavior and backup creation. Minor gaps remain: no statement of required permissions, and no note of what happens when the analysis contains no empty sheets.

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 100% and both parameters (analysis_id, name_contains) are fully documented in the schema, including the default and case-insensitive behavior. The description's 'all empty sheets' phrasing only implicitly confirms the no-filter default, adding no real semantics beyond the schema, so the baseline 3 applies.

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?

States a specific verb and resource ('Delete all empty sheets') and operationalizes the target with '(0 visuals) from an analysis,' which an agent can act on immediately. It is clearly distinct from the single-sheet sibling delete_sheet by its bulk, predicate-based scope.

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?

Names the triggering situation explicitly ('clean up orphan sheets left by failed operations'), which is strong context. It does not, however, state when NOT to use it (e.g., prefer delete_sheet for a single named sheet) or mention any prerequisites such as permissions on the parent analysis.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_filter_groupA
Destructive

Delete a filter group from a QuickSight analysis.

WARNING: This is destructive. Removing a filter group may change what data is displayed in affected visuals. A backup is automatically created before deletion.

ParametersJSON Schema
NameRequiredDescriptionDefault
analysis_idYesThe QuickSight analysis ID.
filter_group_idYesThe ID of the filter group to delete.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare destructiveHint=true generically. The description adds real behavioral context: what actually breaks (data displayed in affected visuals changes) and that a backup is automatically created before deletion. That is meaningful disclosure beyond the annotation.

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 tight lines: purpose first, then a bolded WARNING, then the mitigating backup fact. Every sentence earns its place and the destructive nature is front-loaded.

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?

An output schema exists so return values need no explanation, and the description covers impact and backup behavior. It stops short of noting permissions or recovery path for the backup, which would complete the picture for a destructive operation.

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 100% with only two simple string params, so the description correctly does not duplicate them. However, it adds no extra meaning about ID sources or format, so baseline 3 applies.

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?

States a specific verb (Delete) and resource (filter group) scoped to a QuickSight analysis, which separates it cleanly from sibling add_filter_group and from delete_visual/delete_parameter. An agent knows exactly what object type is being removed.

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?

Usage is implied by the destructive warning, but the description never states when to delete versus alternatives (e.g., disabling or editing the filter group, or whether backup_analysis should be run first). No explicit when-not guidance is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_parameterA
Destructive

Delete a parameter from a QuickSight analysis.

WARNING: This is destructive. If the parameter is used by filters, calculated fields, or controls, those references will break. Check get_parameters first to understand dependencies.

A backup is automatically created before deletion.

ParametersJSON Schema
NameRequiredDescriptionDefault
analysis_idYesThe QuickSight analysis ID.
parameter_nameYesExact name of the parameter to delete.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare destructiveHint=true, while the description adds real behavioral context: cascading breakage of filters/calculated fields/controls, the recommended pre-check, and the important fact that a backup is automatically created before deletion. This is exactly the value the description should add.

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?

Front-loads the action, then a clearly delineated WARNING, remediation, and a reassurance about backups. Four short sentences, each carrying distinct information, with zero filler.

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?

An output schema exists so return values need no explanation. For a destructive two-parameter mutation, the description covers blast radius, prerequisites, and recovery, leaving nothing an agent needs to know before calling it.

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 100%, so both analysis_id and parameter_name are already documented in the schema. The description adds no syntax or format meaning beyond that, which matches the baseline 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?

States a specific verb (Delete) plus resource (parameter) and scope (from a QuickSight analysis). It is clearly distinguishable from the many other delete_* siblings such as delete_calculated_field, delete_visual, and delete_sheet.

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?

Explicitly directs the agent to 'Check get_parameters first to understand dependencies,' naming the concrete alternative prerequisite. It does not state when-not to use the tool, so it falls just short of the top tier.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_sheetA
Destructive

Delete a sheet from a QuickSight analysis.

WARNING: This is destructive. All visuals on the sheet will be removed. A backup is automatically created before deletion.

ParametersJSON Schema
NameRequiredDescriptionDefault
sheet_idYesThe ID of the sheet to delete.
analysis_idYesThe QuickSight analysis ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

destructiveHint=true already tells the agent this is a destructive write, but the description adds genuinely new behavioral context: all visuals on the sheet are removed and a backup is automatically created first. That recoverability detail is not derivable from annotations or schema. It stops short of 5 because it says nothing about permissions or whether the backup must be named/retrieved.

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 short lines: purpose first, then a clearly flagged WARNING with the consequence and the safety net. Every sentence earns its place and the risk is front-loaded rather than buried.

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?

An output schema exists, so return values need not be explained, and the annotations plus description cover the mutation's risk profile well. The only minor gap is that the description does not mention prerequisites such as required permissions on the analysis.

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 100% for both analysis_id and sheet_id, so the schema already carries the parameter burden. The description adds no syntax, format, or lookup guidance beyond that, making the baseline 3 appropriate.

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?

States a specific verb and resource ('Delete a sheet from a QuickSight analysis'), which immediately separates it from add_sheet, rename_sheet, and replicate_sheet. It does not, however, explicitly distinguish itself from the nearest sibling, delete_empty_sheets, so it stops short of a 5.

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?

Usage is implied by the operation name and the destructive warning, but there is no explicit when-to-use or when-not-to-use guidance, and no mention of the alternative bulk sibling delete_empty_sheets. The warning implies 'use deliberately,' which is thin guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_visualA
Destructive

Delete a visual from a QuickSight analysis.

WARNING: This is destructive. The visual and its layout element will be removed. A backup is automatically created before deletion.

ParametersJSON Schema
NameRequiredDescriptionDefault
visual_idYesThe ID of the visual to delete.
analysis_idYesThe QuickSight analysis ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The destructiveHint annotation already flags this as a write operation, but the description adds real value beyond it: it discloses that the layout element is removed alongside the visual (a side effect not obvious from the name) and that a backup is automatically created first. It stops short of permissions or reversibility details, so 4 rather than 5.

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?

One sentence of purpose followed by a front-loaded WARNING block. Every sentence carries information an agent needs (destructive, layout element removal, automatic backup), 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?

With annotations covering the safety profile and an output schema covering return values, the description only needs to convey destructive semantics — which it does, including the backup guarantee. It is slightly thin on preconditions (e.g., whether the analysis must be in an editable state), but nothing essential is missing.

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 100% and both required parameters are documented in the schema itself. The description adds no syntax, format, or constraint detail beyond what the schema already provides, so the baseline of 3 applies.

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 a specific verb ('Delete') and resource ('a visual from a QuickSight analysis'), which cleanly separates it from delete_sheet, delete_empty_sheets, and delete_calculated_field. An agent can identify the operation without opening the schema.

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?

Usage is implied by the delete verb and the analysis_id/visual_id scope, but there is no explicit when-to-use, when-not-to-use, or prerequisite guidance. Since no sibling tool performs visual deletion, the lack of alternatives is tolerable, keeping this at minimum-viable rather than poor.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

describe_analysisA
Read-only

Get a structured summary of a QuickSight analysis.

Returns an overview of the analysis structure without the full raw definition -- ideal for understanding what an analysis contains before making changes.

ParametersJSON Schema
NameRequiredDescriptionDefault
analysis_idYesThe QuickSight analysis ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds useful scope information by clarifying that the output is an overview rather than the full raw definition, but it says nothing about size limits, latency, or auth requirements. With annotations carrying the safety burden, this is adequate but not rich.

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?

Two sentences, front-loaded with the core action and followed by a scoping clarification. No filler, though the em-dash clause could be tightened. Efficient overall.

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 single-parameter read tool with annotations and an output schema, the definition covers what the tool does and why to use it. Nothing essential is missing, though a note on output format or comparison to closely-related siblings would improve it further.

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?

There is a single parameter (analysis_id) with 100% schema description coverage, so the schema already documents it fully. The description contributes no additional parameter meaning, making the baseline 3 correct.

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?

States a specific verb and resource ('Get a structured summary of a QuickSight analysis') and explicitly distinguishes itself from the raw variant by noting it returns an overview 'without the full raw definition.' An agent can separate it from get_analysis_raw without opening either schema.

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 context: 'ideal for understanding what an analysis contains before making changes.' This tells the agent when the tool is appropriate, though it doesn't state explicit exclusions or name alternatives beyond the implicit contrast with the raw definition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

diff_analysisA
Read-only

Compare current analysis state against a previous snapshot.

Use AFTER making changes to see what was added, removed, or modified. This is the QA reviewer -- ensures changes had the intended effect and nothing unexpected broke.

ParametersJSON Schema
NameRequiredDescriptionDefault
analysis_idYesThe QuickSight analysis ID.
snapshot_idYesThe snapshot_id from a previous snapshot_analysis call.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true already tells the agent this is a safe read, so the description's job is to add context — and it does, framing the tool as a QA check that surfaces added/removed/modified deltas and states the ordering prerequisite (must follow snapshot_analysis and a change). It does not describe output format or failure modes, but the output schema covers returns.

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?

Two short paragraphs, front-loaded with the core action and followed by the when-to-use condition. The "QA reviewer" line is mildly flourishy but reinforces intent rather than wasting space.

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?

With annotations covering the safety profile and an output schema explaining the delta result, the description needs only to say what is compared and when. It covers both, though it could note what the diff does when no changes occurred.

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 100%, so both parameters (analysis_id, snapshot_id) are already documented, including that snapshot_id comes from a prior snapshot_analysis call. The description adds no syntax, format, or matching semantics beyond the schema, so baseline 3 applies.

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?

States a specific verb (compare) and resource (current analysis state vs a previous snapshot), and implicitly distinguishes itself from snapshot_analysis by referencing the snapshot it consumes. An agent can tell what this tool returns without opening the schema.

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?

"Use AFTER making changes to see what was added, removed, or modified" gives a clear temporal trigger and intent. It does not name an explicit alternative or a when-not-to-use case, so it falls just short of 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_analysis_rawA
Read-only

Get the complete raw analysis definition for inspection.

Returns the full Definition dict exactly as stored by AWS. This is useful for debugging, manual inspection, or extracting complex structures (visual definitions, filter groups, etc.) that can be passed to other tools.

WARNING: The output can be very large for complex analyses.

ParametersJSON Schema
NameRequiredDescriptionDefault
analysis_idYesThe QuickSight analysis ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint already declaring the safety profile, the description still adds real behavioral value: it returns the Definition dict verbatim as stored by AWS, and it warns that output can be very large for complex analyses. It omits any mention of auth/permission requirements or whether the raw structure is safe to feed back into update tools despite suggesting that use case.

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?

Front-loaded with the core action, then rationale, then the size warning at the end — a sensible ordering. The 'Return the full Definition dict exactly as stored by AWS' sentence is slightly redundant with the opening line but earns its place by specifying verbatim output.

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, single-parameter tool with an output schema present, the description covers purpose, intended use, and the key operational risk (large output). What remains missing is any pointer on how to obtain a valid analysis_id or which sibling to prefer for a lighter-weight view.

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 coverage is 100% and the single analysis_id parameter is fully documented in the schema, so the baseline of 3 applies. The description adds no format, source, or ID-discovery guidance beyond what the schema already provides.

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?

States a specific verb and resource ('Get the complete raw analysis definition') and qualifies it with 'raw' and 'exactly as stored by AWS', which separates it somewhat from describe_analysis and snapshot_analysis. However, it never names a sibling tool or contrast case, so an agent still has to infer when raw retrieval beats a summarized describe call.

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 concrete use contexts — debugging, manual inspection, and extracting complex structures to pass to other tools — which is meaningfully more than implied usage. It stops short of stating when NOT to use it (e.g., use describe_analysis for a cheap overview), so no exclusions or named alternatives are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_calculated_fieldB
Read-only

Get details of a specific calculated field in an analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesExact name of the calculated field.
analysis_idYesThe QuickSight analysis ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already declares this is a safe read operation, so the description's burden is lower. However, the description does not add any behavioral context such as error handling for missing fields or permission requirements.

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?

A single, efficient sentence with the core action and resource front-loaded. No unnecessary words.

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?

With an output schema present, the description needn't explain return values, but it still lacks usage guidance and any behavioral caveats. For a simple retrieval tool with full schema coverage and annotations, it is adequate but leaves clear gaps in routing.

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 coverage is 100%, so both parameters are fully documented in the schema. The description adds no additional meaning beyond what the schema provides, which is the baseline expectation.

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?

States a specific verb (Get details) and resource (calculated field in an analysis), clearly distinguishing it from siblings like list_calculated_fields, add_calculated_field, and update_calculated_field.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives like get_analysis_raw or list_calculated_fields. The agent is left to infer that this is for retrieving one specific field by name rather than listing all fields.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_columns_usedB
Read-only

Get a frequency map of columns used across an analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
analysis_idYesThe QuickSight analysis ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true already tells the agent this is a safe read, and an output schema exists so return values need no explanation. The description does add the notion that the result is a frequency map (counts, not a plain list), which is useful behavioral context, but says nothing about auth needs, scope limits, or cost.

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?

One tight sentence with no filler and the key concept front-loaded. It is efficient rather than padded, though it is arguably too terse for a tool sitting among many column/field-related siblings.

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?

Low-complexity read-only tool with one required parameter and an output schema, so most structure is already covered. What is missing is any routing context among the ~60 siblings or note on scope (single analysis vs. all visuals), which leaves a gap for correct selection.

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 coverage is 100% with a single documented analysis_id parameter, so the schema carries the burden. The description adds no extra meaning about the parameter, making the baseline 3 correct.

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 names a specific verb ('Get') and a specific resource with scope ('frequency map of columns used across an analysis'), so an agent can tell it apart from list_calculated_fields or get_parameters. It stops short of explicitly naming which sibling it competes with, which keeps it out of the top band.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool, when not to, or which alternative (e.g. list_calculated_fields, get_visual_definition) covers a related question. Usage is only implied by the phrase 'columns used'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_dashboard_versionsB
Read-only

List the version history of a QuickSight dashboard.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of versions to return (default 10).
dashboard_idYesThe QuickSight dashboard ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already establishes that this is a safe read operation. The description adds no behavioral context beyond that, such as result ordering, pagination behavior, or whether the current version is included in the list. For a history-listing tool, those traits matter to an agent's invocation.

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 a single, efficient sentence with the core purpose front-loaded. Every word earns its place and nothing is wasted.

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 low complexity, complete parameter documentation, and an output schema that covers return values, the description is nearly sufficient. The only minor gap is that it does not mention result ordering or pagination behavior, which the limit parameter and output schema likely handle.

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 100%, so both parameters are already documented in the input schema. The description adds no additional meaning about parameter usage, which is the correct baseline when the schema does the heavy lifting.

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 names a specific verb ('List') and resource ('version history of a QuickSight dashboard'), making the tool's purpose immediately clear. It does not explicitly differentiate itself from sibling tools like rollback_dashboard or publish_dashboard, but the scope is unambiguous for an agent scanning the tool list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives such as rollback_dashboard or list_dashboards. It implies the obvious use case of inspecting version history, but provides no explicit context, prerequisites, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_datasetB
Read-only

Get full metadata for a QuickSight dataset.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataset_idYesThe QuickSight dataset ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already establishes this is a safe read, so the description's burden is lower. It adds that the result is 'full metadata', which usefully signals completeness versus a summary view, but says nothing about permissions, missing-dataset behavior, or size.

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?

One sentence, front-loaded verb and resource, zero filler. Nothing to trim.

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 simple single-parameter getter with an output schema present, the description covers what is needed; return values need not be described. It is slightly thin on error or permission behavior but is adequate overall.

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?

Single required parameter with 100% schema description coverage, so the schema fully documents 'dataset_id'. The description adds no format, lookup, or resolution detail beyond the schema — the baseline 3 applies.

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?

States a specific verb ('Get') and resource ('metadata for a QuickSight dataset') with the scope qualifier 'full'. This clearly separates it from list_datasets, search_datasets, and the SQL-specific siblings, but it never explicitly names what distinguishes it from, e.g., get_dataset_sql.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no prerequisites, and no mention of alternatives. An agent must infer from the name alone that this retrieves dataset metadata rather than SQL or refresh state.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_dataset_sqlB
Read-only

Get the SQL query powering a QuickSight dataset.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataset_idYesThe QuickSight dataset ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true already tells the agent this is a safe, non-mutating read. The description adds only that the payload is the SQL query behind the dataset, which is mildly useful context but discloses nothing about permissions, rate limits, or the fact that only custom-SQL datasets actually have a query.

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?

One sentence, front-loaded with the verb and resource, with zero filler. Nothing could be removed without losing meaning.

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?

With an output schema present and annotations covering the safety profile, the description need not explain return values, and for a one-parameter getter it is nearly sufficient. The one gap is that it doesn't warn that datasets without custom SQL have no query to return, which would prevent a confused call.

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 100% and there is a single required parameter, so the schema fully documents dataset_id. The description adds no syntax, format, or sourcing detail beyond what the schema already provides, so the baseline of 3 applies.

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 gives a specific verb ('Get') and resource ('SQL query powering a QuickSight dataset'), which is unambiguous and clearly distinct from write siblings like update_dataset_sql or modify_dataset_sql. It does not, however, explicitly name those siblings or call out that this is the read counterpart, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus alternatives, no prerequisites, and no exclusions. An agent must infer from the name alone that this is the read-only way to inspect a dataset's SQL and that update_dataset_sql/modify_dataset_sql are the mutation paths.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_error_patternsA
Read-only

Show common QuickSight errors and their known fixes.

Analyzes your error history to identify recurring failure patterns and provides specific remediation steps. This is especially useful for diagnosing SPICE refresh failures, permission issues, and API throttling.

Returns:

  • patterns: Grouped error types with frequency and last occurrence

  • known_fixes: Documented fixes for each error pattern

  • recent_errors: The most recent errors with context

Call this when something goes wrong to see if it is a known issue with a known fix.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already tells the agent this is a safe read operation. The description adds that it 'analyzes your error history' and what categories it covers, but discloses nothing about data sources, time windows, rate limits, or how much history is scanned, so it only modestly exceeds the annotation baseline.

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 purpose is front-loaded and the body is well organized into a short prose block plus a 'Returns' list. The Returns section partly duplicates what the output schema already declares, which is a minor redundancy but not wasteful enough to hurt readability.

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 zero-parameter, read-only diagnostic tool with annotations and an existing output schema, the description covers purpose, trigger conditions, and the categories of error it addresses. An agent has everything needed to decide to call it and interpret the result.

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 tool takes zero parameters, so per the rubric this is a baseline 4. There are no inputs whose semantics need explaining, and the description correctly does not invent any.

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 opens with a specific verb and resource ('Show common QuickSight errors and their known fixes') and adds domain specificity by naming SPICE refresh, permission, and throttling failures. It is clearly about error-pattern analysis, though it does not explicitly differentiate itself from adjacent diagnostic siblings like verify_analysis_health or get_learning_insights.

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 final sentence gives an unambiguous trigger: 'Call this when something goes wrong to see if it is a known issue with a known fix.' It states clear usage context but offers no explicit exclusions or named alternative tools for diagnosis, keeping it 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_filtersB
Read-only

List all filter groups defined in a QuickSight analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
analysis_idYesThe QuickSight analysis ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint=true annotation already establishes this is a safe, non-mutating read, so the description need not repeat that. However, it adds no behavioral context of its own — no note on pagination, ordering, or whether the list is complete for nested/linked analyses. A minimal but acceptable contribution given annotation coverage.

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?

One front-loaded sentence with the verb and scope stated immediately and no filler. It is efficient, though slightly under-powered for a tool with an output schema whose contents go unmentioned.

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 one-parameter read tool with full schema coverage and an existing output schema, the description supplies what the agent needs to invoke it correctly. The only mild gap is not noting how the returned filter groups relate to the add/delete filter group siblings.

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?

There is a single required parameter and schema description coverage is 100%, with the schema already stating 'The QuickSight analysis ID.' The description adds no format, sourcing, or lookup guidance beyond that, so baseline 3 applies.

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?

States a specific verb ('List') and resource ('filter groups') scoped to a QuickSight analysis, which is enough to distinguish it from add_filter_group and delete_filter_group. It is clear but does not explicitly name what it is not, and 'filters' vs 'filter groups' could be briefly ambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No indication of when to use this rather than sibling read tools such as get_parameters or describe_analysis, and no prerequisites or exclusions. The agent must infer usage entirely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_learning_insightsA
Read-only

Show what the server has learned from your QuickSight usage patterns.

This server tracks every tool call -- what you use most, what fails, what takes longest -- and surfaces actionable insights.

Returns:

  • most_used_tools: Tools you call most frequently

  • slowest_tools: Tools with highest average latency

  • error_rate: Per-tool failure percentages

  • recommendations: Suggestions based on your usage patterns (e.g., "You search datasets often -- consider using list_datasets with caching instead")

The more you use the server, the better the insights become.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, so safety is already known. The description adds important behavioral context: it discloses what the server tracks (tool calls, failures, latency), what the return fields are (most_used_tools, slowest_tools, error_rate, recommendations), and notes that insights improve with more usage. This goes beyond annotations and schemas. However, it doesn't detail performance characteristics, data retention, or whether insights are per-user or global.

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 front-loaded with the core purpose, then lists return fields in a structured way. It is concise and avoids fluff, though the 'Returns:' section could be considered slightly verbose given an output schema exists. Overall, every sentence earns its place.

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 that an output schema exists, the description needn't detail return values, but it does provide a helpful summary of them. The description covers what insights are surfaced and how they improve with usage. It might benefit from mentioning whether insights are user-specific or server-wide, but for a read-only analytics tool, it is 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?

Parameter count is 0 and schema description coverage is 100%, so baseline is 4. The description correctly implies no inputs are needed. No parameter semantics are relevant here, so the baseline score of 4 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 states a specific verb and resource: 'Show what the server has learned from your QuickSight usage patterns.' It immediately distinguishes itself from all sibling tools by focusing on server-side usage analytics/telemetry rather than QuickSight asset manipulation. No sibling tool is about learning insights from usage patterns.

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 the tool is useful for understanding usage patterns and mentions recommendations, but it does not explicitly state when to call it versus alternatives or provide exclusion criteria. The purpose is self-evident enough that a user can infer usage, but there's no guidance like 'call this before optimizing workflows' or 'not for real-time monitoring'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_parametersA
Read-only

List all parameters defined in a QuickSight analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
analysis_idYesThe QuickSight analysis ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already tells the agent this is a safe read. The description adds only that it lists 'all' parameters scoped to a specific analysis, which is mild scoping context. It does not mention pagination, return format, or any other behavioral detail beyond what the annotation provides.

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 a single front-loaded sentence with no wasted words. It states the action and scope immediately.

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 simple read-only tool with one parameter, an output schema, and a readOnlyHint annotation, the description is nearly complete. It could add a brief note on when to prefer it over get_filters or list_calculated_fields, but return values are covered by the output schema.

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 100%, so the sole parameter (analysis_id) is already fully documented in the schema. The description only implies that the parameter identifies the analysis; it adds no syntax, format, or additional meaning beyond the schema.

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 states a specific verb and resource: 'List all parameters' and scopes them to a 'QuickSight analysis.' This clearly distinguishes it from mutation siblings like add_parameter and delete_parameter, though it does not explicitly name those alternatives.

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 usage (call this when you need to see parameters in an analysis) but provides no explicit when-to-use guidance, exclusions, or named alternatives among the many sibling tools. The implied context is adequate for a simple read-only list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_refresh_statusC
Read-only

Check the status of a SPICE dataset refresh.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataset_idYesThe QuickSight dataset ID.
ingestion_idYesThe ingestion ID returned by refresh_dataset.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, matching the 'check' wording, so no contradiction. But the description adds nothing beyond that: no note on whether statuses are terminal/pending, whether polling is expected, or how long results remain queryable.

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?

A single front-loaded sentence with zero waste. It is concise and well-structured, though the brevity leaves gaps rather than being tightly complete.

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?

An output schema exists, so return-value explanation is unnecessary. However, for a status-polling tool in a family containing refresh_dataset/cancel_refresh/list_recent_refreshes, the absence of any workflow or usage context leaves it only minimally 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?

Schema description coverage is 100%, so both parameters are already documented, including the pointer back to refresh_dataset. The description contributes no additional parameter meaning, so the baseline 3 applies.

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?

States a specific verb (check) and resource (SPICE dataset refresh status), and the schema ties it to dataset_id/ingestion_id from refresh_dataset. It doesn't explicitly distinguish itself from list_recent_refreshes or cancel_refresh, which are the nearest siblings, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus list_recent_refreshes, refresh_dataset, or cancel_refresh. The only contextual link, that ingestion_id comes from refresh_dataset, lives in the schema, not the description. An agent must infer the polling/status-check workflow itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_visual_definitionA
Read-only

Get the full raw definition of a specific visual.

Use this to inspect a visual's complete configuration including field mappings, aggregations, formatting, and chart configuration. The returned definition can be modified and passed to add_visual to create a copy.

ParametersJSON Schema
NameRequiredDescriptionDefault
visual_idYesThe visual ID to inspect.
analysis_idYesThe QuickSight analysis ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description needn't re-establish safety. It adds real value beyond that by disclosing the shape of the returned definition (field mappings, aggregations, formatting, chart configuration) and its reuse in add_visual. Auth requirements and failure modes are still unmentioned.

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 short sentences, front-loaded with the core action, followed by what the definition contains and the copy workflow. No sentence is filler.

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?

With an output schema present, return values need not be described, and the description still adds useful summary of the definition's contents plus the add_visual reuse pattern. Nothing needed to call this tool correctly is missing.

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?

Both parameters are documented in the schema at 100% coverage, including what visual_id and analysis_id mean, so the description carries little additional burden. It adds no format, prefix, or lookup guidance beyond the schema, making the 3 baseline correct.

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 a specific verb and resource ('Get the full raw definition of a specific visual') and names the scope ('full raw definition'), which cleanly separates it from list_visuals (enumeration) and get_analysis_raw (different resource). An agent can identify the tool without opening the schema.

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 gives a clear use case ('inspect a visual's complete configuration') and a downstream workflow: the result can be modified and passed to add_visual to create a copy. This implicitly routes the agent away from list_visuals and toward the copy workflow, but no explicit when-not condition is stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_analysesA
Read-only

List all QuickSight analyses with their names, IDs, and status.

Returns every analysis in the account. Results are cached for 5 minutes. Use this to discover analyses before inspecting them.

Each entry includes:

  • name: Human-readable analysis name

  • id: Analysis ID (use this for other analysis operations)

  • status: CREATION_SUCCESSFUL, UPDATE_SUCCESSFUL, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds meaningful extra context: results are cached for 5 minutes, every analysis in the account is returned, and status values are enumerated (CREATION_SUCCESSFUL, UPDATE_SUCCESSFUL, etc.), which helps the agent interpret results.

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?

Front-loaded with the core action, then scope, caching, and field list. Well structured with a bullet list, though the per-field enumeration partially overlaps with the existing output schema and could be trimmed.

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?

An output schema exists, so return-value documentation is not strictly needed, yet the description still covers scope, caching, and status values. It is complete for a no-parameter list tool; only the missing sibling routing keeps it from a 5.

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 tool takes zero parameters, so the baseline is 4. The description correctly describes no inputs and instead documents the returned fields, which is more than required.

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?

States a specific verb and resource ('List all QuickSight analyses') plus the fields returned. It does not explicitly differentiate itself from the sibling search_analyses, so an agent must infer that this returns the full unfiltered set.

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?

'Use this to discover analyses before inspecting them' gives implied workflow context, and 'Returns every analysis in the account' hints at the unfiltered scope. However, it never names search_analyses or describe_analysis as alternatives or states when this is the wrong choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_calculated_fieldsB
Read-only

List all calculated fields in a QuickSight analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
analysis_idYesThe QuickSight analysis ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds the scoping context (all fields within a given analysis), but discloses nothing about result ordering, size, or pagination 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?

A single, front-loaded sentence with zero waste; every word earns its place and the resource and scope lead the statement.

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?

An output schema exists, so return values need not be described, and the single parameter is documented in the schema. For a simple list tool with annotations, this is nearly complete, with only usage routing left unstated.

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 100%, so analysis_id is fully documented in the schema. The description adds no syntax or format detail beyond what the schema already provides, making the baseline 3 appropriate.

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 gives a specific verb ('List') and resource ('calculated fields') scoped to a QuickSight analysis. It is clearly a read/collection operation, distinguishable from the singular get_calculated_field, though it does not explicitly name or contrast with that sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no alternatives named, and no exclusions. The agent must infer that this returns the full set while get_calculated_field fetches one by name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_dashboardsA
Read-only

List all QuickSight dashboards with their names, IDs, and publish status.

Returns every dashboard in the account. Results are cached for 5 minutes. Dashboards are the published, viewer-facing version of analyses.

Each entry includes:

  • name: Dashboard display name

  • id: Dashboard ID (use this for other dashboard operations)

  • published_version: Current published version number

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint already declared, the description adds genuinely new behavioral context: a 5-minute result cache, account-wide scope, and the domain note that dashboards are the published, viewer-facing version of analyses. It stops short of describing pagination or result-size limits for a potentially large account-wide listing.

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?

Front-loaded with the verb and resource, followed by scope and caching, then a compact field breakdown. Generally tight, though the bulleted field list overlaps with the output schema and adds a little 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?

For a zero-parameter read tool with annotations and an output schema, the description covers scope, caching, domain meaning, and return fields. Nothing essential is missing; only pagination/volume expectations are unaddressed.

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 tool takes no parameters, so the baseline is 4. The description instead documents the shape of each returned entry, which is extra detail beyond the zero-parameter schema, though it partially duplicates the existing output schema.

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?

States a specific verb and resource ('List all QuickSight dashboards') and enumerates the fields returned (names, IDs, publish status). The 'Returns every dashboard in the account' clause implicitly separates it from search_dashboards, but it never names that sibling explicitly, so differentiation is inferential rather than stated.

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 claim that it returns every dashboard implies a full-enumeration use case, and the field list hints at when the output is useful. However, there is no explicit when-to-use guidance, no exclusion ('do not use when you need a filtered subset — use search_dashboards'), and no prerequisites stated, despite search_dashboards sitting right there in the sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_datasetsA
Read-only

List all QuickSight datasets with their names, IDs, and import mode.

Returns every dataset in the account with:

  • name: Human-readable dataset name

  • id: Dataset ID (use this for other dataset operations)

  • import_mode: SPICE (cached) or DIRECT_QUERY (live)

Results are cached for 5 minutes. Use this to discover datasets before calling get_dataset_sql or update_dataset_sql.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint annotation, the description discloses a 5-minute result cache, which materially affects how an agent should treat freshness. It also explains the import_mode values (SPICE cached vs DIRECT_QUERY live), adding real semantic context. Minor gap: no disclosure of pagination or result-size limits for a whole-account listing.

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?

Front-loaded with the action and resource, then a compact bulleted field list, then usage and caching notes. The field enumeration is slightly redundant given an output schema exists, but it is short and readable.

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?

With an output schema present, the description didn't need to restate return fields, yet it still explains import_mode semantics and caching, which the schema cannot convey. It is essentially complete for a no-argument discovery tool, missing only guidance on volume/pagination.

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 tool takes zero parameters, so the baseline of 4 applies. There are no parameter semantics to document and the description appropriately spends no space on them.

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 opening sentence states a specific verb and resource ('List all QuickSight datasets') and enumerates the returned fields. It does not, however, differentiate itself from the closely related sibling search_datasets (the filtered variant), leaving an agent to infer which listing tool to pick.

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 gives clear downstream context: 'Use this to discover datasets before calling get_dataset_sql or update_dataset_sql,' which tells the agent where this fits in a workflow. It stops short of stating when NOT to use it or naming search_datasets as the filtered alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_recent_refreshesB
Read-only

List recent SPICE refresh history for a dataset.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of recent refreshes to return (default 5).
dataset_idYesThe QuickSight dataset ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds only that it's SPICE refresh history scoped to a dataset, but doesn't disclose ordering, pagination, or what fields a refresh record contains, leaving behavioral gaps despite the light annotation coverage.

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?

A single, front-loaded sentence with no wasted words. Appropriate size for a simple list tool.

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?

With an output schema present and annotations covering read-only safety, the description needs only to state purpose and scope, which it does. Minor gaps remain around sibling differentiation and return ordering, but overall it's sufficient for correct 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 100% with both parameters fully documented in the schema (limit default and dataset_id). The description adds no parameter syntax or format beyond the schema, so baseline 3 applies.

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?

States a specific verb 'List' and resource 'SPICE refresh history for a dataset', which is clear. However, it doesn't distinguish itself from closely related siblings like get_refresh_status or refresh_dataset, leaving ambiguity about when this read-only history listing is preferred over those.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus get_refresh_status, refresh_dataset, or cancel_refresh. An agent must infer that this is for historical listing only, with no explicit conditions or alternatives offered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_sheet_visualsA
Read-only

List all visuals in a specific sheet of a QuickSight analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
sheet_idYesThe sheet ID to list visuals for.
analysis_idYesThe QuickSight analysis ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true already tells the agent this is a safe read, so the bar is lower. The description adds no further behavioral context — no pagination behavior, no note on what happens with an empty sheet or an invalid sheet_id, and no indication of result volume. An output schema exists, which covers returns, but the description itself contributes nothing beyond the safety profile already in annotations.

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?

A single sentence that front-loads the action and resource, with no filler or redundancy. Nothing is wasted.

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?

With an output schema covering return values, full parameter documentation, and a readOnly annotation, the description needs only to convey scope and purpose — which it does. It falls short only in not distinguishing itself from the closely named sibling list_visuals.

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 coverage is 100% and both parameters are documented in the schema, so the baseline of 3 applies. The description does not clarify the relationship between analysis_id and sheet_id or how to obtain a sheet_id (e.g., via add_sheet or a sheet-listing call), adding no meaning beyond the schema.

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?

States a specific verb ('List'), resource ('visuals'), and scope ('in a specific sheet of a QuickSight analysis') — the sheet-level scoping separates it from the analysis-wide sibling list_visuals. It does not name that sibling explicitly, so the differentiation is implied rather than stated.

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 scope ('a specific sheet') implies when the tool applies, but there is no explicit when-to-use guidance, no mention of the alternative list_visuals, and no prerequisites or ordering hints. Usage is inferable but not taught.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_visualsB
Read-only

List all visuals in a QuickSight analysis with type and location info.

ParametersJSON Schema
NameRequiredDescriptionDefault
analysis_idYesThe QuickSight analysis ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint=true annotation already declares this as a safe, non-mutating read. The description adds that results carry 'type and location info', a mild bit of behavioral context, but this overlaps with the output schema and no pagination, scoping, or auth behavior is disclosed.

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?

A single front-loaded sentence with no filler; the verb and resource lead. It is efficient, though it could carry slightly more routing detail at the same length.

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 listing tool with an output schema and full schema description coverage, the definition is adequate: the agent knows what it returns and what to pass. The only real gap is the unstated relationship to 'list_sheet_visuals'.

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 100% with a single documented 'analysis_id' parameter, so the schema fully carries parameter meaning. The description adds nothing beyond the schema, which is the baseline expectation at this coverage level.

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 gives a specific verb ('List') and resource ('visuals in a QuickSight analysis'), plus the returned fields ('type and location info'). It scopes the tool to the analysis level, but does not explicitly distinguish it from the closely related sibling 'list_sheet_visuals', leaving that contrast implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as 'list_sheet_visuals' or 'get_visual_definition'. Usage must be inferred from the name and the phrase 'in a QuickSight analysis'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

modify_dataset_sqlA
Destructive

Find and replace text in a dataset's SQL query.

Convenience tool that reads the current SQL, applies a string replacement, and updates the dataset. A backup is created automatically.

ParametersJSON Schema
NameRequiredDescriptionDefault
findYesExact text to search for in the current SQL.
replaceYesReplacement text.
dataset_idYesThe QuickSight dataset ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare destructiveHint=true, so the description adds real value: it discloses the read-modify-update mechanism and, crucially, that a backup is created automatically, which materially softens the destructive risk. It stops short of stating permissions or how the replacement handles multiple matches.

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?

Three short sentences, front-loaded with the core action, then mechanism, then the backup caveat. Slight redundancy between the first two sentences ('find and replace text' vs 'applies a string replacement'), but no wasted padding.

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?

With an output schema present, a single destructive annotation, and full param coverage, the description supplies the missing behavioral context (auto-backup) and is sufficient for correct invocation. Only the sibling-routing detail is absent.

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 100%, so find, replace, and dataset_id are already fully documented. The description confirms the replacement semantics ('applies a string replacement') but adds no format, matching, or case-sensitivity detail beyond the schema, so the baseline 3 holds.

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?

States a specific verb+resource pair (find and replace text in a dataset's SQL query) and clarifies it is a convenience wrapper over read-modify-update. It does not, however, explicitly distinguish itself from the sibling update_dataset_sql or get_dataset_sql, leaving the agent to infer the boundary.

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?

Calling it a 'convenience tool' implies it is for narrow string substitutions rather than full SQL rewrites, which is useful implied guidance. But there is no explicit when-to-use/when-not statement naming update_dataset_sql as the alternative for larger edits.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

publish_dashboardA
Destructive

Publish a QuickSight analysis to an existing dashboard.

WARNING: This is a DESTRUCTIVE operation that replaces the current dashboard content with the analysis content. All viewers will immediately see the new version. Make sure you have tested the analysis thoroughly before publishing.

Best practice:

  1. Clone the analysis first (clone_analysis) and test

  2. Back up the dashboard (backup_analysis on the source)

  3. Publish with a descriptive version_description

  4. If something goes wrong, use rollback_dashboard

ParametersJSON Schema
NameRequiredDescriptionDefault
dashboard_idYesThe target dashboard ID to publish to.
source_analysis_idYesThe analysis ID to publish from.
version_descriptionNoOptional description for this version (e.g., "Added revenue breakdown chart").

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare destructiveHint=true, but the description goes well beyond that: it specifies that ALL existing dashboard content is replaced and that viewers see the new version immediately. This is exactly the impact-level detail an agent needs before invoking a destructive tool, and it is consistent with the annotation.

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?

Purpose is front-loaded, the warning follows, and the numbered best-practice list is scannable and actionable. The four-step list is slightly verbose for a 3-parameter tool, but every line carries operational value.

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?

With an output schema present, the description need not explain return values, and it covers what remains: the destructive semantics, the audience impact, the recovery path, and the recommended pre-flight steps. Nothing essential to invoking this tool safely is missing.

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 100%, so dashboard_id and source_analysis_id are already fully documented. The description adds only a weak hint ('publish with a descriptive version_description'), which is largely redundant with the schema's own example. Baseline 3 applies when the schema does the heavy lifting.

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?

States a specific verb (publish) and resource pair (analysis → existing dashboard), naming both source and target. An agent can immediately distinguish it from siblings like clone_analysis, backup_analysis, or get_dashboard_versions without opening a schema.

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?

Explicitly provides a when-to-use workflow and names the alternatives at each step: clone_analysis to test, backup_analysis to back up, rollback_dashboard to recover. It even flags the prerequisite that the analysis must be tested thoroughly first, leaving little to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

refresh_datasetA

Trigger a SPICE refresh (data reload) for a dataset.

Use this after updating dataset SQL to reload data into SPICE cache. Has no effect on DIRECT_QUERY datasets.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataset_idYesThe QuickSight dataset ID to refresh.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/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 behavioral burden. It discloses the operation is a trigger and that it is a no-op on DIRECT_QUERY datasets, but omits whether the refresh is asynchronous, what happens on failure, permission requirements, or rate limits. For an action-triggering tool with zero annotation coverage this is adequate but leaves meaningful gaps.

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 short sentences, all load-bearing: what it does, when to use it, and its exclusion case. The key action is front-loaded 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?

An output schema exists, so return-value explanation is unnecessary, and the description covers the core action and its main caveat. It could still note that refreshes are typically asynchronous and pair with get_refresh_status/cancel_refresh, which keeps it just short of fully complete for a state-changing tool.

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?

There is a single parameter (dataset_id) with 100% schema description coverage, so the schema already documents it fully. The description adds no format, ID-source, or constraint detail beyond the schema, making the baseline 3 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?

States a specific verb (trigger) and resource (SPICE refresh / data reload) scoped to a dataset, and adds a clear boundary ('no effect on DIRECT_QUERY datasets') that separates it from read-only dataset tools. An agent can distinguish it from get_refresh_status, list_recent_refreshes, and update_dataset_sql without opening schemas.

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?

Gives a clear when-to-use condition ('after updating dataset SQL to reload data into SPICE cache') and an implicit when-not ('no effect on DIRECT_QUERY datasets'). It never names explicit alternatives such as cancel_refresh or get_refresh_status, so it stops short of full alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rename_sheetA
Idempotent

Rename an existing sheet in a QuickSight analysis.

WARNING: This modifies the analysis definition. A backup is automatically created before making changes.

ParametersJSON Schema
NameRequiredDescriptionDefault
new_nameYesThe new display name for the sheet.
sheet_idYesThe ID of the sheet to rename.
analysis_idYesThe QuickSight analysis ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only provide idempotentHint=true. The description adds important behavioral context beyond annotations: it modifies the analysis definition and automatically creates a backup before making changes. It still omits permissions requirements, backup/restore details, and output 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?

Two short sentences with purpose front-loaded, followed by a critical warning. Every sentence earns its place and no filler is present.

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?

An output schema exists, so return values need not be explained in the description. The description covers mutation risk and automatic backup, and the schema covers required parameters. It omits minor prerequisites like analysis state or backup retrieval, but is adequate for a simple rename operation.

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 100%, so the schema fully documents analysis_id, sheet_id, and new_name. The description adds no additional parameter meaning such as naming constraints or format expectations, so the baseline of 3 applies.

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?

States a specific verb ('Rename') and resource ('an existing sheet in a QuickSight analysis'), scoping the operation precisely. It is inherently distinguishable from sibling sheet operations such as add_sheet, delete_sheet, and replicate_sheet, even though it does not name them explicitly.

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 usage when an existing sheet needs renaming, but provides no explicit when/when-not guidance or alternative tool comparisons. The context is clear enough to infer the tool's role among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

replicate_sheetA

Copy all visuals from one sheet to a new sheet in the same analysis.

This is the recommended way to duplicate a sheet. It copies all visuals with their layouts in a single API call, which is much more reliable than adding visuals one at a time.

Visual IDs are automatically prefixed with 'rc_' to avoid conflicts.

WARNING: This modifies the analysis definition. A backup is automatically created before making changes.

ParametersJSON Schema
NameRequiredDescriptionDefault
analysis_idYesThe QuickSight analysis ID.
source_sheet_idYesThe sheet ID to copy visuals from. Use describe_analysis to find sheet IDs.
target_sheet_nameYesDisplay name for the new sheet.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 and does substantial work: it discloses that this mutates the analysis definition, that a backup is created automatically beforehand, and that visual IDs are auto-prefixed with 'rc_'. Gaps remain on permissions/authorization and what happens if the target sheet name already exists, keeping it from a 5.

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?

Front-loaded with the core action, then usage rationale, then side effects, then a clearly marked WARNING. Every sentence adds distinct information with no padding.

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 mutation tool with no annotations, the description covers the safety-relevant essentials (mutation, automatic backup, ID prefixing) and an output schema exists so return values needn't be explained. Minor omissions like target-name conflict behavior are the only gap.

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 100%, so the schema already documents all three parameters (including the pointer to describe_analysis for sheet IDs). The description adds no parameter-level meaning beyond what the schema provides, so the baseline 3 applies.

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?

States a specific verb (copy/replicate) and resource (all visuals from one sheet to a new sheet in the same analysis), and the scope 'same analysis' distinguishes it from clone_analysis. An agent can tell it apart from add_sheet and add_visual without opening either schema.

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?

Explicitly positions itself as 'the recommended way to duplicate a sheet' and names the alternative workflow ('adding visuals one at a time') that it beats on reliability. It lacks an explicit when-not-to-use condition, so it falls just 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.

restore_analysisA
Destructive

Restore a QuickSight analysis from a JSON backup file.

WARNING: This overwrites the analysis definition with the backup contents. The current state of the analysis will be replaced.

ParametersJSON Schema
NameRequiredDescriptionDefault
analysis_idNoOptional analysis ID to restore into. If empty, restores to the original analysis ID stored in the backup file.
backup_fileYesFull path to the backup JSON file (e.g., ~/.quicksight-mcp/backups/analysis_xxx_20240101_120000.json).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, so the safety profile is known. The description goes beyond that by naming exactly what is destroyed (the analysis definition is replaced by backup contents) and warning that current state is lost, which is genuinely useful operational context beyond the annotation.

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?

Two short sentences with the destructive warning front-loaded after the purpose statement. Every sentence earns its place; 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?

The tool has an output schema and destructive annotations, so the description needn't explain returns or safety. It covers the core action and its main hazard adequately, though it could mention backup-file compatibility constraints given the optional analysis_id override.

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 coverage is 100%, so both parameters are already well documented, including the fallback behavior when analysis_id is empty. The description adds no additional parameter syntax or format detail, so baseline 3 applies.

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?

States a specific verb (restore) plus resource (QuickSight analysis) and names the source artifact (JSON backup file). This clearly distinguishes it from sibling tools like backup_analysis and clone_analysis, which share the analysis domain but perform different operations.

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 the use case (recovering an analysis from a backup) but does not state when to prefer this over alternatives like clone_analysis or rollback_dashboard, nor any prerequisites such as backup compatibility across analysis IDs. Usage is inferable but not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rollback_dashboardA
Destructive

Rollback a QuickSight dashboard to a previous version.

WARNING: This is a DESTRUCTIVE operation. The current dashboard content will be replaced with the specified previous version. All viewers will immediately see the rolled-back version.

Use get_dashboard_versions first to find the version number you want to restore.

ParametersJSON Schema
NameRequiredDescriptionDefault
dashboard_idYesThe QuickSight dashboard ID.
version_numberYesThe version number to rollback to. Use get_dashboard_versions to find valid numbers.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, but the description goes beyond by specifying what is destroyed (current content is replaced) and the blast radius (all viewers immediately see the rolled-back version). It does not clarify whether the rollback is itself reversible, so it stops short of a 5.

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 short blocks: verb+resource, a front-loaded destructive warning, then the prerequisite. Every sentence earns its place with no redundancy.

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 two-parameter mutation, the description covers purpose, destructive impact, and the required prior step; annotations carry the safety flag, the schema documents both params, and an output schema exists. Nothing an agent needs to invoke it correctly is missing.

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 coverage is 100% and both parameters carry their own descriptions, including the pointer to get_dashboard_versions. The description adds no syntax or format detail beyond the schema, so the baseline 3 applies.

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?

States a specific verb (rollback) and resource (QuickSight dashboard) with a clear scope ('to a previous version'). An agent can distinguish this from siblings like publish_dashboard or get_dashboard_versions without opening any schema.

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?

Explicitly prescribes the prerequisite step: 'Use get_dashboard_versions first to find the version number you want to restore.' This routes the agent correctly, though it doesn't state when NOT to roll back (e.g., active editing sessions).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_analysesA
Read-only

Search QuickSight analyses by name (case-insensitive partial match).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSearch string to match against analysis names. Example: "WBR" matches "Ops-WBR", "WBR Weekly", etc.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true already declares this is a safe read, so the description's burden is light. It adds the useful behavioral detail that matching is case-insensitive and substring-based, but says nothing about result limits, ordering, or pagination for a search that could return many analyses.

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?

A single tight sentence with the resource and the matching rule front-loaded. No filler, nothing redundant with the schema.

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?

With an output schema present, the description need not explain return values, and with a single fully-documented parameter the input side is covered. The only shortfall is the absence of any contrast with list_analyses for an agent choosing between browsing and searching.

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 coverage is 100% and the schema itself documents the parameter with an example, so baseline is 3. The description earns an extra point by adding matching semantics the schema omits: matching is case-insensitive and partial rather than exact.

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?

States a specific verb (Search) and resource (QuickSight analyses) with the matching mode (name, case-insensitive partial). It is distinguishable by resource from search_datasets and search_dashboards, but never explicitly contrasts itself with the sibling list_analyses, which is the closest alternative.

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?

Usage is only implied: the partial-match framing tells the agent this is the tool to reach for when it has a name fragment rather than a full identifier. It never states when to prefer this over list_analyses or what happens on no match, so there is no explicit routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_dashboardsA
Read-only

Search QuickSight dashboards by name (case-insensitive partial match).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSearch string to match against dashboard names. Example: "Sales" matches "T&O Sales", "Sales KPIs", etc.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true already tells the agent this is a safe read, so the bar is lower. The description usefully adds the match behavior (case-insensitive, partial, substring rather than exact), but says nothing about result limits, ordering, or empty-result 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?

A single front-loaded sentence with no filler; the matching behavior is packed into the same clause as the purpose, and every word carries 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?

An output schema exists, so return-value explanation is unnecessary, and annotations cover the safety profile. The only meaningful gap is routing guidance relative to list_dashboards and search_analyses, which a one-param read tool can arguably survive without.

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?

With a single parameter at 100% schema description coverage, the schema already documents 'name' with an example. The description's 'case-insensitive partial match' adds matching semantics that the schema text does not state, but otherwise adds little beyond the baseline.

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?

States a specific verb (search) and resource (QuickSight dashboards) plus the matching semantics (case-insensitive partial match on name). It is clear what the tool does, but it does not differentiate itself from the sibling list_dashboards or search_analyses, leaving the agent to infer the choice.

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?

Usage is only implied by the verb 'search' and the 'by name' qualifier; there is no explicit statement of when this is preferable to list_dashboards (exact enumeration) or search_analyses. No exclusions or prerequisites are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_datasetsA
Read-only

Search QuickSight datasets by name (case-insensitive partial match).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSearch string to match against dataset names. Example: "wbr" matches "WBR Weekly", "wbr_ingest", etc.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so safety is covered. The description adds the case-insensitive partial-match trait, which is useful behavioral detail, but says nothing about result limits, ordering, or empty-match behavior. With return shape covered by the output schema, a 3 is appropriate.

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?

One sentence, front-loaded with the verb and resource, with the qualifier appended rather than buried. Nothing wasted.

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 one-parameter read-only search with an output schema and annotations, this covers what an agent needs to invoke it. Only the sibling-routing context (search vs list vs get) is absent.

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 coverage is 100% and the single parameter already carries an example ('wbr' matching 'WBR Weekly'). The description's case-insensitive partial-match note reinforces the schema but adds no syntax or format detail beyond it, so the baseline 3 applies.

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?

States a specific verb (search) and resource (QuickSight datasets) and pins the matching semantics as case-insensitive partial match, which meaningfully narrows the operation. It does not explicitly distinguish itself from siblings like list_datasets or get_dataset, so an agent must infer the routing.

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 partial-match phrasing implies usage (use when you know a fragment of the name rather than an exact ID), but no when-to-use rule or named alternative such as list_datasets or get_dataset is given. Usage is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_visual_layoutA
Idempotent

Set the position and size of a visual in the grid layout.

QuickSight uses a 36-column grid. Common patterns:

  • Full width: column_index=0, column_span=36

  • Half width: column_span=18

  • Third width: column_span=12

  • Row height: typically 8-16 rows per visual

WARNING: This modifies the analysis definition. A backup is automatically created before making changes.

ParametersJSON Schema
NameRequiredDescriptionDefault
row_spanYesHeight in rows.
row_indexYesRow position (0-based).
visual_idYesThe visual ID to position.
analysis_idYesThe QuickSight analysis ID.
column_spanYesWidth in columns (1-36).
column_indexYesColumn position (0-35).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only provide idempotentHint=true. The description adds meaningful behavioral context beyond that: it warns that the analysis definition is mutated ('WARNING: This modifies the analysis definition') and that a backup is automatically created before changes, which reassures the agent about reversibility. It stops short of describing permissions or failure modes.

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?

Front-loaded with the core action, followed by scannable pattern bullets, then the warning. Reasonsably tight, though the grid-pattern list is somewhat verbose and could be trimmed without loss.

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?

With an output schema present, return values needn't be explained. The description covers the grid coordinate system, common layouts, and the mutation/backup behavior, leaving only minor gaps like permission requirements. Adequately complete for a 6-param tool.

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 coverage is 100%, so the baseline is 3. The description goes beyond the schema's bare ranges by explaining the 36-column grid model and mapping column_span values to concrete widths (36, 18, 12), which is genuinely useful context not derivable from the schema alone.

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?

States a specific verb+resource ('Set the position and size of a visual in the grid layout'), and the resource is unambiguous against siblings like set_visual_title, add_visual, and delete_visual. An agent can distinguish this tool immediately.

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 gives layout conventions (full/half/third width) that imply when to use it, but never states when to use this tool versus alternatives like add_visual or set_visual_title, nor any prerequisite conditions. Usage is inferred rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_visual_titleA
Idempotent

Set or update the title of a visual.

WARNING: This modifies the analysis definition. A backup is automatically created before making changes.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesThe new display title for the visual.
visual_idYesThe visual ID to update.
analysis_idYesThe QuickSight analysis ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare idempotentHint=true, so the description usefully adds the behavior that matters: it mutates the analysis definition and auto-creates a backup beforehand. This is real context beyond the annotations, though it omits permission/auth requirements and whether the change is reversible.

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?

Two short sentences with the action front-loaded and the destructive warning clearly flagged. No filler; every sentence earns its place.

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?

With an output schema present and all three parameters documented, the description only needs to convey the mutation and backup semantics, which it does. It could say a bit more about permissions or error behavior, but it is complete enough to invoke 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?

Schema description coverage is 100%, so all three parameters (analysis_id, visual_id, title) are already documented in the schema. The description adds no additional parameter-level meaning, so the baseline of 3 applies.

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?

States a specific verb ('Set or update') and resource ('title of a visual'), which cleanly separates it from layout-oriented siblings like set_visual_layout and sheet operations like rename_sheet. It is clear and unambiguous, though it doesn't explicitly name a sibling it is meant to be chosen over.

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?

Usage is implied - an agent infers you call this when you want to change a visual's display title - but there is no explicit when/when-not guidance or mention of alternatives. Adequate but leaves the agent to infer context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

snapshot_analysisA
Read-only

Take a snapshot of the current analysis state for QA comparison.

Use this BEFORE making changes. After changes, use diff_analysis to compare and verify exactly what changed.

ParametersJSON Schema
NameRequiredDescriptionDefault
analysis_idYesThe QuickSight analysis ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile (non-mutating capture) is covered. The description adds workflow lifecycle context (must precede changes, feeds diff_analysis), which is useful. However it says nothing about where the snapshot is stored, whether it persists across sessions, or whether repeated snapshots overwrite prior ones — meaningful behavior for a snapshot tool that remains undisclosed.

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 short sentences, zero filler, and the primary action plus the sequencing constraint are front-loaded before the sibling pointer. Every sentence earns its place.

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?

With an output schema present, return values need no explanation, and readOnlyHint covers safety. The before/after workflow pairing with diff_analysis is fully conveyed. Minor residual gap: persistence/scope of the snapshot is not addressed, which matters for a tool whose whole value is a retrievable baseline.

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 100% with a single required parameter (analysis_id) already documented in the schema as "The QuickSight analysis ID." The description adds no format, sourcing, or constraint detail beyond that, so the baseline 3 applies.

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?

States a specific verb+resource ("take a snapshot of the current analysis state") plus the reason ("for QA comparison"), and explicitly names the sibling diff_analysis that consumes the result. An agent can distinguish this from backup_analysis/restore_analysis/clone_analysis without opening a schema.

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?

Explicit when-to-use: "Use this BEFORE making changes." Explicit alternative and its selecting condition: "After changes, use diff_analysis to compare and verify exactly what changed." Nothing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_calculated_fieldA
Destructive

Update the expression of an existing calculated field.

WARNING: This modifies the analysis definition. A backup is automatically created before making changes. Visuals using this field will reflect the new expression immediately.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesExact name of the calculated field to update.
analysis_idYesThe QuickSight analysis ID.
new_expressionYesThe new QuickSight expression. Uses the same syntax as add_calculated_field.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only carry destructiveHint=true, and the description meaningfully extends that: it discloses that the analysis definition is mutated, that a backup is created automatically, and that dependent visuals reflect the new expression immediately. Missing only permission/auth requirements and whether the change is reversible beyond the backup.

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?

Front-loaded purpose sentence followed by a compact warning block; every sentence carries actionable information (mutation, backup, immediate visual impact). No filler, though it is slightly more verbose than strictly necessary.

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 mutation tool with an output schema and a single destructiveHint annotation, the description supplies the key side effects an agent needs (definition change, automatic backup, immediate visual propagation). Only permission requirements and return-value framing are left out, which the output schema largely covers.

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 100%, so all three parameters (name, analysis_id, new_expression) are already documented in the schema. The description adds only the note that new_expression uses the same syntax as add_calculated_field, which is a small but real addition; baseline 3 is appropriate.

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?

States a specific verb (update), a specific sub-resource (the expression of a field), and a scope qualifier ('existing calculated field') that implicitly separates it from add_calculated_field and delete_calculated_field. It stops short of naming those siblings explicitly, so the differentiation is inferable rather than stated.

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 usage by requiring an existing field and warning about definition mutation, but it never states when to pick this over add_calculated_field or delete_calculated_field, nor what prerequisites (e.g. owning the analysis) must hold. Adequate but clearly incomplete guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_dataset_definitionA
Destructive

Update full dataset definition from JSON.

WARNING: This replaces the entire dataset definition. A backup is created automatically before the update.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataset_idYesThe QuickSight dataset ID.
definition_jsonYesJSON string containing the full dataset definition. Must include PhysicalTableMap, LogicalTableMap, ImportMode. Obtain the current definition from get_dataset first.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Although destructiveHint=true already flags risk, the description adds genuinely useful context beyond the annotation: it explicitly says the ENTIRE definition is replaced and that a backup is created automatically. The backup guarantee is real behavioral information an agent cannot infer from the annotation alone.

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?

Two short sentences, with the destructive warning front-loaded exactly where an agent will read it before acting. Every sentence earns its place and nothing is padded.

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?

An output schema exists, so return values need not be explained, and the annotation covers the destructive hint. The description covers replacement scope and the automatic backup, though it omits any prerequisite flow (get_dataset first) that would make it fully self-contained for a full-replacement mutation.

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 100% and the schema already documents dataset_id and the required JSON keys (PhysicalTableMap, LogicalTableMap, ImportMode) plus the get_dataset prerequisite. The description adds nothing about the parameters, so the baseline 3 applies.

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?

States a specific verb (Update) and resource (full dataset definition) with the source (from JSON), which is clear enough to distinguish it from the SQL-oriented siblings like update_dataset_sql. It does not, however, explicitly call out what makes it different from those siblings, so it lands just short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers no when-to-use guidance, no prerequisites, and no alternatives. With many related siblings (update_dataset_sql, modify_dataset_sql, create_dataset, get_dataset), the agent gets no help deciding when this full-replacement path is appropriate versus the SQL-editing tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_dataset_sqlA
Destructive

Update the SQL query for a QuickSight dataset.

WARNING: This modifies the dataset in place. A backup is created by default.

ParametersJSON Schema
NameRequiredDescriptionDefault
new_sqlYesThe new SQL query to set. Must be valid SQL for the dataset's data source (e.g., Snowflake, Redshift).
dataset_idYesThe QuickSight dataset ID.
backup_firstNoCreate a backup before updating (default True). Strongly recommended -- set to False only if you already have a manual backup.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, so the mutation risk is partly covered; the description usefully adds that the change is in-place and that a backup is created by default. The backup behavior is genuine context beyond the annotation, though it does not state permissions, reversibility, or how to restore.

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?

Two tight sentences, with the safety warning front-loaded right after the action. Nothing is wasted and the most important information appears first.

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?

With annotations, a full output schema, and 100% parameter coverage, the description need only cover what structured data cannot. It covers in-place mutation and backup defaults well, but omits any routing against the ambiguous 'modify_dataset_sql' sibling.

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 100%, with each parameter documented in the schema (including new_sql validity and backup_first's recommendation). The description adds no parameter detail beyond that, so the baseline 3 is appropriate.

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?

States a specific verb and resource ('Update the SQL query for a QuickSight dataset'), so the operation is unambiguous. However, it offers no differentiation from the near-identical sibling 'modify_dataset_sql' (or 'update_dataset_definition'), leaving the agent unable to tell which SQL-mutation tool is intended.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance and no mention of alternatives, despite a sibling named 'modify_dataset_sql' that appears to do the same job. The agent is left to guess which tool applies, and the description never states prerequisites such as needing 'get_dataset_sql' first.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_analysis_healthA
Read-only

Run a comprehensive health check on a QuickSight analysis.

Use this AFTER any write operation to verify the analysis is healthy. This is the "reviewer" that ensures changes actually took effect and nothing was silently broken.

Checks performed:

  • Analysis status is SUCCESSFUL (not FAILED or IN_PROGRESS)

  • Sheet count is within QuickSight limits (<=20)

  • All visuals have corresponding layout elements

  • All calculated fields reference valid dataset identifiers

ParametersJSON Schema
NameRequiredDescriptionDefault
analysis_idYesThe QuickSight analysis ID to check.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnlyHint=true, so the safety profile is covered. The description goes further by enumerating the exact checks performed (status, sheet count, visual-layout alignment, calculated-field references), which genuinely informs the agent what a healthy result entails. It omits failure/return-shape detail, but that is partly the output schema's job.

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?

Front-loaded with purpose, then usage timing, then a clean bulleted list of checks. Every sentence earns its place and the scoping/timing constraint leads rather than trails.

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 verification tool with a full output schema, the description supplies the trigger condition and the checklist of what is validated. Nothing needed to invoke it correctly is missing.

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?

Single parameter with 100% schema coverage; the schema already documents analysis_id fully. The description adds no syntax, format, or sourcing guidance beyond what the schema provides, so the baseline 3 applies.

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?

States a specific verb (health check) and resource (QuickSight analysis) plus the checks it performs. The 'reviewer that ensures changes actually took effect' framing clearly distinguishes it from the mutation and read siblings in the list.

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?

"Use this AFTER any write operation to verify the analysis is healthy" gives an explicit when-to-use trigger tied to the write workflow. It does not name specific alternative verification tools or state when NOT to run it, so it falls just 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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 61 tool updatesv1.1.0
    • First observedadd_calculated_field
    • First observedadd_filter_group
    • First observedadd_parameter
    • First observedadd_sheet
    • First observedadd_visual
    • First observedbackup_analysis
    • First observedbackup_dataset
    • First observedcancel_refresh
    • First observedclone_analysis
    • First observedcreate_bar_chart
    • First observedcreate_combo_chart
    • First observedcreate_dataset
    • First observedcreate_kpi
    • First observedcreate_line_chart
    • First observedcreate_pie_chart
    • First observedcreate_pivot_table
    • First observedcreate_table
    • First observeddelete_calculated_field
    • First observeddelete_empty_sheets
    • First observeddelete_filter_group
    • First observeddelete_parameter
    • First observeddelete_sheet
    • First observeddelete_visual
    • First observeddescribe_analysis
    • First observeddiff_analysis
    • First observedget_analysis_raw
    • First observedget_calculated_field
    • First observedget_columns_used
    • First observedget_dashboard_versions
    • First observedget_dataset
    • First observedget_dataset_sql
    • First observedget_error_patterns
    • First observedget_filters
    • First observedget_learning_insights
    • First observedget_parameters
    • First observedget_refresh_status
    • First observedget_visual_definition
    • First observedlist_analyses
    • First observedlist_calculated_fields
    • First observedlist_dashboards
    • First observedlist_datasets
    • First observedlist_recent_refreshes
    • First observedlist_sheet_visuals
    • First observedlist_visuals
    • First observedmodify_dataset_sql
    • First observedpublish_dashboard
    • First observedrefresh_dataset
    • First observedrename_sheet
    • First observedreplicate_sheet
    • First observedrestore_analysis
    • First observedrollback_dashboard
    • First observedsearch_analyses
    • First observedsearch_dashboards
    • First observedsearch_datasets
    • First observedset_visual_layout
    • First observedset_visual_title
    • First observedsnapshot_analysis
    • First observedupdate_calculated_field
    • First observedupdate_dataset_definition
    • First observedupdate_dataset_sql
    • First observedverify_analysis_health

TDQS

B3.4/5.0

Scored across 61 tools

Disambiguation4/5

Most tools target a distinct resource+action, and descriptions clarify boundaries well. However, there is real overlap among update_dataset_sql, modify_dataset_sql, and update_dataset_definition, and between add_visual and the create_*_chart helpers; list_visuals vs list_sheet_visuals also blur slightly.

Naming Consistency4/5

The set overwhelmingly follows a snake_case verb_noun convention (get_/list_/add_/delete_/update_). The main deviation is the mix of add_ (add_sheet, add_visual, add_parameter) versus create_ (create_kpi, create_bar_chart, create_dataset) for essentially the same insert semantics, but overall it is readable and predictable.

Tool Count3/5

61 tools is heavy and pushes past the comfortable range, with some granularity that could be consolidated (set_visual_title/set_visual_layout, the seven create_*_chart helpers). The breadth of QuickSight (analyses, datasets, dashboards, sheets, visuals, parameters, filters) justifies much of it, but it is still borderline bloated.

Completeness4/5

Calculated fields, visuals, sheets, parameters, and filters have solid lifecycle coverage, and analyses have backup/restore/clone/publish. Notable gaps remain at the top level: no delete_dataset, delete_analysis, create_analysis, or create/delete_dashboard, and no generic update_visual, which agents must work around.

Maintenance

ActivityInactive
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables natural language querying of databases with multi-turn conversations, auto-generated charts, and proactive monitoring via scheduled queries and alerts.
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables natural language interactions with Salesforce data, metadata, and reports, including report creation, discovery, and schema inspection.
    21
    5 npm
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables natural language querying of Amazon Advertising data including Sponsored Products, Brands, Display, DSP reports, and AMC SQL workflows, with live data from the Amazon Ads API.
    23
    MIT