Skip to main content
Glama

Describe dataset

describe_dataset
Read-onlyIdempotent

Inspect a dataset by path to get every variable’s definition, data type, coded-value format, and filter status, along with years covered, source description, and equivalent R/Stata code.

Instructions

Inspect one dataset: every variable with its definition, data type, coded-value format, and whether it is filterable. Also returns the years covered, the source description, and equivalent R/Stata code.

This is where the [FILTER] marks come from — filtering on anything else returns UNFILTERED data rather than an error.

Args: path: Dataset path, template or filled in — both resolve to the same dataset: "schools/ccd/enrollment/{year}/{grade}/race/" or "schools/ccd/enrollment/2022/grade-99/race/" filterable_only: Show only the variables usable as filters

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pathYes
filterable_onlyNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, covering safety. The description adds valuable behavioral details beyond that: the FILTER mark behavior, template path resolution (both template and filled paths resolve to same dataset), and the inclusion of equivalent R/Stata code in the output. No contradictions. This exceeds the baseline and earns a 4 for adding meaningful behavioral context beyond 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?

The description is well-structured and front-loaded: a concise first sentence summarizing the output, followed by a crucial behavioral note about FILTER marks, then a clear 'Args' section. Every sentence earns its place — there is no fluff or repetition. The length is appropriate for the tool's complexity.

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?

Given the tool has an output schema (has output schema: true), the description doesn't need to detail the return structure, but it still lists the content types. It explains the path parameter flexibility, filter behavior, and the presence of R/Stata code. Annotations cover safety. Nothing an agent needs 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.

Parameters5/5

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

Schema description coverage is 0%, so the description must fully explain parameters. It does: 'path' is described as a dataset path, template or filled, with concrete examples, and 'filterable_only' is described as showing only variables usable as filters. This adds meaningful meaning beyond the raw schema, fully compensating for the coverage gap.

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

Purpose5/5

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

The description states a specific verb ('Inspect') and resource ('one dataset'), then enumerates exactly what it returns: variable definitions, data types, coded-value format, filterability, years covered, source description, and equivalent R/Stata code. It also explicitly ties to the [FILTER] marks, distinguishing it from siblings like get_data or search_datasets by describing its unique role in revealing filterable 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?

The description provides clear context on when to use this tool: it is 'where the [FILTER] marks come from' — implying that when the agent needs to know which fields are filterable before querying data, this is the tool. It also warns about behavior ('filtering on anything else returns UNFILTERED data rather than an error'), effectively telling the agent to consult this tool to avoid incorrect filtering. It doesn't explicitly name sibling tools, but the guidance is strong.

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