Skip to main content
Glama

List CDC Catalog Vocabulary

cdc_list_catalog_vocabulary
Read-only

List the controlled vocabularies cdc_discover_datasets' category and tags filters are matched against — every domain category and domain tag the CDC catalog publishes, each with the number of entries carrying it. Call it before filtering a search: a value the catalog does not carry matches nothing and returns an empty page, which is indistinguishable from a real value with no results. All categories come back whole; the tag vocabulary runs to roughly 1,600 values, so tags are ranked by entry count and returned one page at a time via tag_limit and tag_offset. Pass filter to narrow both vocabularies to the values whose words contain it.

Input Schema

NameRequiredDescriptionDefault
domainNoCDC Socrata host to read the vocabulary from. "data.cdc.gov" (default) and "chronicdata.cdc.gov" front the same catalog and publish the same vocabulary, so this selects which host answers, never which values exist.data.cdc.gov
filterNoNarrow both vocabularies to the values related to this text. A value matches when every word of the filter appears inside one of its words ("vaccin" reaches "Vaccinations" and "covid-19 vaccination"), or when the whole value appears in the filter. Matching is not fuzzy — a misspelling returns nothing rather than a guess — and a filter under three letters is ignored.
tag_limitNoTags to return in this call (default 50). Tags are ranked by entry count, so the default page is the most-used end of the vocabulary; the response reports how many matched and a nextOffset while more remain. A tag_limit at or above the number of matching tags returns all of them in one call. Categories are never paged — every one arrives whole.
tag_offsetNoIndex of the first tag to return, for continuing past a previous call (default 0). Ranking is stable, so tag_offset plus tag_limit walks the vocabulary without gaps or repeats. An offset at or past the number of matching tags returns an empty tag list rather than an error.

Output Schema

NameRequiredDescriptionDefault
capNoThe tag_limit that bounded this response.
tagsNoThe requested window of domain tags, ranked by entry count. Pass values to cdc_discover_datasets' tags input; tags union there, so each one added widens the result set.
errorNoPresent when the call failed. Absent on success.
shownNoNumber of tags returned in this response.
domainNoCDC Socrata host this vocabulary was read from.
noticeNoGuidance when the response is a subset of the vocabulary, when a filter too short to discriminate was ignored, when the filter matched nothing, or when tag_offset ran past the end of the matches.
tagCountNoTags matching the filter, before tag_limit and tag_offset.
truncatedNoTrue when the returned tags are a subset of the matching ones. Absent means every matching tag is in this response.
categoriesNoEvery domain category matching the filter, ranked by entry count. Pass a value to cdc_discover_datasets' category input exactly as spelled here.
nextOffsetNoValue to pass as tag_offset on the next call to continue after the last tag returned. Present only while matching tags remain.
categoryCountNoCategories matching the filter. Every one of them is in this response.
vocabularySizeNoSize of each full vocabulary on this host, before any filter was applied.
truncationCeilingNoUpper bound on the entry count of every tag after this page — the tags from nextOffset on. Tags are ranked by entry count, so none of those is carried by more entries than the last tag shown. It does not bound the tags before tag_offset: those rank at or above the first tag shown.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / tag_limit / description
      Previous value: -"Tags to return in this call (default 50, max 500). Tags are ranked by entry count, so the default page is the most-used end of the vocabulary; the response reports how many matched and a nextOffset while more remain. Categories are never paged — all 55 arrive whole."New value: +"Tags to return in this call (default 50). Tags are ranked by entry count, so the default page is the most-used end of the vocabulary; the response reports how many matched and a nextOffset while more remain. A tag_limit at or above the number of matching tags returns all of them in one call. Categories are never paged — every one arrives whole."
    • changedInput schema / properties / tag_limit / maximum
      Previous value: -500New value: +9007199254740991
    • changedOutput schema / properties / truncationCeiling / description
      Previous value: -"Upper bound on the entry count of every tag not returned. Tags are ranked by entry count, so no omitted tag is carried by more entries than the last one shown."New value: +"Upper bound on the entry count of every tag after this page — the tags from nextOffset on. Tags are ranked by entry count, so none of those is carried by more entries than the last tag shown. It does not bound the tags before tag_offset: those rank at or above the first tag shown."
  2. Added

TDQS

A4.6/5.0
Behavior4/5

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

Annotations provide only readOnlyHint=true, and the description adds substantial behavior beyond that: categories are never paged, tags number ~1,600 and are returned ranked by entry count one page at a time, ranking is stable so offset+limit walks without gaps, and an offset past the end yields an empty list rather than an error. It also discloses that matching is not fuzzy and that filters under three letters are ignored. It stops short of describing the response's actual shape, though an output schema exists to cover that.

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?

Purpose comes first, then the usage rule, then paging behavior, then the filter — a well-ordered, front-loaded structure. It is dense with useful detail rather than filler, though "All categories come back whole" is restated in the tag_limit schema description, costing a little redundancy in an otherwise tight passage.

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?

For a four-parameter, read-only listing tool with full schema coverage, an output schema, and readOnlyHint annotations, the description supplies everything an agent needs: when to call it, how paging works, and how filtering behaves. No relevant gap remains for correct invocation.

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

Parameters4/5

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

Schema coverage is 100% and the schema descriptions are themselves detailed, so the baseline would be 3. The description still adds synthesized meaning — why tag_limit/tag_offset exist together (ranking plus paging), that a limit at or above the match count returns everything in one call, and that filter matching is whole-value-substring rather than fuzzy — which is more than a restatement of the 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?

States a specific verb and resource ("List the controlled vocabularies") and pins the scope precisely: the domain categories and domain tags that cdc_discover_datasets' category and tags filters are matched against. It explicitly ties itself to a named sibling, so an agent can distinguish it from the other cdc_* tools without reading any schema.

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?

Gives an explicit precondition ("Call it before filtering a search") and the concrete failure mode that justifies it — an unknown value returns an empty page indistinguishable from a valid value with no results. It also names the sibling whose filters it serves and explains the filter parameter's role, leaving nothing to inference.

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.