Skip to main content
Glama

CMU Delphi — COVID-19 Signal Data (COVIDcast)

delphi.covid.covidcast
Read-onlyIdempotent

Access COVID-19 epidemiological signals from multiple data sources via CMU Delphi COVIDcast. Sources include: "jhu-csse" (JHU confirmed cases/deaths), "hhs" (HHS hospitalization admissions), "fb-survey" (COVID symptom surveys), "doctor-visits" (CLI doctor visits), and more. Signals can be filtered by geographic level (nation, state, county, MSA, HHS region) and date range. Returns signal value, standard error, sample size, and reporting lag. No auth — CMU Delphi open COVID surveillance data, unlimited free.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
signalYesSignal name within the data source. Examples for jhu-csse: "confirmed_cumulative_num", "confirmed_incidence_num", "deaths_cumulative_num", "deaths_incidence_num". For hhs: "confirmed_admissions_covid_1d".
geo_typeNoGeographic aggregation level (default: "state"). "nation"=US, "state"=US state, "county"=county FIPS, "msa"=metro area, "hrr"=hospital referral region, "hhs"=HHS region.
geo_valueYesGeographic identifier. For state: 2-letter code (e.g. "ca", "ny"). For county: 5-digit FIPS (e.g. "06037"). For nation: "us". For hrr: HRR number. Case-insensitive.
time_typeNoTemporal resolution: "day" (daily, default) or "week" (weekly epiweek).
data_sourceYesSignal data source. Common values: "jhu-csse" (JHU confirmed cases/deaths), "cdc" (CDC surveillance), "hhs" (HHS hospitalization), "fb-survey" (COVID symptoms survey), "doctor-visits" (doctor visits with CLI). See https://cmu-delphi.github.io/delphi-epidata/api/covidcast_signals.html.
time_valuesYesDate(s) in YYYYMMDD format. Single: "20210101". Range: "20210101-20210131". Supports up to ~200 dates per call.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
errorNoPresent only when the call failed. Includes error code, message, request_id, and any provider-specific extras.
resultNoTool response payload. Shape varies per tool — consult the tool description and inputSchema. May be an object, array, string, or number depending on the upstream provider response.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already mark the tool as read-only, idempotent, and non-destructive. The description adds useful behavioral context beyond that: no authentication required, unlimited free access, and return fields include value, standard error, sample size, and reporting lag. It does not mention pagination or data freshness, but the annotation coverage lowers the burden.

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?

Three sentences with no filler: purpose, sources, filtering options, return values, and auth status are all included. The most important scoping information is front-loaded, and every sentence earns its place.

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?

For a tool with 6 parameters, 4 required, and a rich schema, the description is complete enough. It covers sources, geographic levels, date range, return content, and access constraints. The output schema exists, so the return-value list is a helpful addition rather than a requirement. Minor gaps like supported time resolutions are already handled by the schema.

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%, so the baseline is 3. The description lists source examples and return fields, but the schema already documents each parameter thoroughly. No significant additional meaning is added beyond what the input schema provides.

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 states a specific action ('Access COVID-19 epidemiological signals') tied to a concrete resource (CMU Delphi COVIDcast) and lists available data sources, filters, and return fields. This clearly distinguishes it from narrower siblings like delphi.covid.hospitalization or delphi.flu.fluview.

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 gives clear context on when to use the tool: for COVIDcast signals from multiple sources, filtered by geography and date. It does not explicitly name alternative tools or exclusion criteria, but the scope is well-enough defined that an agent can infer the intended use case.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.