Skip to main content
Glama
cvm-mcp
by msperlin

describe_dataset

Read-only

Inspect a CVM dataset's tables, cached periods, and columns, and get detailed column meanings, units, and caveats to guide accurate SQL queries.

Instructions

Show the tables, cached periods and columns of one dataset.

Columns come from the local cache; if a table was never queried, columns is empty — call the corresponding data tool once to populate it. With detail=True, column_details explains units and pitfalls (e.g. VL_CONTA vs VL_CONTA_BRL, or FRE percentages).

Input Schema

NameRequiredDescriptionDefault
tableNoOptional table inside the dataset.
detailNoInclude curated column meanings (description, unit, caveats). Use this before writing run_query SQL.
datasetYesDataset id from list_datasets, e.g. 'dfp', 'fi_inf_diario'.

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds genuinely non-obvious behavior: columns are served from a local cache and can be empty until a data tool is called, which an agent could not infer from the schema or annotations.

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 return contents are front-loaded in the first sentence, followed by the cache caveat and the detail flag. The parenthetical examples earn their place by making the detail output concrete, though the prose is slightly dense.

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 spelled out, and the cache-population caveat covers the main surprise an agent would hit. The only gap is that the relationship to list_datasets and run_query is left implicit.

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 baseline is 3. The description does add some meaning for detail=True by explaining that column_details covers units and pitfalls with concrete examples (VL_CONTA vs VL_CONTA_BRL, FRE percentages), but it says nothing about the table parameter beyond what the schema states.

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 first sentence names a specific verb and resource ('Show the tables, cached periods and columns of one dataset'), which is far more precise than the sibling list_datasets or cache_status. It does not explicitly name a sibling to contrast with, 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 Guidelines4/5

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

It gives a concrete conditional workflow: if a table was never queried, call the corresponding data tool once to populate columns, and use detail=True to get units and pitfalls. It lacks an explicit 'use this instead of X' routing statement against siblings like list_datasets or run_query.

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