Skip to main content
ClaudeWave
cyanheads avatar
cyanheads

cdc-health-mcp-server

View on GitHub

Search and query CDC public health data — mortality, vaccinations, surveillance, behavioral risk (Socrata SODA API) via MCP. STDIO or Streamable HTTP.

MCP ServersOfficial Registry5 stars0 forksTypeScriptApache-2.0Updated today
ClaudeWave Trust Score
95/100
Verified
Passed
  • Open-source license (Apache-2.0)
  • Actively maintained (<30d)
  • Clear description
  • Topics declared
  • Documented (README)
Last scanned: 8/19/2026
Install in Claude Code / Claude Desktop
Method: Manual
Claude Code CLI
git clone https://github.com/cyanheads/cdc-health-mcp-server
claude_desktop_config.json (Claude Desktop)
{
  "mcpServers": {
    "cdc-health": {
      "command": "node",
      "args": ["/path/to/cdc-health-mcp-server/dist/index.js"]
    }
  }
}
1. Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
2. Replace any <placeholder> values with your API keys or paths.
3. Restart Claude. The MCP server and its tools appear automatically.
💡 Clone https://github.com/cyanheads/cdc-health-mcp-server and follow its README for install instructions.
Use cases

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">

[![Version](https://img.shields.io/badge/Version-0.8.5-blue.svg?style=flat-square)](./CHANGELOG.md) [![License](https://img.shields.io/badge/License-Apache%202.0-orange.svg?style=flat-square)](./LICENSE) [![Docker](https://img.shields.io/badge/Docker-ghcr.io-2496ED?style=flat-square&logo=docker&logoColor=white)](https://github.com/users/cyanheads/packages/container/package/cdc-health-mcp-server) [![MCP SDK](https://img.shields.io/badge/MCP%20SDK-^1.29.0-green.svg?style=flat-square)](https://modelcontextprotocol.io/) [![npm](https://img.shields.io/npm/v/@cyanheads/cdc-health-mcp-server?style=flat-square&logo=npm&logoColor=white)](https://www.npmjs.com/package/@cyanheads/cdc-health-mcp-server) [![TypeScript](https://img.shields.io/badge/TypeScript-^7.0.2-3178C6.svg?style=flat-square)](https://www.typescriptlang.org/) [![Bun](https://img.shields.io/badge/Bun-v1.3.2-blueviolet.svg?style=flat-square)](https://bun.sh/)

</div>

<div align="center">

[![Install in Claude Desktop](https://img.shields.io/badge/Install_in-Claude_Desktop-D97757?style=for-the-badge&logo=anthropic&logoColor=white)](https://github.com/cyanheads/cdc-health-mcp-server/releases/latest/download/cdc-health-mcp-server.mcpb) [![Install in Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en/install-mcp?name=cdc-health-mcp-server&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBjeWFuaGVhZHMvY2RjLWhlYWx0aC1tY3Atc2VydmVyIl19) [![Install in VS Code](https://img.shields.io/badge/VS_Code-Install_Server-0098FF?style=for-the-badge&logo=visualstudiocode&logoColor=white)](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)

[![Framework](https://img.shields.io/badge/Built%20on-@cyanheads/mcp--ts--core-67E8F9?style=flat-square)](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,
cdccyanheadshealth-datamcpmcp-servermodel-context-protocolpublic-healthsocratatypescript

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.

Featured on ClaudeWave: cyanheads/cdc-health-mcp-server
[![Featured on ClaudeWave](https://claudewave.com/api/badge/cyanheads-cdc-health-mcp-server)](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

cdc-health-mcp-server alternatives