Skip to main content
Glama

Server Details

Search and query CDC public health data — mortality, vaccinations, surveillance, behavioral risk.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
cyanheads/cdc-health-mcp-server
GitHub Stars
3
Server Listing
cdc-health-mcp-server

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.2/5 across 4 of 4 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool has a clearly distinct role: discovery, schema inspection, Socrata querying, and WONDER querying. The descriptions explicitly cross-reference each other (e.g., discover returns IDs used by get_schema and query_dataset), and the WONDER tool is clearly separated as a different system.

Naming Consistency5/5

All tool names follow a consistent cdc_ verb_noun pattern: discover_datasets, get_dataset_schema, query_dataset, query_wonder. The prefix and underscore style are uniform, making the set highly predictable.

Tool Count5/5

With 4 tools, the set is compact yet covers the core workflow for both CDC data systems it targets. There are no redundant tools, and each adds a meaningful capability without overwhelming the agent.

Completeness5/5

For the domain of read-only CDC data access, the tool surface is complete: find datasets, inspect schemas, query Socrata data, and query WONDER mortality data. There are no obvious dead ends or missing operations for typical data exploration workflows.

Available Tools

4 tools
cdc_discover_datasetsCdc Discover DatasetsA
Read-only
Inspect

Search the CDC dataset catalog by keyword, category, or tag. Returns dataset IDs, names, truncated descriptions, column counts, and update timestamps. Use cdc_get_dataset_schema for the full column list of a chosen dataset.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoFilter by domain tags (e.g., ["covid19", "surveillance"]).
limitNoResults to return (default 10, max 100).
orderNoResult ordering. "dataset_id" (default) sorts deterministically by each dataset's unique catalog ID — required for stable offset pagination, since consecutive pages form a gap-free, duplicate-free traversal. "relevance" returns best-match ranking for keyword search but is not stably paginable across pages, so walking offsets can skip or repeat datasets.dataset_id
queryNoFull-text search across dataset names and descriptions (e.g., "diabetes mortality", "lead exposure children").
domainNoCDC Socrata portal to search. "data.cdc.gov" (default) is the main CDC catalog; "chronicdata.cdc.gov" hosts chronic-disease and small-area datasets (PLACES, the Heart Disease & Stroke Atlas, Environmental Public Health Tracking).data.cdc.gov
offsetNoPagination offset for browsing beyond first page (max 9999).
categoryNoFilter by domain category (e.g., "NNDSS", "Vaccinations", "Behavioral Risk Factors").

Output Schema

ParametersJSON Schema
NameRequiredDescription
noticeNoGuidance when no datasets matched — echoes the applied filters and suggests how to broaden the search.
datasetsYesMatching datasets.
totalCountYesTotal matching datasets in the catalog (for pagination).
appliedFiltersYesFilters applied to this query; absent fields indicate no filter on that dimension.
Behavior3/5

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

Annotations already declare readOnlyHint=true, covering safety. The description adds useful details like 'truncated descriptions' and 'column counts', but doesn't disclose pagination or other behaviors beyond what the schema already explains. This is adequate but not rich.

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?

Two sentences, front-loaded with purpose and search dimensions, followed by return fields and a sibling pointer. Every sentence earns its place with zero waste.

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 a full input schema, output schema, and readOnlyHint annotation, the concise description is sufficient. It clearly scopes the tool as catalog search and differentiates it from schema retrieval. The presence of output schema eliminates the need to describe return values in detail.

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?

The input schema has 100% description coverage for all 7 parameters, so the baseline is 3. The description only echoes 'keyword, category, or tag', which maps to existing params, adding no new parameter semantics.

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 uses the specific verb 'Search', identifies the resource 'CDC dataset catalog', and lists search dimensions (keyword, category, tag) plus return fields. It explicitly points to cdc_get_dataset_schema for full column lists, distinguishing it from that sibling tool.

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 directs users to cdc_get_dataset_schema for full column lists, providing an explicit alternative for the next step. However, it doesn't mention when to use cdc_query_dataset or cdc_query_wonder for data retrieval, so exclusion guidance is incomplete.

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

cdc_get_dataset_schemaCdc Get Dataset SchemaA
Read-only
Inspect

Fetch the full column schema for a CDC dataset — names, data types, descriptions, row count, and last-updated timestamp. Get dataset IDs from cdc_discover_datasets.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNoCDC Socrata portal hosting the dataset. Use the same portal you found the dataset on via cdc_discover_datasets: "data.cdc.gov" (default) or "chronicdata.cdc.gov".data.cdc.gov
datasetIdYesFour-by-four dataset identifier (e.g., "bi63-dtpu"). Obtain from cdc_discover_datasets.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameYesDataset display name from the catalog (e.g., "Provisional COVID-19 Deaths by Sex and Age").
columnsYesDataset columns with types and descriptions.
rowCountNoTotal number of rows when reported by upstream; omitted when unknown.
updatedAtNoLast data update timestamp when provided.
descriptionNoDataset description when provided.
Behavior4/5

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

The readOnlyHint annotation already establishes safety, and the description adds behavioral detail by disclosing exactly what is returned (schema, row count, timestamp). No contradictions with 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 a single, well-structured sentence that conveys all essential information without redundancy. Every part earns its place.

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 simple parameter set, readOnlyHint annotation, and presence of an output schema, the description is complete. It covers prerequisites and return contents adequately.

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%, so the baseline is 3. The description adds valuable guidance by referencing cdc_discover_datasets as the source for datasetId, enhancing parameter meaning beyond the raw 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 clearly states the tool fetches the full column schema for a CDC dataset, listing specific contents (names, data types, descriptions, row count, last-updated timestamp). This distinguishes it from sibling tools like cdc_discover_datasets (discovery) and cdc_query_dataset (querying).

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 explicitly instructs users to get dataset IDs from cdc_discover_datasets, providing a clear prerequisite and sequencing. It does not explicitly state when not to use this tool, but the context is sufficient.

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

cdc_query_datasetCdc Query DatasetA
Read-only
Inspect

Execute a SoQL query against any CDC dataset. Supports filtering, aggregation, sorting, full-text search, and field selection. Use cdc_discover_datasets to find dataset IDs and cdc_get_dataset_schema to inspect columns before querying.

ParametersJSON Schema
NameRequiredDescriptionDefault
groupNoSoQL GROUP BY clause. Requires aggregate functions in select.
limitNoMax rows to return (default 100, max 5000).
orderNoSoQL ORDER BY clause. Field name with optional ASC/DESC: "total_deaths DESC".
whereNoSoQL WHERE clause. Strings must be single-quoted: "state='California' AND year=2020". If a column name matches a SoQL keyword (group, select, where, order, limit, offset, having, search), wrap it in backticks: "`group`='By Year'".
domainNoCDC Socrata portal hosting the dataset. Must match the portal the dataset lives on: "data.cdc.gov" (default) or "chronicdata.cdc.gov" (PLACES and other chronic-disease/small-area datasets).data.cdc.gov
havingNoSoQL HAVING clause. Filters aggregated results.
offsetNoRow offset for pagination (max 1,000,000).
searchNoFull-text search across all text columns. For precise filtering use the where parameter instead.
selectNoSoQL SELECT clause — column names, aliases, or aggregates: "state, sum(deaths) as total_deaths". Omit for all columns. To enumerate distinct values of a column, set select to "{column}, count(*) as count" with group="{column}" and order="count DESC".
datasetIdYesFour-by-four dataset identifier (e.g., "bi63-dtpu"). Obtain from cdc_discover_datasets.

Output Schema

ParametersJSON Schema
NameRequiredDescription
capNoThe requested limit that bounded this response.
rowsYesResult rows with requested fields. Most values are strings (including numbers/dates); geo columns return GeoJSON objects.
shownNoNumber of rows returned in this response.
noticeNoGuidance when no rows matched or results were truncated — how to verify filters, paginate, or broaden the query.
rowCountYesNumber of rows returned in this response.
truncatedNoTrue when the result row count hit the requested limit and may be incomplete.
effectiveQueryYesAssembled SoQL query string sent to the Socrata API.
Behavior2/5

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

The description states the tool executes a SoQL query and lists capabilities, but provides no additional behavioral context such as response format, pagination behavior, error handling, or rate limits. The only annotation (readOnlyHint=true) already covers read-only nature, and the description adds no extra disclosure beyond that.

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 three sentences, front-loaded with the core action, followed by a compact capability list and a terse pointer to sibling tools. Every sentence earns its place with no redundancy or filler.

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?

The description provides essential context: what the tool does, its capabilities, and the prerequisite sibling tools. It doesn't address the cdc_query_wonder alternative or any operational caveats, but the comprehensive schema and output schema compensate, making it adequate for a complex SoQL tool.

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%, with each of the 10 parameters already documented in rich detail (e.g., quoting rules, backtick advice, max limits). The description's capability list is a high-level summary that adds no new meaning beyond the schema, so the baseline of 3 applies.

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 opens with 'Execute a SoQL query against any CDC dataset' – a specific verb and resource. It lists five distinct capabilities (filtering, aggregation, sorting, full-text search, field selection) and explicitly names sibling tools for discovery and schema inspection, distinguishing this as the querying tool.

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?

Clear guidance is given to use cdc_discover_datasets for dataset IDs and cdc_get_dataset_schema for column inspection before querying. However, it doesn't contrast with the sibling cdc_query_wonder, leaving ambiguity about which query tool to use in which scenario.

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

cdc_query_wonderCdc Query WonderA
Read-only
Inspect

Query CDC WONDER for national US mortality statistics — deaths, population, and crude/age-adjusted death rates — from the Underlying Cause of Death database (D76, 1999–2020). Break results out by year, age group, sex, and/or race, and filter by ICD-10 cause of death, sex, age group, or year range. WONDER is a separate CDC system from the Socrata datasets the other cdc_* tools query. Data is national only — sub-national (state/county) breakdowns are not available through the API (CDC vital-statistics policy). Cause of death is a filter, not a grouping. CDC suppresses any cell with fewer than 10 deaths (returned as null). The API is rate-limited to one request every ~15 seconds, so requests may be briefly spaced.

ParametersJSON Schema
NameRequiredDescriptionDefault
sexNoFilter by sex.all
group_byNoDimensions to break results out by (1–4), in output-column order — e.g. ["year"], ["year","sex"], ["age_group","race"]. Results are always national. Cause of death is a filter (cause_icd10), not a grouping.
age_groupsNoRestrict to specific ten-year age groups — e.g. ["25-34","35-44"]. "1" is the under-1-year group. Omit for all ages.
year_rangeNoInclusive year range within 1999–2020. Omit for all years.
cause_icd10NoFilter to a specific ICD-10 underlying cause of death. Omit for all causes.

Output Schema

ParametersJSON Schema
NameRequiredDescription
rowsYesResult rows. Each carries the requested group-by dimensions plus deaths, population, crude_rate, and — unless grouped by age_group — age_adjusted_rate (per 100,000). Suppressed measure cells (< 10 deaths) are null.
noticeNoGuidance when no rows matched, or a note that CDC suppressed some cells.
caveatsYesCDC-provided caveats and footnotes: data revisions, population-estimate sources, suppression and rate-reliability rules.
databaseYesWONDER database queried (D76 — Underlying Cause of Death, 1999–2020).
rowCountYesNumber of rows returned.
effectiveQueryYesHuman-readable summary of the grouping and filters sent to WONDER.
suppressedCountYesNumber of measure cells CDC suppressed (< 10 deaths), returned as null.
Behavior5/5

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

Beyond the readOnlyHint annotation, it discloses meaningful behaviors: suppression of cells with fewer than 10 deaths (returned as null), a ~15-second rate limit, and API-level policy restricting sub-national data. These are valuable operational details an agent needs to interpret results and manage request pacing correctly.

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?

Four sentences pack in the essential information: purpose, scope, data source timeframe, key limitations, suppression behavior, and rate limiting. Each sentence earn its place, and the description is well-structured with the core purpose front-loaded.

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 rich input schema, output schema, and readOnlyHint annotation, the description covers the remaining contextual gaps: it names the exact database (D76, 1999–2020), clarifies national vs. sub-national data availability, warns about cell suppression, and mentions rate limiting. This is sufficient for an agent to select and invoke the tool correctly.

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 coverage is 100% with detailed parameter descriptions, so the baseline is 3. The description adds a helpful overview of grouping/filtering dimensions and repeats that cause is a filter, but it does not materially extend the schema's parameter semantics—it largely restates what is already in the input 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 opens with a specific verb and resource: "Query CDC WONDER for national US mortality statistics — deaths, population, and crude/age-adjusted death rates." It distinguishes this tool from siblings by noting "WONDER is a separate CDC system from the Socrata datasets the other cdc_* tools query," making the tool's niche unambiguous.

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 clearly states this tool is for national mortality statistics and that sub-national breakdowns are unavailable. The sibling distinction (Socrata vs. WONDER) provides contextual guidance for selecting between tools, though it does not explicitly name alternative tools or give exclusions beyond the national-only limitation.

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    -
    quality
    D
    maintenance
    Provides access to 73 CDC public health datasets covering disease surveillance, vaccination tracking, behavioral risk factors, environmental health, and outbreak detection across 18 surveillance systems through the Socrata Open Data API.
    Last updated
    2
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Query 2,500+ verified public datasets (World Bank, IMF, Eurostat, OECD, WHO) from your AI agent. Search, analyze, and visualize data, and publish charts — with verified SEC + official source data.
    Last updated
    28
    462
    1
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Provides access to comprehensive public health data from Yale's Population Health Information Visual Explorer, including metrics on immunizations, respiratory diseases, and chronic conditions. It enables users to perform state-level comparisons, time-series analysis, and data filtering across authoritative sources like the CDC and Epic Cosmos.
    Last updated
    5
    22
    MIT

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.