Search and query CDC public health data — mortality, vaccinations, surveillance, behavioral risk (Socrata SODA API) via MCP. STDIO or Streamable HTTP.
- ✓Open-source license (Apache-2.0)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
- ✓Documented (README)
git clone https://github.com/cyanheads/cdc-health-mcp-server{
"mcpServers": {
"cdc-health": {
"command": "node",
"args": ["/path/to/cdc-health-mcp-server/dist/index.js"]
}
}
}MCP Servers overview
<div align="center"> <h1>@cyanheads/cdc-health-mcp-server</h1> <p><b>Search and query CDC public health data — mortality, vaccinations, surveillance, behavioral risk (Socrata SODA API) via MCP. STDIO or Streamable HTTP.</b> <div>4 Tools • 2 Resources • 1 Prompt</div> </p> </div> <div align="center"> [](./CHANGELOG.md) [](./LICENSE) [](https://github.com/users/cyanheads/packages/container/package/cdc-health-mcp-server) [](https://modelcontextprotocol.io/) [](https://www.npmjs.com/package/@cyanheads/cdc-health-mcp-server) [](https://www.typescriptlang.org/) [](https://bun.sh/) </div> <div align="center"> [](https://github.com/cyanheads/cdc-health-mcp-server/releases/latest/download/cdc-health-mcp-server.mcpb) [](https://cursor.com/en/install-mcp?name=cdc-health-mcp-server&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBjeWFuaGVhZHMvY2RjLWhlYWx0aC1tY3Atc2VydmVyIl19) [](https://vscode.dev/redirect?url=vscode:mcp/install?%7B%22name%22%3A%22cdc-health-mcp-server%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40cyanheads/cdc-health-mcp-server%22%5D%7D) [](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) </div> <div align="center"> **Public Hosted Server:** [https://cdc.caseyjhand.com/mcp](https://cdc.caseyjhand.com/mcp) </div> --- ## Tools Four tools for discovering and querying CDC public health data. Three query the CDC Open Data portal (Socrata); one queries CDC WONDER mortality statistics: | Tool | Description | |:---|:---| | `cdc_discover_datasets` | Search the catalog by keyword, category, or tag. Entry point for all queries. | | `cdc_get_dataset_schema` | Fetch column schema, row count, and metadata for a dataset. Essential before writing SoQL queries. Returns a bounded column window with a continuation offset for wide schemas. | | `cdc_query_dataset` | Execute SoQL queries — filter, aggregate, sort, full-text search, and field selection. | | `cdc_query_wonder` | Query CDC WONDER for national mortality statistics (deaths, population, crude/age-adjusted rates) by year, age, sex, and race, filtered by ICD-10 cause. Covers five CDC mortality databases — final and provisional, underlying-cause and multiple-cause. Large tables page with a continuation offset. | ### `cdc_discover_datasets` Search the CDC dataset catalog to find relevant datasets. - Full-text search across dataset names and descriptions - Filter by domain category (e.g., "NNDSS", "Vaccinations", "Behavioral Risk Factors") - Filter by domain tags (e.g., `["covid19", "surveillance"]`) — a dataset matches on any one tag, so each tag added widens the result set; narrow with `query` or `category`, which intersect with the tag set - Returns dataset IDs, names, truncated descriptions, a column count with a short column sample, and update timestamps — use `cdc_get_dataset_schema` for the full column list - Each result carries its catalog `assetType` (`dataset`, `filter`, `chart`, `map`, `story`, `file`, `href`); a `columnCount` of 0 marks an entry that is not tabular and yields no data from the other tools - Pagination via offset for browsing large result sets — `offset` plus `limit` must not exceed 10,000, the ceiling the catalog enforces - `domain` selects the host contacted, `data.cdc.gov` (default) or `chronicdata.cdc.gov` — both front the same catalog and return the same entries, so switching hosts neither widens nor narrows a search --- ### `cdc_get_dataset_schema` Fetch the column schema for a specific dataset. - Column names, data types, and full descriptions — never truncated per column - Row count and last-updated timestamp - Essential for understanding column types before writing `$where` clauses - Accepts four-by-four dataset identifiers (e.g., `bi63-dtpu`) - Returns the first 100 columns by default. Catalog schemas run from 3 to 322 columns, so every ordinary dataset arrives whole; wider ones report `totalCount`, `truncated`, and a `nextOffset` to pass back as `column_offset`. Raise `column_limit` (max 500) to pull a wide schema in one call - A `column_offset` at or past the column count returns an empty window rather than an error - Fails with `not_queryable` when the ID names a non-tabular catalog asset, rather than returning an empty column list - `domain` selects the host contacted, `data.cdc.gov` (default) or `chronicdata.cdc.gov` — a four-by-four ID resolves on either --- ### `cdc_query_dataset` Execute SoQL queries against any CDC dataset. - Full SoQL support: `$select`, `$where`, `$group`, `$having`, `$order` - Full-text search across all text columns via `$q` - Up to 5,000 rows per request with pagination - `truncated` is measured, not guessed: the request fetches one row past the limit and drops it, so a page that fills the limit exactly is reported as complete instead of sending you paginating an aggregate - `nextOffset` names where to resume whenever rows remain. Pair it with an `order` clause — SODA does not order results implicitly, and `order=":id"` works on any dataset - Rows are also bounded by a 200,000-character response budget, so a wide dataset at `limit: 5000` returns a usable page with a `nextOffset` rather than several megabytes - Returns the SoQL clauses it sent as `effectiveQuery`, values in their original text rather than URL-encoded, so a clause can be copied back into the parameter it came from - All response values are strings (per SODA v2.1) — parse based on column type metadata - `domain` selects the host contacted, `data.cdc.gov` (default) or `chronicdata.cdc.gov` — a four-by-four ID returns the same rows from either --- ### `cdc_query_wonder` Query CDC WONDER for national US mortality statistics — a separate CDC system from the Socrata datasets the other tools query. `database` picks which of CDC's five mortality databases answers the query: | Value | CDC database | Years | Race groups | `mcd_icd10` | |:---|:---|:---|:---|:---| | `underlying_1999_2020` *(default)* | D76 — Underlying Cause of Death | 1999–2020 | 4 bridged | — | | `provisional` | D176 — Provisional Mortality Statistics | 2018 → current year | 6 single-race | yes | | `underlying_2018_2024` | D158 — Underlying Cause of Death, Single Race | 2018–2024 | 6 single-race | — | | `multiple_1999_2020` | D77 — Multiple Cause of Death | 1999–2020 | 4 bridged | yes | | `multiple_2018_2024` | D157 — Multiple Cause of Death, Single Race | 2018–2024 | 6 single-race | yes | - Group results by any of `year`, `age_group`, `sex`, `race` (1–4 dimensions) - Filter by ICD-10 underlying cause, sex, age groups, and year range - `age_groups` carries the whole list CDC offers: the eleven ten-year groups plus `NS`, the group for a death whose age was not recorded. Listing the eleven without `NS` returns fewer deaths than the same query unfiltered, so include it to match an all-ages total or select it alone to count those deaths - `mcd_icd10` matches a cause recorded anywhere on the death certificate rather than only the one certified as underlying — "died with a respiratory condition listed", which no underlying-cause query can produce. Accepted only by the three databases marked above; the others reject it. A multiple-cause database queried without it returns the same figures as the underlying-cause database for the same years, and says so - `year_range` carries the union of every database's span; a range outside the span of the one selected is rejected with that database's actual years named - A `race` breakdown does not carry across the two race families — bridged race combines Asian and Pacific Islander into one group, single race splits them and adds a multiracial category, so the two series are not comparable - Both cause filters also take `999--999`, CDC's marker for deaths whose cause it is still withholding under the provisional database's six-month reporting lag. Only `provisional` records them; the other databases reject the code, and the tool says which one to select - Row dimension values are CDC's own labels with surrounding whitespace removed, so the same year keys identically across databases — CDC pads a few of them, and `"2024 "` and `"2024"` would otherwise read as two different years - Provisional rows carry CDC's own year labels, e.g. `2025 (provisional)` and `2026 (provisional and partial)`, rather than a bare year - Returns deaths, population, and crude death rate, plus age-adjusted rate when WONDER can standardize by age — omitted when grouping by `age_group` or filtering to a single age group - Returns the whole table by default. A broad grouping runs long — `["year","age_group","sex","race"]` can pass a thousand rows — so `limit` (max 5,000) and `offset` take it a page at a time, alongside `totalCount`, `truncated`, and a `nextOffset` to resume from. An `offset` at or past the row total returns an empty page rather than an error - Paging shapes the response only: WONDER's request carries no limit of its own,
What people ask about cdc-health-mcp-server
What is cyanheads/cdc-health-mcp-server?
+
cyanheads/cdc-health-mcp-server is mcp servers for the Claude AI ecosystem. Search and query CDC public health data — mortality, vaccinations, surveillance, behavioral risk (Socrata SODA API) via MCP. STDIO or Streamable HTTP. It has 5 GitHub stars and its last recorded update is dated 2026-08-18.
How do I install cdc-health-mcp-server?
+
You can install cdc-health-mcp-server by cloning the repository (https://github.com/cyanheads/cdc-health-mcp-server) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is cyanheads/cdc-health-mcp-server safe to use?
+
Our security agent has analyzed cyanheads/cdc-health-mcp-server and assigned a Trust Score of 95/100 (tier: Verified). See the full breakdown of passed checks and flags on this page.
Who maintains cyanheads/cdc-health-mcp-server?
+
cyanheads/cdc-health-mcp-server is maintained by cyanheads. The last recorded GitHub activity is dated 2026-08-18, with 3 open issues.
Are there alternatives to cdc-health-mcp-server?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy cdc-health-mcp-server to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/cyanheads-cdc-health-mcp-server)<a href="https://claudewave.com/repo/cyanheads-cdc-health-mcp-server"><img src="https://claudewave.com/api/badge/cyanheads-cdc-health-mcp-server" alt="Featured on ClaudeWave: cyanheads/cdc-health-mcp-server" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
The fastest path to AI-powered full stack observability, even for lean teams.
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!