Census Mcp Server

io.github.cyanheadsPublished by GitHub account cyanheadsv0.7.2Updated Nov 4, 2026

Query U.S. Census Bureau data, variables, and geography via MCP.

VerifiedStreamable HTTPWeb executableLocation & LifestyleData & Analytics

Overview

AI-generated overview

Queries U.S. Census Bureau datasets, variables and geographies, letting an assistant look up FIPS codes and pull or rank demographic, economic and housing…

What you can do
  • Browse datasets and their vintage years, and list the geography levels a dataset supports
  • Search variables by keyword or code and fetch full metadata for variable codes
  • Resolve place names, ZIP codes and street addresses to Census FIPS identifiers
  • Query estimates for one geography, a list of them, or every geography at a level, with predicate filters
  • Rank and compare variables across many geographies, such as all counties in a state
When to use it
Useful when an assistant needs authoritative U.S. demographic, economic or housing figures: comparing income or population across counties and states, mapping a place name to FIPS codes, or finding the right Census variable code for a question.
Requirements
Runs as a hosted remote endpoint or locally via npx (Node.js) or Docker. A free Census Bureau API key in CENSUS_API_KEY is required for data queries and for live-enumerated predicate values; dataset listing, variable search and geography resolution work without one. Network access to Census APIs is needed.
Before you install
The server sends requests to Census Bureau APIs (Data API, TIGERweb, Geocoder), so query terms and addresses leave your machine. CENSUS_API_KEY is a credential to keep private. Optional failure-payload logging can record tool arguments and results, and a secret inside a free-form value is not redacted. The hosted endpoint is a third-party instance; local runs default to no authentication.

Installation

In SourceWeft

  1. Open Census Mcp Server in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.cyanheads%2Fcensus-mcp-server/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "census": {
      "type": "http",
      "url": "https://census.caseyjhand.com/mcp"
    }
  }
}

README

@cyanheads/census-mcp-server

Query U.S. Census Bureau data, variables, and geography via MCP. STDIO or Streamable HTTP.

8 Tools

Public Hosted Server: https://census.caseyjhand.com/mcp


Overview

US Census Bureau demographic, economic, and housing data. Find datasets and variables, resolve place names or addresses to FIPS codes, and query or rank estimates across any set of geographies.

Tools

ToolDescription
census_list_datasetsBrowse available Census Bureau datasets (ACS5 and ACS1 with their profile, subject, and comparison tables, ACS Supplemental Estimates and Selected Population Profiles, Population Estimates, Decennial, County Business Patterns, Economic Census, Nonemployer Statistics) with vintage years and dataset codes.
census_list_geographiesList the geography levels supported by a dataset and year, with parent requirements and example FIPS values.
census_search_variablesKeyword search across variable labels and concept groups, or lookup by variable or table code. On ACS, returns estimate and margin-of-error codes together.
census_get_variableFetch full metadata for one or more variable codes — label, concept, predicate type, universe, MOE sibling — including the annotation and flag columns the data tools accept.
census_list_predicate_valuesList the codes a filter dimension accepts (EMPSZES, LFO, POPGROUP, NAICS2017…), from the dataset dictionary or a live wildcard enumeration.
census_resolve_geographyConvert place names (e.g., "King County, WA"), ZIP codes, or street addresses to Census FIPS identifiers via TIGERweb and Census Geocoder.
census_query_dataQuery a Census dataset for variables at one geography, a comma-separated list of them, or every geography at a level. Returns estimates with MOE, Census sentinel values and withheld business values resolved to their published meanings, and predicate filtering for the business datasets.
census_compare_geographiesRank and compare variables across multiple geographies — all counties in a state, all states nationally, or a named set. Sorted table output, with the same predicate filtering.

Capability reference

census_list_datasets tool

  • Returns dataset codes, names, descriptions, and available vintage years, with an optional keyword filter. Covers ACS5 and ACS1 (data profiles, subject tables, comparison profiles, and acs/acs1/spp), acs/acsse, Population Estimates, the 2020 Decennial files (Redistricting (P.L. 94-171), dec/dhc, dec/dp, dec/sdhc, dec/ddhca, dec/ddhcb), cbp, ecnbasic, and nonemp
  • Each description names the filter predicates the dataset requires and the geography levels it publishes
  • Dataset codes (e.g., acs/acs5) are what the other tools take. Case is ignored and a two-part code works by its last part alone (acs5, pl); three-part codes such as acs/acs5/profile must be given in full
  • available_years is exhaustive: any other year fails with year_not_available, naming the years that work

census_list_geographies tool

  • Returns one row per geography level and parent hierarchy: geography_level, whether a parent is required, required_parent_levels, and an example FIPS value. totalLevels counts each level once
  • geography_level values are the exact inputs to census_query_data and census_compare_geographies; year defaults to the latest vintage
  • Fails with dataset_not_found or year_not_available (naming the years served)

census_search_variables tool

  • Whole-word search across label and concept: every query word must match, otherwise the closest matches come back with a notice. A variable or table code in any case returns that variable, or the whole table in code order, first (B19013 returns B19013_001E then B19013_001M)
  • A code the dataset does not publish gets a notice naming the sibling dataset that holds it (S1701 in acs/acs5 points to acs/acs5/subject) or census_get_variable for an attribute column such as B19013_001EA
  • On ACS datasets, estimate (E suffix) and margin-of-error (M suffix) codes come back together; comparison profiles and the other families publish no margins of error. Also finds predicate codes by keyword (naics) or code (NAICS2017 in cbp)
  • limit is an integer from 1 to 100 (default 20), rejected rather than clamped when out of range. offset pages the complete match ordering; totalMatches counts matches before paging, truncated means another page exists, and nextOffset names it. variables.json is cached per dataset+year (default TTL 24h)

census_get_variable tool

  • Takes one or more variable codes (case-insensitive) and returns label, concept, predicate type, and the table's universe, in the order given. If groups.json can't be fetched, variables come back without universe and a notice says to retry
  • Resolves annotation and flag columns such as B19013_001EA and EMP_F, with attribute_of naming the column each belongs to and attribute_type its kind (ANNOTATION, FLAG, MARGIN_OF_ERROR). On ACS datasets it also returns estimate_code/moe_code sibling references
  • Confirms predicate dimension codes (NAICS2017, SEX) exist in a dataset; census_list_predicate_values lists their values. dataset defaults to acs/acs5 and year to the latest vintage
  • variable_not_found when a code isn't defined, naming the sibling dataset that publishes it when one is found (DP03_0062E in acs/acs5 points to acs/acs5/profile)

census_list_predicate_values tool

  • Lists the codes a filter dimension accepts, read from the dataset dictionary when it publishes a list and enumerated live otherwise. NAICS* and POPGROUP have long lists (thousands of codes; narrow with query); EMPSZES, LFO, RCPSZES, TAXSTAT, and TYPOP are live-only
  • Dictionary lists are checked against the rows the dataset actually publishes and unpublished codes are dropped; source says whether the check ran and the notice gives the number withheld. A dictionary list does not validate publication at a supplied geography level
  • Live enumeration takes geography_level (default us) and echoes that scope. Codes vary by level; only levels whose dataset metadata permits an unparented wildcard are accepted
  • query matches code and label; results are sorted by code before offset/limit paging (limit 1 to 500, default 50). totalCount counts all matches; truncated means another page exists, with nextOffset only then. On ecnbasic, within_naics scopes TAXSTAT and TYPOP to one industry
  • The live route and the dictionary check read the data endpoint, so they need CENSUS_API_KEY: without a working key a live-only dimension fails with missing_api_key, while a dictionary list still answers, unchecked, with a notice naming the key

census_resolve_geography tool

  • Named places (e.g., "King County, WA") resolve via TIGERweb; street addresses resolve to tract level via Census Geocoder, with block_group_fips and place_fips. A 5-digit ZIP (or ZIP+4) resolves to its ZIP Code Tabulation Area (zip code tabulation area)
  • Auto-detects geography_type for state, county, place, tract, and ZIP. Metropolitan/micropolitan statistical areas, combined statistical areas, consolidated cities, and economic places need an explicit geography_type; economic place returns the 8-digit ecnbasic code (Seattle 03363000)
  • The place level includes census-designated places, which answer a name only when no incorporated place or county matches exactly; use the full name ("Arlington CDP, VA") or geography_type: "place" to reach one. Optional county_fips scopes county and tract resolution (county_scope_unsupported for any other level or an address)
  • Matching ignores case, accepts a state abbreviation or full name, and tolerates Saint/St. and accent differences. New York City boroughs resolve to their counties ("Brooklyn, NY" → Kings County 047) with a notice
  • A name matching several geographies returns ambiguous_name with every candidate's FIPS code and state. Results carry state_fips (→ parent_fips) and fips_summary (→ geography_fips) for the next tool; statistical areas and ZCTAs omit state_fips

census_query_data tool

  • Requires FIPS codes (use census_resolve_geography for place names). geography_fips: "*" returns every geography at the level within the parent; each row carries geography_fips and the nationally unique geography_geoid. Wildcards return up to limit rows (default 50, max 500) in GEOID order, with offset for paging and totalCount for all matches. truncated is true only when another page exists; nextOffset names that page
  • A comma-separated list ("06,53", or "033,061" with parent_fips: "53") returns one row per listed code at the same level, in GEOID order and paged the same way; codes take the level's width, no "*" member, and the parents a single code needs. The notice names each listed code no row came back for
  • Up to 49 variable codes per call, fewer on datasets that add label or record columns (too_many_variables states the maximum). Unknown codes fail with variable_not_found; level and parent problems fail with parent_required or parent_not_accepted. Optional tract_fips (6 digits, with a concrete county_fips) scopes a block-group or decennial block query to one tract
  • Optional predicates map filters the business, pep, and dec datasets and acs/acs1/spp (e.g., {"NAICS2017": "5112"}). Unset dimensions take a Census default, echoed per row in applied_filters; "*" returns one row per category, labelled in record. pep/charv returns several rows per geography, so pin one (e.g., {"MONTH": "7"})
  • ACS sentinel values resolve to their published meanings, and a median in an open-ended interval is flagged open_ended. On cbp, ecnbasic, and nonemp, withheld values are reported as suppressed with the flag's meaning. A null estimate means suppressed, a text cell (returned under value), or empty
  • On dec/ddhca and dec/ddhcb, a geography's POPGROUP group sits in only one table of a family; a no_data hint or notice names the sibling tables. Requires CENSUS_API_KEY
  • Missing-geography guidance names applicable ACS publication thresholds as possible causes alongside code checks, and pairs broader-coverage datasets with variable rediscovery

census_compare_geographies tool

  • Ranks all geographies at a level, or a named geographies list of GEOIDs/bare level codes; within/within_county scope to a state/county, omit for a national comparison
  • Ranks on one variable: sort_by (default the first code; must be a requested code, else sort_by_not_requested), sort_dir (default desc), and limit (1 to 500, default 50). Equal numeric values share competition ranks (1, 2, 2, 4) and are ordered by GEOID; a notice identifies a page boundary inside a tie. A count ranks by size, not rate, so rank a published percentage for a rate (S1701_C03_001E in acs/acs5/subject, DP04_0047PE in acs/acs5/profile)
  • offset counts rows in the sorted matched set; ranks are assigned before paging. totalCount counts that set, truncated means another page exists, and nextOffset appears only then. A nonempty geographies filter also returns scope_rank against all fetched geographies and scopeCount for that denominator
  • Takes the same predicates, variable limit, validation, and applied_filters as census_query_data; multi-record datasets (pep/charv) or a "*" predicate fail with ambiguous_rows unless predicates pins one. Suppressed values sort last with the same reasons, and text values can't be ranked (the notice says so). Requires CENSUS_API_KEY

Features

Built on @cyanheads/mcp-ts-core: stdio and Streamable HTTP transports, pluggable auth (none / jwt / oauth), swappable storage (in-memory, filesystem, Supabase, Cloudflare KV/R2/D1), structured logging with optional OpenTelemetry tracing.

Census-specific:

  • In-process variable cache with configurable TTL — variables.json fetched once per dataset+year, searched client-side
  • Three-API backend: Census Data API for data queries, TIGERweb for named-place resolution, Census Geocoder for address-to-tract
  • Automatic retry with backoff on all external API calls
  • Keyed tool calls share a 50-second upstream budget across metadata, data, retries, and optional probes; data requests retain a 40-second ceiling within the remaining budget
  • FIPS formatting helpers — zero-padded state, county, and tract codes ready to pass between tools

Agent-friendly output:

  • Workflow-oriented tool surface — fips_summary and state_fips return values are ready to pass as geography_fips and parent_fips to the next tool
  • Suppression codes decoded — Census negative sentinel values (e.g., -666666666) and business-dataset withholding flags (e.g., D) surfaced as their published meanings instead of raw numbers or false zeros
  • Recovery hints on errors — ambiguous geography names include candidate lists; missing API key errors include registration URL

Getting started

Connect to the hosted instance, no install:

sh
claude mcp add --transport http census-mcp-server https://census.caseyjhand.com/mcp

Or run it locally:

sh
claude mcp add census-mcp-server -e CENSUS_API_KEY=your-key -- npx -y @cyanheads/census-mcp-server

For other clients, add this to the MCP config file:

json
{  "mcpServers": {    "census-mcp-server": {      "command": "npx",      "args": ["-y", "@cyanheads/census-mcp-server"],      "env": { "CENSUS_API_KEY": "your-key" }    }  }}

Register a free key at api.census.gov/data/key_signup.html. Data queries (census_query_data, census_compare_geographies) require it, as does census_list_predicate_values for a dimension it enumerates live; variable search and geography resolution work without one. For Docker or a source build, see Running the server.


Configuration

VariableDescriptionDefault
CENSUS_API_KEYRequired for data queries (census_query_data, census_compare_geographies) and for census_list_predicate_values on a live-enumerated dimension; without it those fail with missing_api_key, and a dictionary list comes back unchecked. Register free at api.census.gov/data/key_signup.html.—
CENSUS_DEFAULT_YEARDefault vintage year when no year is specified.2024
CENSUS_VARIABLE_CACHE_TTL_HOURSHours to cache variables.json per dataset+year in memory.24
MCP_TRANSPORT_TYPETransport: stdio or http.stdio
MCP_SESSION_MODEHTTP session mode: stateful, stateless, or auto.stateless
MCP_HTTP_PORTPort for HTTP server.3010
MCP_AUTH_MODEAuth mode: none, jwt, or oauth.none
MCP_LOG_LEVELLog level (debug, info, notice, warning, error).info
LOG_TOOL_FAILURE_PAYLOADSLog each failed tool call's arguments and result, redacted by key name and capped at LOG_TOOL_FAILURE_PAYLOAD_MAX_BYTES (default 16384). A secret inside a free-form value is not redacted.false
OTEL_ENABLEDEnable OpenTelemetry instrumentation.false

See .env.example for the full list of optional overrides.


Running the server

Local development

Requires Bun v1.4.0 or higher (or Node.js v24+).

  • Clone and install:

    sh
    git clone https://github.com/cyanheads/census-mcp-server.gitcd census-mcp-server && bun installcp .env.example .env   # set CENSUS_API_KEY
  • Build and run:

    sh
    # One-time buildbun run rebuild
    # Run the built serverbun run start:stdio# orbun run start:http
  • Run checks and tests:

    sh
    bun run devcheck   # Lint, format, typecheck, security auditbun run test       # Vitest test suitebun run lint:mcp   # Validate MCP definitions against spec

Docker

sh
docker run --rm -e CENSUS_API_KEY=your-key -p 3010:3010 ghcr.io/cyanheads/census-mcp-server:latest

The image defaults to HTTP transport, stateless session mode, and logs to /var/log/census-mcp-server. To run it over stdio from an MCP client, use "command": "docker" with "args": ["run", "-i", "--rm", "-e", "MCP_TRANSPORT_TYPE=stdio", "-e", "CENSUS_API_KEY=your-key", "ghcr.io/cyanheads/census-mcp-server:latest"]. To build locally, docker build -t census-mcp-server .; OpenTelemetry peer dependencies are installed by default — build with --build-arg OTEL_ENABLED=false to omit them.


Project structure

PathPurpose
src/index.tscreateApp() entry point — registers tools and initializes services.
src/config/server-config.tsCensus-specific env var parsing and validation with Zod.
src/mcp-server/tools/definitions/Tool definitions (*.tool.ts).
src/services/census-api/Census Data API client — data queries, suppression code mapping, retry logic.
src/services/geography/Geography resolution — TIGERweb named-place lookup and Census Geocoder address-to-tract.
src/services/variable-cache/In-process variables.json cache with TTL and keyword search.
tests/Vitest tests mirroring src/ structure.

Development guide

See CLAUDE.md for development guidelines and architectural rules. The short version:

  • Handlers throw, framework catches — no try/catch in tool logic
  • Use ctx.log for request-scoped logging, ctx.state for tenant-scoped storage
  • Register new tools via the barrel in src/mcp-server/tools/definitions/index.ts
  • Wrap external API calls: validate raw → normalize to domain type → return output schema; never fabricate missing fields

Contributing

Issues are welcome. Run checks and tests before submitting:

sh
bun run devcheckbun run test

License

Apache-2.0 — see LICENSE for details.

Source: README.md at commit 2658905

Tools

8

census_list_datasets

List Census Datasets

Browse available Census Bureau datasets with their supported vintage years. Use as the starting point when the right dataset is unknown — ACS5, ACS1, and their profile, subject, and comparison tables, population estimates, the decennial census files, and the business datasets (County Business Patterns, Economic Census, Nonemployer Statistics) serve different use cases. Pass the dataset_id value to the dataset parameter in other census tools. Each description names the predicates a dataset requires and the geography levels it publishes, both of which vary by dataset.

Parametersfilter

census_list_geographies

List Census Geography Levels

List the geography levels available for a given Census dataset and year, along with the parent geographies each level requires. Use before querying to confirm that the target geography level exists — ACS1 omits many sub-state levels, and not all datasets support tracts or block groups. The geography_level values returned here are the valid inputs to the geography_level parameter in census_query_data and census_compare_geographies.

Parametersyeardatasetrequired

census_search_variables

Search Census Variables

Search Census variables by keyword across variable labels and concept groups, or look one up by its code. Returns variable codes with human-readable labels — use this to go from a concept like "median household income" to the variable code B19013_001E needed for data queries. A query that is one variable or table code, such as B19013_001E or B19013, returns that variable or the table's variables, in code order, ahead of any keyword matches; a code the dataset does not publish gets a notice naming the dataset that does, when one is confirmed. On ACS datasets it returns both estimate (E suffix) and margin-of-error (M suffix) codes so you can request both; the ACS comparison profiles (acs/acs5/cprofile, acs/acs1/cprofile) and the other dataset families publish no margins of error. Also use it to find the predicate codes a dataset filters on, such as NAICS2017 in cbp. Adding a word narrows the results, since every word must match. Use offset to continue the same search beyond limit; nextOffset names the next page.

Parametersyearlimitqueryrequiredoffsetdataset

census_get_variable

Get Census Variable Metadata

Fetch full metadata for one or more Census variable codes — label, concept group, predicate type, the table's universe, and margin-of-error sibling references. Use to confirm a variable code before building a query, or to look up what a known code means. On ACS datasets it returns estimate_code and moe_code sibling references so you can request both without a separate search, and a margin-of-error code carries attribute_of (its estimate) and attribute_type MARGIN_OF_ERROR; the ACS comparison profiles (acs/acs5/cprofile, acs/acs1/cprofile) and the other dataset families publish no margins of error and carry none of these fields. It also resolves the annotation and flag columns the data tools accept, such as B19013_001EA or EMP_F, naming the column each one belongs to, and predicate codes such as NAICS2017 or SEX, confirming a filter dimension exists in a dataset before a query uses it — for the values a dimension accepts rather than the dimension itself, call census_list_predicate_values.

Parametersyeardatasetvariablesrequired

census_list_predicate_values

List Census Predicate Values

List the codes a Census filter dimension accepts, so a predicates map can be written without guessing. Answers the question left open when census_query_data or census_compare_geographies reports that a dimension was left unset. Which route a dimension takes depends on the vintage: NAICS and POPGROUP always publish a value list in the dataset dictionary, and on the current vintages EMPSZES, LFO, RCPSZES, TAXSTAT, and TYPOP publish none and are enumerated here against the live data endpoint instead, which needs the server's Census API key. A dictionary value list is a classification shared across Census products rather than a list of what one dataset serves, and roughly half of its codes typically return no rows anywhere — those are checked against the dataset's own published rows and dropped, a check that also reads the data endpoint and so needs the key; without a working key the dictionary list comes back unchecked, and the response source field says whether that check ran. The dictionary lists run to thousands of codes and are best narrowed with query. Pass the returned code as the dimension's value in predicates.

Parametersyearlimitqueryoffsetdatasetrequiredpredicaterequiredwithin_naicsgeography_level

census_resolve_geography

Resolve Census Geography

Resolve a place name, ZIP code, or street address to Census FIPS identifiers. Converts names like "King County, WA", "Seattle, WA", or "Seattle-Tacoma-Bellevue, WA", and ZIPs like "98109", to the codes required by census_query_data and census_compare_geographies. Use before querying when you have a place name rather than raw FIPS codes — state_fips maps to parent_fips and fips_summary maps to geography_fips in downstream tools, and geography_type is itself the geography_level to query at.

Parametersnamerequiredcounty_fipsgeography_type

census_query_data

Query Census Data

Query a Census dataset for one or more variables at one geography, a list of geographies at the same level, or every geography at a level. Accepts FIPS codes for the target geography — use census_resolve_geography to convert place names to FIPS when needed. On ACS datasets, labeled estimates and margin-of-error values are returned together (the comparison profiles publish no margins), and the negative sentinel values the Census writes for an estimate or margin of error it cannot publish are decoded into the meanings the Census gives them rather than passed through as raw numbers. A value cbp, ecnbasic, or nonemp withheld is stored as 0 beside a flag, and is reported as withheld, with the meaning of its flag, rather than as a zero. Pass geography_fips as "*" for every geography at the level within the parent, or as a comma-separated list of codes ("06,53") for several: rows come back in GEOID order, up to limit per call (default 50, max 500), with totalCount giving how many matched and offset reaching the rest — the order is not a ranking, so use census_compare_geographies to rank. The notice names any listed code that no row came back for. On the business datasets (cbp, ecnbasic, nonemp), pep/charv, dec/ddhca, dec/ddhcb, and acs/acs1/spp, use predicates to filter by industry, size class, or population group — a query that omits one is answered with a default the Census API picks, which is an all-categories total on some dimensions and a single category on others. Each row names the defaults that were applied in applied_filters, and census_list_predicate_values enumerates the codes a dimension accepts. Some dec/ddhca and dec/ddhcb tables split the population groups between them, publishing each group at a geography in only one table of the family, so where a result can be missing a group, a geography, or a value, the notice names the sibling tables to look in. One geography can also come back on more than one row: pep/charv publishes an April estimates base alongside

Parametersyearlimitoffsetdatasetvariablesrequiredpredicatestract_fipscounty_fipsparent_fipsgeography_fipsrequiredgeography_levelrequired

census_compare_geographies

Compare Census Geographies

Compare one or more variables across multiple geographies at the same level — all counties in a state, all states nationally, or a named set of specific geographies — ranked on the value of one of them. Covers queries like "compare median income across WA counties" or "which states have the most people below the poverty line." A count ranks geographies by size, not by rate, so to rank a rate, rank a published percentage: S1701_C03_001E (percent below the poverty level, dataset acs/acs5/subject), DP03_0128PE (the same percentage, acs/acs5/profile), or DP04_0047PE (percent of occupied housing units that are renter-occupied, acs/acs5/profile). Profile and subject tables reach tracts but not block groups. Omit within to compare all geographies nationally at the level. Suppressed values are decoded to human-readable labels rather than passed through as raw negative sentinels. On the business datasets (cbp, ecnbasic, nonemp), pep/charv, dec/ddhca, dec/ddhcb, and acs/acs1/spp, use predicates to rank within one industry, size class, or population group — a comparison that omits one ranks on a default the Census API picks, which is an all-categories total on some dimensions and a single category on others. Each row names the defaults that were applied in applied_filters, and census_list_predicate_values enumerates the codes a dimension accepts. Some dec/ddhca and dec/ddhcb tables split the population groups between them, publishing each group at a geography in only one table of the family, so a ranking on one of them leaves out the geographies whose group sits in a sibling table — the notice names those tables. A dataset that publishes several records per geography cannot be ranked until one is pinned: pep/charv publishes an April estimates base and a July estimate, so a comparison that pins neither fails with ambiguous_rows rather than giving every geography two ranks — pass predicates {"MONTH": "7"} for the July estimate.

Parametersyearlimitoffsetwithindatasetsort_bysort_dirvariablesrequiredpredicatesgeographieswithin_countygeography_levelrequired

Version history

9
  1. v0.7.2LatestNov 4, 2026
  2. v0.7.1Oct 29, 2026
  3. v0.6.3Oct 25, 2026
  4. v0.6.2Oct 13, 2026
  5. v0.6.1Oct 8, 2026
  6. v0.6.0Sep 25, 2026
  7. v0.5.0Sep 25, 2026
  8. v0.3.4Sep 20, 2026
  9. v0.3.3Sep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts