Skip to main content
Glama
shawndrake2

Census API MCP Server

by shawndrake2
README.md
# Census API MCP Server

Access U.S. Census Bureau data including demographics, population, income, housing, and more.

## Data Available

- **American Community Survey (ACS)** - Detailed demographic and socioeconomic data
  - 1-year estimates (`acs/acs1`) - Areas with 65,000+ population
  - 5-year estimates (`acs/acs5`) - All areas, more reliable for small populations
- **Decennial Census** (`dec/pl`) - Official population counts every 10 years
- **Economic Census** - Business and industry statistics
- **Population Estimates** - Annual population estimates between censuses

## Setup

1. Get a free API key at: https://api.census.gov/data/key_signup.html
2. Add to your MCP config:

```json
{
  "census": {
    "command": "node",
    "args": ["/path/to/census-api/dist/index.js"],
    "env": {
      "CENSUS_API_KEY": "your-api-key"
    }
  }
}
```

## Tools

### `query`
Fetch Census data with full control over variables and geography.

| Parameter | Required | Description |
|-----------|----------|-------------|
| year | Yes | Data year (e.g., "2022") |
| dataset | Yes | Dataset path (e.g., "acs/acs1", "acs/acs5", "dec/pl") |
| variables | Yes | Comma-separated variable codes (e.g., "NAME,B19013_001E") |
| forClause | Yes | Geography to fetch (e.g., "state:*", "county:*", "state:06") |
| inClause | No | Parent geography for nested queries (e.g., "state:06" when getting counties) |

**Example:** Get median household income for all states
```
year: "2022"
dataset: "acs/acs5"
variables: "NAME,B19013_001E"
forClause: "state:*"
```

### `list_datasets`
List available Census datasets for a given year.

| Parameter | Required | Description |
|-----------|----------|-------------|
| year | Yes | Year to list datasets for |

### `list_variables`
Search for variables in a dataset. Useful for finding the right variable codes.

| Parameter | Required | Description |
|-----------|----------|-------------|
| year | Yes | Data year |
| dataset | Yes | Dataset path |
| search | No | Keyword to filter (e.g., "income", "population") |
| limit | No | Max results (default 50) |

**Example:** Find income-related variables
```
year: "2022"
dataset: "acs/acs5"
search: "income"
```

### `list_geographies`
List available geographic levels for a dataset.

| Parameter | Required | Description |
|-----------|----------|-------------|
| year | Yes | Data year |
| dataset | Yes | Dataset path |

### `get_fips`
Get FIPS codes for states, counties, or other geographies.

| Parameter | Required | Description |
|-----------|----------|-------------|
| year | Yes | Data year |
| dataset | Yes | Dataset path |
| geography | Yes | Level (e.g., "state", "county") |
| inClause | No | Parent geography filter |

**Example:** Get all county FIPS codes in California
```
year: "2022"
dataset: "acs/acs5"
geography: "county"
inClause: "state:06"
```

## Common Variables

| Variable | Description |
|----------|-------------|
| B01003_001E | Total Population |
| B19013_001E | Median Household Income |
| B25077_001E | Median Home Value |
| B23025_005E | Unemployed Population |
| B15003_022E | Bachelor's Degree holders |
| B25064_001E | Median Gross Rent |

## Rate Limits

- No strict rate limit with API key
- Without key: 500 requests/day

## Documentation

- API Documentation: https://www.census.gov/data/developers/guidance.html
- Variable Search: https://api.census.gov/data.html