ipums-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| microdata_list_extractsA | List recent extracts for an IPUMS microdata collection (e.g. usa, cps, ipumsi). Returns extract numbers, status, and basic metadata. |
| microdata_list_samplesA | List available samples for an IPUMS microdata collection (e.g. all ACS, CPS, or Census years). Use this to find the correct sample ID before creating an extract. |
| microdata_get_extractA | Get the status and details of a specific IPUMS microdata extract by its number. Includes download links when the extract is complete. |
| microdata_create_extractA | Submit a new IPUMS microdata extract request. Specify the collection, samples, variables, and output format. Returns the new extract number and initial status. Once submitted, use microdata_extract_to_code to generate reproducible R or Python code for the extract. |
| microdata_download_extractA | Download completed IPUMS microdata extract files to a local directory. Verifies SHA-256 checksums. Returns local file paths and verification status. |
| microdata_wait_for_extractA | Poll a microdata extract until it completes (or fails). Returns the final extract object including downloadLinks when done. Default timeout is 90 seconds — if the extract is still running at that point the tool returns early with the current status and a command to check back later, so the conversation is not blocked for large extracts. |
| microdata_search_variablesA | Search IPUMS USA harmonized variable mnemonics by name or label. Returns matching variables with their label, record type (H=household / P=person), thematic group, and available sample IDs. Use this to discover variable names before building an extract. The |
| nhgis_list_datasetsA | Browse available NHGIS datasets. Returns paginated list of dataset identifiers, names, years, and geographic levels available. |
| nhgis_get_datasetA | Get full details for a specific NHGIS dataset including available data tables, geographic levels, breakdown values, and years. |
| nhgis_list_data_tablesA | List all available NHGIS data tables across all datasets. Returns paginated list of table identifiers, descriptions, and universe. |
| nhgis_get_data_tableA | Get detailed information about a specific NHGIS data table within a dataset, including all variable descriptions. |
| nhgis_list_time_series_tablesA | List all available NHGIS time series tables. These span multiple census years with consistent geographic definitions. |
| nhgis_get_time_series_tableA | Get full details for a specific NHGIS time series table including available years, geographic levels, and variable descriptions. |
| nhgis_list_shapefilesA | List all available NHGIS shapefiles (boundary files). Returns identifiers for census geographies that can be included in extracts. |
| nhgis_list_extractsB | List recent NHGIS extract requests. Returns extract numbers, status, and submission timestamps. |
| nhgis_get_extractA | Get the status and details of a specific NHGIS extract by its number. Includes download links when the extract is complete. |
| nhgis_create_extractA | Submit a new NHGIS extract request. Specify datasets (with data tables and geographic levels), time series tables, shapefiles, and output format. Returns the new extract number and initial status. Once submitted, use nhgis_extract_to_code to generate reproducible R or Python code for the extract. |
| nhgis_search_datasetsA | Search NHGIS datasets by keyword. Fetches all available datasets and returns those whose name, group (e.g. '2020 Census'), or description match the keyword. Use this to find which datasets cover a topic or census year before drilling into specific data tables. |
| nhgis_search_data_tablesA | Search NHGIS data tables by keyword. If a dataset is specified, searches all tables within that dataset (comprehensive). Without a dataset, scans up to 2,500 tables across all datasets — recommend using nhgis_search_datasets first to find a relevant dataset, then scoping the search here. Matches against table description and universe. |
| nhgis_search_time_series_tablesA | Search NHGIS time series tables by keyword. Fetches all ~400 time series tables (which span multiple census years with consistent geographic definitions) and returns those matching the keyword in their name or description. |
| microdata_extract_to_codeA | Generate ready-to-run R (ipumsr) and/or Python (ipumspy) code to reproduce a microdata extract. Fetches the extract definition by number and emits code that re-submits the same request. Use this after microdata_create_extract to capture a reproducible workflow. |
| nhgis_extract_to_codeA | Generate ready-to-run R (ipumsr) and/or Python (ipumspy) code to reproduce an NHGIS extract. Fetches the extract definition by number and emits code that re-submits the same request. Use this after nhgis_create_extract to capture a reproducible workflow. |
| generate_ipums_citationA | Return a formatted citation template for an IPUMS dataset. Includes the standard author list, DOI, and a direct link to the official citation page where the current version number is always listed. The version number also appears on your extract page and in the README included with each download. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 23 tools
Most tools have clearly distinct resources and actions, with a consistent list/get/search/create pattern. A few pairs like search_ vs list_ for datasets/tables could be confused, but descriptions clarify the distinction. Overall, only one or two tools have overlapping boundaries.
All tools follow a consistent prefix (nhgis_ or microdata_) with a verb_noun pattern (list_, get_, search_, create_, download_, wait_for_). Minor exceptions like extract_to_code and generate_ipums_citation are still clear and do not break the overall consistency.
23 tools is on the heavier side but justified by covering two substantial domains (NHGIS and IPUMS microdata) with browse, search, extract creation, status, and code generation. The count is slightly over the ideal range but each tool has a clear purpose.
The microdata workflow is complete: search variables/list samples, create extract, wait, download, generate code. However, the NHGIS side lacks a dedicated download tool (nhgis_get_extract only provides links) and a wait/poll tool analogous to microdata_wait_for_extract, leaving a significant gap for agents that need to fetch NHGIS files programmatically.