U.S. Government Open Data
io.github.lzinga/us-gov-open-data-mcp · 112 stars · TypeScript · MIT
MCP server Open data from 40+ U.S. government APIs: economy, spending, Congress, health, energy, disasters
Install
The repo has no one-line install. Follow its README.
Published as
- npm
us-gov-open-data-mcpstdio
From the server's entry in the official MCP Registry.
Configuration
| Name | Set as | What it is |
|---|---|---|
DATA_GOV_API_KEYOptional · Secret | Env var | api.data.gov key, shared by Congress, FEC, GovInfo, FBI, NREL, Regulations.gov, College Scorecard, USDA FoodData, openFDA and USGS Water |
FRED_API_KEYOptional · Secret | Env var | FRED (Federal Reserve Economic Data) API key |
CENSUS_API_KEYOptional · Secret | Env var | Census Bureau API key |
BLS_API_KEYOptional · Secret | Env var | Bureau of Labor Statistics API key (optional; raises rate limits) |
BEA_API_KEYOptional · Secret | Env var | Bureau of Economic Analysis API key |
EIA_API_KEYOptional · Secret | Env var | Energy Information Administration API key |
NOAA_API_KEYOptional · Secret | Env var | NOAA Climate Data Online token (station climate data works without it) |
USDA_NASS_API_KEYOptional · Secret | Env var | USDA NASS Quick Stats API key |
HUD_USER_TOKENOptional · Secret | Env var | HUD User API token |
DOL_API_KEYOptional · Secret | Env var | Department of Labor API key |
USPTO_API_KEYOptional · Secret | Env var | USPTO Open Data Portal API key |
LDA_API_KEYOptional · Secret | Env var | Senate Lobbying Disclosure (lda.gov) API key (optional; raises rate limits) |
AQS_API_KEYOptional · Secret | Env var | EPA Air Quality System API key (used with AQS_EMAIL) |
AQS_EMAILOptional | Env var | Email address registered for the EPA AQS API key |
SEC_CONTACT_EMAILOptional | Env var | Your email for the SEC User-Agent; SEC asks automated tools for a contact and may block requests without one |
NWS_USER_AGENTOptional | Env var | User-Agent for the National Weather Service API, with your contact details (a default is sent otherwise) |
MODULESOptional | Env var | Comma-separated modules to load (default: all), e.g. 'fred,bls,treasury' |
DOMAINSOptional | Env var | Comma-separated domains to load, e.g. 'economy,health' (added to MODULES) |
HIDE_UNCONFIGUREDOptional | Env var | Set to 1 to skip modules whose required API key is not set |
TOOL_MODEOptional | Env var | 'full' (every tool) or 'discovery' (find_tools and call_tool only) |
MAX_RESPONSE_BYTESOptional | Env var | Largest tool result in bytes before rows are trimmed (default 150000) |
Files
US Government Open Data MCP
MCP Server + TypeScript SDK for 40+ U.S. Government APIs
300+ tools covering economic, fiscal, health, education, energy, environment, lobbying, housing, patents, safety, banking, consumer protection, workplace safety, transportation, seismic, clinical trials, pharma payments, research funding, procurement, and legislative data.
20+ APIs require no key · The rest use free keys that take under a minute to get
Getting Started · API Reference · Documentation
Features
- 300+ tools across 40+ government APIs — economic, health, legislative, financial, environmental, and more
- Cross-referencing — built-in instructions guide the LLM to combine data from multiple agencies (e.g., FDA adverse events + lobbying spend + campaign contributions)
- Code mode — WASM-sandboxed JavaScript execution reduces context window usage by 98-100% for large responses
- Selective loading — load only the modules or domains you need:
--modules fred,treasury,congressor--domains economy,health - Discovery mode —
--tool-mode discoverylists 4 tools instead of 350; the model searches for the one it needs - Sources on every result —
meta.sourceslists the upstream API requests behind each answer - Dual transport — stdio for desktop clients, HTTP Stream for web/remote (bearer-token auth off loopback)
- TypeScript SDK — every API is importable as a standalone typed client, no MCP required
- Disk-backed caching — responses cached to disk, survives restarts
- Rate limiting + retry — token-bucket rate limiter with exponential backoff on 429/503
Quick Start
MCP Server
Requires Node.js 22 or later.
npx us-gov-open-data-mcp
Add to .vscode/mcp.json for VS Code / Copilot:
{
"servers": {
"us-gov-open-data": {
"command": "npx",
"args": ["-y", "us-gov-open-data-mcp"],
"env": {
"FRED_API_KEY": "your_key",
"DATA_GOV_API_KEY": "your_key"
}
}
}
}
Add to claude_desktop_config.json for Claude Desktop:
{
"mcpServers": {
"us-gov-open-data": {
"command": "npx",
"args": ["-y", "us-gov-open-data-mcp"],
"env": {
"FRED_API_KEY": "your_key",
"DATA_GOV_API_KEY": "your_key"
}
}
}
}
Example Prompts
Once connected, ask your AI assistant natural language questions:
Economic: "What's the current state of the U.S. economy? Show me GDP, unemployment, inflation, and interest rates."
Health: "Show me the adverse event profile for Ozempic including clinical trials, FDA reports, and pharma payments to doctors."
Legislative: "What happened with the Inflation Reduction Act? Who sponsored it, how did the vote break down by party?"
Follow the money: "Which banking PACs gave money to members of the Senate Banking Committee, and how did those members vote on banking deregulation?"
Cross-reference: "How has federal spending on healthcare changed over the last 5 years, and what health outcomes has it produced?"
TypeScript SDK
npm install us-gov-open-data-mcp
import { getObservations } from "us-gov-open-data-mcp/sdk/fred";
import { searchBills } from "us-gov-open-data-mcp/sdk/congress";
const gdp = await getObservations("GDP", { sort: "desc", limit: 5 });
No MCP server required. All functions include caching, retry, and rate limiting.
Documentation
Full documentation at lzinga.github.io/us-gov-open-data-mcp
| Getting Started | MCP setup, SDK install, client configs |
| API Keys | Which APIs need keys, where to get them |
| Data Sources | All 40+ APIs grouped by category |
| API Reference | Auto-generated from TypeScript — every function and type |
| Examples | SDK code, MCP prompts, analysis showcases |
| Architecture | How the system works |
| Adding Modules | Add a new API — just create a folder |
Data Sources
| Category | APIs |
|---|---|
| Economic | Treasury, FRED, BLS, BEA, EIA |
| Legislative | Congress.gov, Federal Register, GovInfo, Regulations.gov |
| Financial | FEC, Senate Lobbying, SEC, FDIC, CFPB |
| Spending & Procurement | USAspending, Open Payments, GSA CALC+ |
| Health & Safety | CDC, FDA, CMS, ClinicalTrials.gov, NIH, NHTSA, DOL |
| Environment & Weather | EPA, EPA AQS, NOAA, NWS, NREL, USGS |
| Justice | FBI Crime Data, DOJ News |
| Education & Research | NAEP, College Scorecard, USPTO |
| Demographics | Census, HUD, FEMA |
| Other | BTS, USDA NASS, USDA FoodData, World Bank |
Disclaimer
This project integrates a significant number of government APIs, many of which have large, complex, or inconsistently documented schemas. AI is used as a tool throughout this project to help parse API documentation, generate type definitions, and scaffold tool implementations — making it possible to cover this much surface area and get people access to government data faster than would otherwise be feasible. While every effort has been made to ensure accuracy, some endpoints may return unexpected results, have incomplete parameter coverage, or behave differently than documented.
This is a community-driven effort — if you find something that's broken or could be improved, please open an issue or submit a PR. Contributions that fix edge cases, improve schema accuracy, or expand coverage are especially welcome. The goal is to make U.S. government data as accessible and reliable as possible, together.
All data is sourced from official U.S. government and international APIs — the server does not generate, modify, or editorialize any data.
License
MIT
Facts
- Kind
- MCP server
- Group
- Uncategorized
- Stars
- 112
- License
- MIT
- Language
- TypeScript
- Last push
- 2026-10-08
- Forks
- 24
- MCP Registry
- io.github.lzinga/us-gov-open-data-mcp
- Topics
- api, cdc, claude, congress, fda, fred, government-data, lobbying, mcp, model-context-protocol, open-data, treasury
- 1REAio.github.morluto/reaReverse engineer anything from your terminal or agent with one CLI and MCP server.125.3k
- 2com.browser-use/browser-usecom.browser-use/browser-useControl a real Chrome browser to complete any task: fill forms, extract data, book flights.117.7k
- 3World Monitorapp.worldmonitor/mcpLive markets, conflicts, country risk, chokepoints, energy, and China decision signals. 93 tools.88.3k
- 4Scrapling MCP Serverd4vinci/scrapling🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scraplingdev86.9k
- 5Everythingmodelcontextprotocol/serversThis MCP server attempts to exercise all the features of the MCP protocol. It is not intended to be a useful server, but rather a test server for builders of MCP clients. It implements prompts, tools, resources, sampling, and more to showcase MCP capabilities.85.8k
- 6Fetchmodelcontextprotocol/serversA Model Context Protocol server that provides web content fetching capabilities. This server enables LLMs to retrieve and process content from web pages, converting HTML to markdown for easier consumption.85.8k