cdc-health-mcp-server: Instructions file for Codex

AGENTS.md

cdc-health-mcp-server AGENTS.md is an instructions file for Codex, OpenCode from cyanheads/cdc-health-mcp-server. It costs 15,111 tokens per session, scanned A, original, Apache-2.0.

Project instructions for a server that queries the CDC Open Data portal, a US public-health dataset catalogue, through its Socrata web API. The instructions describe the server’s tools, supported domains, data-discovery workflow, and security checks.

In plain words
What is it for?
They are for developing or maintaining a service that discovers, inspects, and queries CDC health datasets while restricting requests to approved hosts.
Why use it?
They give coding agents the project-specific rules and API context needed to change or use the server without guessing how its data access works.

Instructions file for CodexOpenCode

Written for Codex and OpenCode: the file is AGENTS.md. Also seen: reads .claude/ paths; mentions .claude-plugin; mentions CLAUDE.md.

This is cyanheads/cdc-health-mcp-server's own configuration. It tells Codex and OpenCode how to work on cdc-health-mcp-server itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything cdc-health-mcp-server configures →

Reuse

Borrowing it

Nothing to install: this file belongs to cyanheads/cdc-health-mcp-server. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/cyanheads/cdc-health-mcp-server/main/AGENTS.md
Clone the repo
git clone --depth 1 https://github.com/cyanheads/cdc-health-mcp-server

Made for: Codex, OpenCode.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for cdc-health-mcp-server AGENTS.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/cyanheads/cdc-health-mcp-server/agents-md/github.svg)](https://agentmods.dev/instructions/cyanheads/cdc-health-mcp-server/agents-md)
Your own site
<a href="https://agentmods.dev/instructions/cyanheads/cdc-health-mcp-server/agents-md"><img src="https://agentmods.dev/badge/instructions/cyanheads/cdc-health-mcp-server/agents-md/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for cdc-health-mcp-server AGENTS.md

Your own site · 80×15
<a href="https://agentmods.dev/instructions/cyanheads/cdc-health-mcp-server/agents-md"><img src="https://agentmods.dev/badge/instructions/cyanheads/cdc-health-mcp-server/agents-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 15,111 This file is loaded in full into every session.
When invoked 15,111 The same file — it is already loaded in full.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.15111 $0.15111
Opus 5.5 $0.06044 $0.06044
Sonnet 5.5 $0.03022 $0.03022
Haiku 4.5 $0.01511 $0.01511

Measured 4d ago against content hash 8a938130d194, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

cdc-health-mcp-server AGENTS.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

AGENTS.md · 518 lines

How it starts

The opening of the file, as written. The whole thing — 518 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Agent Protocol

Server: cdc-health-mcp-server Version: 0.11.0 Framework: @cyanheads/mcp-ts-core ^0.13.18 Engines: Bun ≥1.4.0, Node ≥24.0.0 MCP SDK: @modelcontextprotocol/server ^2.4.0 Zod: ^4.6.7

Read the framework docs first: node_modules/@cyanheads/mcp-ts-core/CLAUDE.md contains the full API reference — builders, Context, error codes, exports, patterns. This file covers server-specific conventions only.


Domain

Wraps the CDC Open Data portal (~1,080 datasets) via the Socrata SODA API v2.1. No auth required — optional app token for higher rate limits.

Core workflow: discover → inspect schema → query. The catalog is heterogeneous (disease surveillance, mortality, behavioral risk, vaccinations, environmental, injury, etc.), so the server provides a discovery-first approach rather than hard-coding dataset knowledge.

API Surface

Design doc: docs/design.md — full parameter tables, error modes, API endpoints, and implementation notes.

The four Socrata tools take an allowlisted domain input (data.cdc.gov default, chronicdata.cdc.gov) — Zod z.enum rejects any other host before the handler runs (the SSRF guard). The two cdc://datasets… resources stay on the default host. cdc_query_wonder hits a different CDC system and takes no domain; its database enum picks the dataset code in the upstream path, and is the same kind of guard.

Definition Type Purpose
cdc_discover_datasets tool Search catalog by keyword/category/tag/asset type. Entry point. Trimmed payload — assetType, permalink, columnCount + an 8-name columnSample and a 300-char description, cut after the markup comes off, plus accessPoints (the publisher-labelled URLs of a link entry) and parentIds (the datasets a chart, map, filter, or story is built on); full column detail comes from cdc_get_dataset_schema. limit is the page (default 10, up to 10,000, never clamped): offset + limit above 10,000 fails page_out_of_range, checked on the raw limit. asset_types (the assetType values) sends their plurals as one only parameter. order defaults to relevance when query is set and dataset_id otherwise, at every offset; a relevance page with matches remaining carries a notice that offset paging can repeat or skip entries.
cdc_get_dataset_schema tool Fetch column schema, row count, metadata for a dataset ID. Full-detail surface, windowed — column_limit (default 100, no maximum: it slices a schema fetched whole) / column_offset, with totalCount/truncated/nextOffset enrichment. The dataset description is capped at 4,000 characters by default (truncatePlainText), with descriptionTruncated/descriptionLength set when cut; full_description: true returns it whole. Column descriptions are never shortened. rowCount prefers a live count(*), with rowCountSource naming live or the cached fallback. Provenance, where the publisher recorded it: parentId (a filter's source dataset), and temporalCoverage, updateFrequency, geographicCoverage, citation, license, attribution as the publisher's own text, never parsed. Fails not_queryable on a non-tabular asset instead of returning empty columns; a chart or map's failure names its parent dataset (parentId) in the message and recovery hint.
cdc_list_catalog_vocabulary tool The catalog's category and tags vocabularies with entry counts, per allowlisted domain. Categories whole; tags ranked by count and paged — tag_limit (default 50, no maximum: it slices a vocabulary fetched whole) / tag_offset, with vocabularySize/categoryCount/tagCount/truncated/truncationCeiling/nextOffset enrichment. truncationCeiling bounds only the tags from nextOffset on — on a later page the tags before tag_offset outrank it. filter narrows both vocabularies before the page is cut.
cdc_query_dataset tool Execute SoQL queries — filter, aggregate, sort, full-text search. limit is the page, clamped to 1,000 rows — effectiveQuery echoes $limit=1000, and the notice names the clamp when rows remain past the page (SODA sets no maximum of its own; select narrows each row of a wide dataset); up to the clamp a page ends short of limit only at the end of the result set. Continuation is measured by an over-fetch probe, not the row count; discloses truncated/shown/cap/nextOffset, never a totalCount. An empty page at offset > 0 spends one probe at offset 0 to tell an offset past the end from a no-match. Fails not_queryable when every row comes back with no fields and the asset has no columns, naming the chart or map's parent dataset.
cdc_query_wonder tool Query CDC WONDER for national deaths, population, crude/age-adjusted rates, each rate with its 95% confidence interval (<rate>_lower/<rate>_upper). Grouped by year, month, age group, sex, race, Hispanic origin, or underlying cause (ICD chapter or sub-chapter, the 113-cause list, the 15 leading causes, injury intent), filtered by ICD-10 cause. A database enum selects one of five mortality databases — D76 (default), D176 provisional, D158, D77, D157. limit is the page, lowered to a 10,000-row per-call ceiling — the table-size bound, so one call holds any table the handler accepts; an omitted limit returns the rest of the table from offset. limit/offset page the parsed rows with exact totalCount/truncated/nextOffset, re-basing cellNotes onto the page while caveats/messages stay whole.
cdc://datasets resource 50 most-viewed catalog entries for orientation — carries assetType + columnCount, since the page mixes charts/stories/filters in with datasets.
cdc://datasets/{datasetId} resource Dataset metadata + the first 100 columns and a description capped at 4,000 characters, carrying columnCount/truncated/descriptionTruncated/descriptionLength, the same parentId and publisher provenance fields as cdc_get_dataset_schema, and one composed notice naming column_offset and full_description: true on cdc_get_dataset_schema. Takes no selector — the SDK's UriTemplate.match compiles RFC 6570 query variables as required, so {?column_limit,column_offset} would stop the bare URI matching at all.
analyze_health_trend prompt Guided workflow: pick the source (WONDER for national mortality, leading-cause, Hispanic-origin, and seasonal questions; Socrata otherwise), then discover → inspect → query → compare (rates by their confidence intervals) → synthesize (provisional partial year, updateFrequency/temporalCoverage). Routing is prose the reader acts on — the handler never classifies the topic.

Read the full file on GitHub · 518 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 4d ago Changed · +22 lines · +2,736 tokens per session 8a938130d194
  2. 25d ago Changed · +3 lines · +846 tokens per session df79ac283c43
  3. 1mo ago Changed · +2 lines · +439 tokens per session 698704fe5655
  4. 1mo ago Changed · +2 lines · +526 tokens per session c0b678a0a268
  5. 1mo ago Changed · +12 lines · +1,219 tokens per session aeede9654a1e
  6. 1mo ago First seen · 477 lines · 9,345 tokens per session scan A 54ecf09b3dbe

Subscribe to this mod's changes

cdc-health-mcp-server AGENTS.md is an instructions file published in the GitHub repository cyanheads/cdc-health-mcp-server (5 stars, last pushed 5d ago), licensed Apache-2.0. It adds 15,111 tokens to every session, about $0.0604 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-17.

Related

cdc-health-mcp-server AGENTS.md compared with instructions from other repositories

cdc-health-mcp-server AGENTS.md next to 6 instructions from other repositories
ModTypeStarsLast pushLicenceScanTokensWorks with
cdc-health-mcp-server AGENTS.mdcyanheads/cdc-health-mcp-serverInstructions file55d agoApache-2.0A15,111Codex, OpenCode
vscode buildNext.instructions.mdmicrosoft/vscodeInstructions file195kyesterdayMITA9,719GitHub Copilot
next.js AGENTS.mdvercel/next.jsInstructions file143kyesterdayMITA7,461Codex, OpenCode
langchain AGENTS.mdlangchain-ai/langchainInstructions file149kyesterdayMITA4,680Codex, OpenCode
vscode oss-third-party-notices.instructions.mdmicrosoft/vscodeInstructions file195kyesterdayMITA5,516GitHub Copilot
vscode copilot-instructions.mdmicrosoft/vscodeInstructions file195kyesterdayMITA3,093GitHub Copilot
deepseek-harness AGENTS.mddeepseek-ai/deepseek-harnessInstructions file274k2d agoMITA4,313Codex, OpenCode