mcpbeat Sign in

Bls Labor MCP Server

answering

Bls Labor MCP Server is answering right now. Last checked 13 min ago. 172 installs a week from npm. It exposes 6 tools. Last commit 31 Aug 2026.

Fetch US Bureau of Labor Statistics data — CPI, unemployment, wages, JOLTS, and more via MCP.

Installs per day peak 216 · avg 44 · -11% w/w
a month agotoday
Uptime history 47 days of history · worst day 0%
47 days agonow
100.0%
Uptime 24h
91 of 91 checks
6
Tools
read from the server
343 ms
Response time
average over 24h
172
Installs / week
npm and PyPI

What changed 12

Every tool that appeared, vanished or quietly changed what it asks for. Recorded since 24 August 2026. No other catalogue keeps this.

31 Aug a tool description was rewritten2 times that day bls_get_series
31 Aug a tool changed version2 times that day
31 Aug a tool changed the parameters it asks for bls_get_series
24 Aug 6 tools changed the parameters they ask for bls_dataframe_describe, bls_dataframe_query, bls_get_latest and 3 more
24 Aug a tool changed version
and 2 more, back to 24 August 2026

What the code does

We read the source, 19 h ago · tools taken from the live server · rules 3dff92dd89df

Capabilities

What this server is able to do. For an MCP server this is often the job itself — a terminal server runs commands because that is what it is for. Listed so you know what you are plugging in, not as an accusation.

      child = spawn(process.execPath, [entry], {

Is this your server and something here is wrong? Tell us — corrections are free and do not require a plan.

This code can reach further than it looks

We found places where it runs commands, builds paths or queries from values it is given. None of that is a flaw by itself — it becomes one when the code changes, and code changes quietly between releases. We re-read it on every one.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 13 min ago.

run in your terminal
claude mcp add bls-labor-mcp-server --transport http https://bls-labor.caseyjhand.com/mcp
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "bls-labor-mcp-server": {
      "url": "https://bls-labor.caseyjhand.com/mcp"
    }
  }
}
~/.codex/config.toml
[mcp_servers.bls-labor-mcp-server]
url = "https://bls-labor.caseyjhand.com/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "bls-labor-mcp-server": {
      "url": "https://bls-labor.caseyjhand.com/mcp"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "bls-labor-mcp-server": {
      "url": "https://bls-labor.caseyjhand.com/mcp"
    }
  }
}

This one needs environment variables set before it will start: BLS_API_KEY (Optional — works without one (25 req/day). With key: 500 req/day + calculations and annual averages. Register free at bls.gov/developers.), MCP_HTTP_HOST (The hostname for the HTTP server.), MCP_HTTP_PORT (The port to run the HTTP server on.), MCP_HTTP_ENDPOINT_PATH (The endpoint path for the MCP server.), MCP_AUTH_MODE (Authentication mode to use: 'none', 'jwt', or 'oauth'.), MCP_LOG_LEVEL (Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').). The author declared them in the registry entry; get the values from the project itself.

Available tools 6

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

bls
bls_dataframe_describe
List canvas dataframes materialized by bls_get_series, with provenance (source tool, query parameters), TTL, row count, and column schema. Use before writing SQL to confirm column names. Lazy-sweeps expired tables before responding. Requires CANVAS_PROVIDER_TYPE=duckdb.
bls_dataframe_query
Run a single-statement SELECT against the canvas dataframes registered by bls_get_series. Read-only: writes, DDL, DROP, COPY, PRAGMA, ATTACH, and external-file table functions are rejected. System catalogs (information_schema, pg_catalog, sqlite_master, duckdb_*) are denied at the bridge layer — use bls_dataframe_describe to list available dataframes. Supports JOINs, aggregates, window functions, and CTEs. Optional register_as persists the result as a new dataframe with a fresh TTL for chained analysis. Canvas SQL operations consume zero BLS API quota. Requires CANVAS_PROVIDER_TYPE=duckdb.
bls_get_latest
Return the single most recent observation for one or more BLS series. Use for "what is X right now" questions — the current unemployment rate, the latest CPI reading, etc. Each series consumes one API query against the 500/day limit; for the current value of many series, bls_get_series with a 1-year window is more quota-efficient (one query for up to 50 series). Recommended limit: 10 series; maximum: 50.
bls_get_series
Fetch time-series data for 1–50 BLS series by SeriesID in a single API request (one query against the 500/day limit). Supports optional year range (up to 20 years per request) and BLS-computed period-over-period calculations (net change and percent change; a survey returns whichever it supports and silently omits the rest — CPI and PPI return percent change only, the inflation rate). BLS can publish a '-' missing-value sentinel; check observation.available before arithmetic. Set annual_average to add each year's annual-average row, which is that year's mean rather than an additional period. When the total observation count would exceed the inline context budget, results spill to a canvas dataframe and the response includes a dataset.name handle. Call bls_dataframe_describe with that name to inspect the dataframe schema, then use the name in bls_dataframe_query SQL. Use bls_search_series first if you need to resolve a concept to a SeriesID.
bls_list_surveys
List BLS survey programs with their abbreviation codes, full names, and metadata about calculation support and annual averages. Use to discover which survey covers a topic before calling bls_search_series. Optional category filter narrows results to prices, employment, wages, productivity, injuries, or time_use surveys.
bls_search_series
Search the BLS series catalog by natural language query, survey code, geographic area, or keywords to resolve cryptic SeriesIDs. Returns matching series with decoded components (survey, area, item, seasonal flag) and plain-language names. Use this before bls_get_series when you have a concept but not a SeriesID. Operates offline — no API quota consumed. Survey filter accepts two-letter codes (CU, CE, LN, LA, PC, JT, OE, EC, PR). Area filter accepts state names, MSA names, or FIPS area codes.

Endpoints

URLTransportStateLatencyChecked
https://bls-labor.caseyjhand.com/mcp streamable-http answering 380 ms 13 min ago

Alternatives to Bls Labor MCP Server

same job, measured the same way
C
BLS Employment & Wages
by olyport

Unemployment rates, labor force, and Consumer Price Index from the Bureau of Labor Statistics

4 tools answering
Bls
by pipeworx-io

BLS MCP — Bureau of Labor Statistics public data API (v2)

36 tools answering
econdata
by pipeworx-io

Econdata MCP — wraps BLS (Bureau of Labor Statistics) public API v2

35 tools answering
Abs Au
by pipeworx-io

Australian Bureau of Statistics (ABS) Data API MCP.

34 tools answering
ILO Labour Statistics (ILOSTAT): unemployment, wages, informality
by sidneybissoli

Labour market data from the ILO (ILOSTAT) by country, year, sex and age, with provenance.

310 installs/wk 6 tools answering
BLS OEWS
by 1102tools

BLS Occupational Employment and Wage Statistics market wages. 7 tools.

576 installs/wk local only
Economy Intel MCP
by datakoot

Macro data for AI agents: GDP, inflation, unemployment and more (World Bank, US BLS). No keys.

5 tools answering
BLS OEWS
by 1102tools

BLS access readiness and Occupational Employment and Wage Statistics market wages. 8 tools.

local only

Bls Labor MCP Server — questions

Answers built from our own checks of this server.

What can Bls Labor MCP Server do?
It exposes 6 tools, read directly from the server on our last check. Among them: bls_dataframe_describe, bls_dataframe_query, bls_get_latest, bls_get_series, bls_list_surveys, bls_search_series. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
Is Bls Labor MCP Server working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 91 of 91 checks got a reply (100.0%), average response time 343 ms. The bar chart above shows every period we have measured.
How do I connect Bls Labor MCP Server?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does Bls Labor MCP Server need an API key?
No. Bls Labor MCP Server completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 6 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is Bls Labor MCP Server?
It answers our handshake in 343 ms on average, which is faster than 45% of all working MCP servers we measure. The comparison comes from our own checks across the whole registry, every 15 minutes.
How many people use Bls Labor MCP Server?
The npm package @cyanheads/bls-labor-mcp-server was installed 172 times in the last week. Week over week that is -11%. We show installs rather than GitHub stars on purpose: a star is a bookmark, an install is someone actually running it.
Is Bls Labor MCP Server open source?
We cannot say either way: written in TypeScript, 1 stars on GitHub and 13 open issues, but we could not determine the licence, and without one the code is not open source by default.