Skip to main content
Glama

Georgia Civic Data

describe_dataset

Full schema for one topic: every column (name/type/role/unit/value range/null-meaning), the exact filters list with enum values (read this before query_dataset — it is the authoritative set of filter keys), the FK→dimension join shape (foreign_keys), example queries, usage, limitations, null semantics, tags, and schema_hash (for cache/drift detection). The top-level key_metric names the single headline column most answers want; each column carries key_metric_grain_contributor (a grain axis the key metric is only comparable within — pin or group by it) and metric_component (numerator/denominator of a rate/average metric). recommended_query gives the safe default query shape (key metric + filters to pin + required single-selects) plus a ranking recipe for top/bottom-N asks; filter_hints lists paired filters; each categorical filter carries has_total / requires_single_value. Pass verbosity='schema' for a much smaller payload that drops the prose (description/usage/limitations/example queries/column descriptions) but keeps every field needed to compose a correct query — use it when you only need the filter keys and enums; prefer the default 'full' before reporting conclusions (the limitations prose carries the caveats). On an unknown topic returns a self-describing error listing available topics + a 'did you mean' hint. main_topic defaults to 'education'; pass 'census' for Census topics.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
topicYes
verbosityNo'full' (default) or 'schema' (drops prose; keeps columns/filters/enums/key_metric/recommended_query).full
main_topicNoeducation

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observed

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations, the description fully carries the behavioral burden. It discloses the precise output contents, the payload difference between verbosity modes, the self-describing error behavior on unknown topics (including topic list and 'did you mean' hints), and the main_topic default behavior. No annotations are present to contradict it.

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 dense and every sentence earns its place, but it is one long unbroken paragraph that could be hard to scan. It is front-loaded with the core purpose and then layers detail, which is good, but formatting with paragraph breaks would improve 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?

The description is complete for a tool of this complexity. It covers all parameters, defaults, verbosity modes, error behavior, usage before query_dataset, and important output fields like key_metric, recommended_query, and filter_hints. The output schema exists, but the description still adds interpretive context, making it self-sufficient.

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 only 33%, but the description compensates thoroughly. It explains the 'topic' parameter via the error/topic-list behavior, defines 'verbosity' values with concrete tradeoffs, and specifies 'main_topic' defaults and valid inputs ('education' default, 'census' alternative). This adds substantial meaning beyond the bare schema.

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 explicitly states the tool's job: returning the full schema for one topic, including columns, filters, foreign keys, example queries, and limitations. It is clearly distinguished from siblings like query_dataset by positioning itself as the schema-reading counterpart ('read this before query_dataset') and from list_datasets by focusing on a single topic rather than enumerating datasets.

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?

The description gives explicit guidance on when to use the tool: read it before query_dataset, use verbosity='schema' when only filter keys/enums are needed, and prefer 'full' before reporting conclusions. It also tells the user to pass 'census' for Census topics, making the selection between default and alternative topics explicit.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.5/5.0
Disambiguation5/5

Each tool maps to a distinct capability: discovery, schema, values, entity resolution, row query, aggregation, cross-dataset joins, and dimension reads. Even the pairs that sound closest (list_datasets vs search_datasets, describe_dataset vs get_contract) are explicitly differentiated by behavior and use case.

Naming Consistency4/5

Names are uniformly lowercase snake_case and mostly follow a clear verb_noun pattern (describe_dataset, query_dataset, resolve_entity, link_tables). Only aggregate (bare verb) and distinct_values (noun phrase without a verb) deviate slightly from that pattern.

Tool Count5/5

Twelve tools is a well-scoped size for a data-access MCP server. Each tool adds a non-redundant capability, supporting the full workflow from discovery and schema inspection to querying, aggregation, and cross-dataset joins.

Completeness5/5

The surface covers the complete read-only lifecycle: catalog discovery, schema/dimension inspection, value and entity lookup, row-level queries, grouped aggregation, cross-dataset analysis, and dimension table reads. Bulk data access is handled via pointers in query results rather than a dedicated tool, which is a deliberate non-gap for this query-focused server.

Resources