workforce-data-explorer
MCP server providing AI assistants with live access to 89 curated US workforce and labor market data sources, including BLS, FRED, Census, O*NET, DOL, SEC EDGAR, and real-time signals from Indeed and ADP.
README
Workforce Data Explorer
One interface for 89 curated US workforce and labor market data sources — 30 with live API access spanning official statistics (BLS, FRED, Census, O*NET, DOL, SEC EDGAR) and real-time signals (Indeed Hiring Lab job postings, ADP payrolls, the Anthropic Economic Index).
Three ways to use it, easiest first:
| What | Where | |
|---|---|---|
| 🖥️ | Live dashboard — browse, chart, download. Zero setup. | workforce-data-explorer.streamlit.app |
| 🤖 | AI connector (MCP) — ask your own Claude or ChatGPT questions answered with live labor data | https://workforce-data-mcp.onrender.com/mcp |
| ⚙️ | Run it yourself — clone this repo, bring free API keys | Quick start below |
What's inside
| Source | What you get |
|---|---|
| FRED | 816,000+ time series — unemployment, job openings, quits, wages, participation, claims, CPI, GDP |
| BLS | CES payrolls, CPS household survey, JOLTS, Employment Cost Index, productivity, OEWS occupation wages |
| Census | ACS demographics/income/commuting by state & county, QWI hires/separations, County Business Patterns |
| O*NET | 900+ occupation profiles — skills, tasks, abilities, technology used |
| DOL | Weekly UI claims, OSHA inspections, wage & hour enforcement |
| SEC EDGAR | Layoff 8-Ks, human capital disclosures from 10-Ks, filings by company |
| Indeed Hiring Lab | Daily job postings indexes (national/state/metro/sector) + AI-postings share |
| ADP | Weekly and monthly private payrolls (via FRED) |
| Anthropic Economic Index | Real-world AI usage by occupation and task |
🖥️ The dashboard
workforce-data-explorer.streamlit.app — nothing to install.
- Catalog — search all 89 curated sources by topic
- Job Postings — real-time labor demand from Indeed, incl. AI's share of postings
- State Labor Markets — the four headline indicators for any state
- FRED / BLS / Census / O*NET / DOL / SEC pages — fetch, chart, and download any series as CSV
- AI Assistant — ask questions in plain English ("show me quits vs. openings since 2022"). The shared assistant allows a few questions per minute; paste your own free Groq key into the expander on that page for unlimited use.
🤖 The AI connector (MCP)
The best experience: plug live labor data into the AI you already use. The connector exposes 15 tools — FRED and BLS series, occupation wages, Census ACS, O*NET occupations, UI claims, SEC layoff/company filings, Indeed daily job postings, AI-postings share, state labor market snapshots, and AI-usage exposure by occupation — and your AI decides which to call.
Claude (claude.ai) — requires a paid plan:
- Settings → Connectors → Add custom connector
- Name:
Workforce Data— URL:https://workforce-data-mcp.onrender.com/mcp - In a new chat, ask something like "What's happening with layoffs at public companies this month?" or "Compare software developer and nurse wages."
ChatGPT — Settings → Connectors (developer mode) → add the same URL.
Claude Desktop app, running locally — the easy way is the extension bundle:
- Clone the repo and create the venv (see Run it yourself).
- Download
Workforce-Data.mcpbfrom the latest release and double-click it. - Claude opens an install dialog — click Install, then point it at your cloned repo folder when asked. The connector appears in Settings → Extensions with an on/off toggle. Done — no config files.
<details> <summary>Alternative: manual <code>claude_desktop_config.json</code> entry</summary>
⚠️ Edit this file only while Claude is fully quit (⌘Q). The app rewrites it from memory on exit, so edits made while it's running are silently lost.
{
"mcpServers": {
"workforce-data": {
"command": "/path/to/workforce-data/.venv/bin/python",
"args": ["/path/to/workforce-data/mcp_server.py"]
}
}
}
</details>
Claude Code — one command, available in every session:
claude mcp add --scope user workforce-data -- /path/to/workforce-data/.venv/bin/python /path/to/workforce-data/mcp_server.py
The hosted connector runs on a free tier that sleeps when idle — the first question after a quiet spell takes ~30–60 seconds while it wakes up.
⚙️ Run it yourself
Requires Python 3.10+ (tested on 3.13). All dependencies are in
requirements.txt.
git clone https://github.com/thelancehaun/workforce-data-explorer.git
cd workforce-data-explorer
python -m venv .venv && source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env # then add your free API keys (see below)
streamlit run app.py # the dashboard
python mcp_server.py # the MCP server (stdio, for Claude Desktop)
python mcp_server.py --http # the MCP server (HTTP, for remote hosting)
The app runs without any keys — SEC, O*NET, and parts of BLS/Census work keyless — but FRED (which powers most time series) and the AI Assistant chat need free ones.
API keys (all free, ~5 minutes total)
| Key | Powers | Get it at |
|---|---|---|
FRED_API_KEY |
Most time series | fred.stlouisfed.org |
BLS_API_KEY |
Higher BLS rate limits | data.bls.gov |
CENSUS_API_KEY |
ACS / QWI / CBP queries | api.census.gov |
GROQ_API_KEY |
In-app AI Assistant chat | console.groq.com |
DOL_API_KEY |
OSHA / WHD enforcement data | dataportal.dol.gov |
ONET_API_KEY |
Optional — higher O*NET limits | services.onetcenter.org |
Deploy your own copies
- Dashboard → Streamlit Community Cloud (free): point it at your fork, paste your keys under app Settings → Secrets.
- MCP server → Render (free): the included
render.yamlconfigures it — connect your fork as a Blueprint and add your keys as environment variables. Any Python host (Fly.io, Railway, a VPS) works too:python mcp_server.py --http.
Architecture
app.py Streamlit dashboard (Overview, AI Assistant, data pages)
ui_theme.py Shared chart styling (validated palette, light/dark)
mcp_server.py MCP server (stdio + streamable HTTP, TTL-cached tools)
workforce_data/
catalog.py Searchable metadata for 89 curated sources
chat.py Tool-calling chat engine (Groq) + shared tool layer
sources/
fred.py bls.py census.py onet.py dol.py sec.py indeed.py aei.py
Fetched data is cached in memory in both apps (1 hour for time series, up to a day for searches and metadata), so repeat queries don't burn API quota.
Bugs, ideas, and working together
- Bug or wrong-looking data? Open an issue — templates make it quick.
- Want to suggest a data source? Same place — there's a template for that.
- Working together / press: the contact link is on the app's About page (kept off GitHub so scrapers don't get it).
License
MIT — see LICENSE.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.