Skip to main content
Glama
biztory

Tableau Knowledge MCP

Impact analysis

impact_analysis
Read-only

Identify all downstream assets affected by a node change, including calcs, sheets, dashboards, and workbooks, and return counts by type.

Instructions

What breaks if this changes: every asset that depends on the node, directly OR transitively (up to 10 steps, following DEPENDS_ON), e.g. the calcs, sheets, dashboards and workbooks downstream of a column. The node itself is not included.

`node` is a node id or a plain-language description. Returns `total`, `counts_by_type`, and
`affected_assets` sorted by type then name.

Input Schema

NameRequiredDescriptionDefault
nodeYes
graph_idNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly/openWorld/non-destructive, so the bar is lower, and the description adds real value beyond them: traversal edge type (DEPENDS_ON), a depth cap of 10 steps, and the fact that the queried node is excluded from results. It does not say what happens when the depth cap truncates a larger blast radius, which is the one behavioral detail an agent would want.

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: the purpose/scope lead, the input note, then the return keys. Every sentence carries information (scope, depth limit, edge type, self-exclusion, return shape) with no filler, and the highest-value content 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 the brief mention of `total`, `counts_by_type`, and sorted `affected_assets` is sufficient rather than redundant. For a two-parameter read tool with annotations, the only real omission is the undefined `graph_id` and truncation behavior at the 10-step limit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry parameter meaning. It does well for `node` (accepts a node id OR a plain-language description, a non-obvious flexibility), but `graph_id` is never mentioned at all, leaving the second parameter entirely unexplained.

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?

Opens with a concrete verb-in-context question ('What breaks if this changes') and precisely defines the resource: every asset depending on the node, direct or transitive, up to 10 steps along DEPENDS_ON. The examples (calcs, sheets, dashboards, workbooks downstream of a column) and the explicit exclusion of the node itself leave no ambiguity about what the tool returns versus a generic traversal.

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 'what breaks if this changes' framing gives a clear use context, and the DEPENDS_ON/10-step scope implies when a broader traversal (e.g. the `lineage` sibling) would be the alternative. However, it never names an alternative or states a when-not-to-use condition, so the agent must infer the boundary with `lineage` itself.

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