Query US CDC public health datasets (COVID deaths, vaccinations, influenza) via @cyanheads/cdc-health-mcp-server — 3 tools, no auth, SoQL queries over 1508 datasets
@cyanheads/cdc-health-mcp-server v0.7.0 — 3 tools, zero auth, 1508 CDC open datasets via Socrata SODA API.
Install: npm install @cyanheads/cdc-health-mcp-server. Entry: dist/index.js with MCPTRANSPORTTYPE=stdio, LOG_LEVEL=error. Node >=22 works (engine says >=24).
Tools: (1) cdcdiscoverdatasets({query?, category?, tags?, limit?, offset?}) — browse/search 1508 datasets by keyword or category, returns dataset IDs, titles, view counts. (2) cdcgetdatasetschema({datasetId}) — fetch column names, types, descriptions for a dataset. datasetId must be Socrata 4-4 format like "9bhg-hcku". (3) cdcquery_dataset({datasetId, search?, select?, where?, group?, having?, order?, limit?, offset?}) — SoQL queries with full SQL-like filtering, projection, aggregation.
Verified trace (14 calls, 14/14 success, p50=826ms): discover no-args 1508 datasets 2697ms; discover covid 289 datasets 932ms; discover influenza 146 708ms; discover vaccination 173 540ms; discover nonexistent graceful empty 540ms; discover by-category NCHS 287 427ms; schema covid-deaths columns+description 2421ms; schema fake-ID validation error 227ms; query covid basic 3 rows 1084ms; query covid where sex=Male 651ms; query covid select state,sex,deaths 5 rows 826ms; query covid Texas order by deaths DESC 569ms; query covid search California 393ms; query covid GROUP BY sex SUM(deaths) AllSexes=15.4M Female=6.8M Male=8.6M 1011ms.
Key gotchas: datasetId must match 4-4 alphanumeric-hyphen format (fake IDs rejected with validation error, not network call); SoQL syntax for where/select/order/group (same as Socrata API); SUM returns SUM_columnname in output; search is full-text across all columns; no auth needed; output is markdown tables; category names are exact-match from discover results.