Skip to main content
Glama

profile_table

Profiles a loaded Power BI table for blanks, duplicates, constant or truncated columns, placeholder dates, and row-count mismatches to catch data-quality issues before analysis.

Instructions

Data-quality profile of one loaded table: per column blanks, distinct count, min/max, longest text; flags entirely-blank / constant columns, text at a truncation limit (30/255...), placeholder dates (1900/9999). key_columns checks duplicates and blank keys; expected_row_count (e.g. COUNT(*) you ran on the source) flags a mismatch.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tableYes
columnsNo
instanceYes
key_columnsNo
max_columnsNo
expected_row_countNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations at all, the description carries the full burden. It does disclose useful behavior: which conditions get flagged (entirely blank, constant, text at truncation limit, placeholder dates 1900/9999) and that key_columns triggers duplicate/blank-key checks. It never says whether this reads the model or hits the underlying source, gives no cost/performance signal for a potentially expensive per-column scan, and leaves the max_columns cap (default 80) unexplained.

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 core purpose is front-loaded in the first clause and the output/flag list follows compactly; the closing sentence covers the two nontrivial parameters. It reads as a single dense run-on sentence with a mid-sentence line break, but nearly every clause carries 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 the return shape needn't be spelled out. However, for a 6-parameter profiling tool with no annotations, the definition omits whether profiling runs against the model engine or the data source, how the max_columns cap affects results, and any performance expectation — gaps that matter 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 0% across 6 parameters. The description does real work for two of them — it explains that key_columns checks duplicates and blank keys, and that expected_row_count is compared against the actual row count to flag a mismatch — but consumes the rest as obvious (instance, table) or silent (columns scoping, max_columns default 80). Partial compensation, not full.

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 ('Data-quality profile of one loaded table') and enumerates exactly what is computed: blanks, distinct count, min/max, longest text, plus flags for blank/constant columns, truncation-limit text and placeholder dates. This clearly differentiates it from siblings like get_table_row_count or list_columns, which only return structural information.

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 framing — you profile a table whose data quality you doubt — and the description hints at when to use the optional checks ('e.g. COUNT(*) you ran on the source' for expected_row_count). But there is no explicit when-to-use / when-not-use guidance relative to alternatives such as check_relationship_integrity or find_unused_fields.

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