mcpbeat Sign in

Bls Labor MCP Server

answering

Bls Labor MCP Server is answering right now. Last checked 1 min ago. 381 installs a week from npm. It exposes 6 tools. Last commit 1 Nov 2026.

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

Installs per day peak 178 · avg 35 · +215% w/w
a month agotoday
Uptime history 91 days of history · worst day 0%
91 days agonow
100.0%
Uptime 24h
92 of 92 checks
6
Tools
read from the server
587 ms
Response time
average over 24h
381
Installs / week
npm and PyPI

What changed 44

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

1 Nov 6 tool descriptions were rewritten bls_dataframe_describe, bls_dataframe_query, bls_get_latest and 3 more
1 Nov 4 tools changed the parameters they ask for5 times that day bls_dataframe_query, bls_get_latest, bls_get_series and 1 more
1 Nov a tool changed version2 times that day
19 Oct a tool changed the parameters it asks for bls_search_series
19 Oct a tool changed version
11 Oct a tool changed version
26 Sep a tool changed version
24 Sep 4 tool descriptions were rewritten5 times that day bls_dataframe_describe, bls_dataframe_query, bls_list_surveys and 1 more
24 Sep 4 tools changed the parameters they ask for5 times that day bls_dataframe_describe, bls_get_series, bls_list_surveys and 1 more
24 Sep a tool changed version2 times that day
and 20 more, back to 24 August 2026

What the code does

We read the source, 21 h ago · tools taken from the live server · rules 995398eba69f

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 1 min ago.

run in your terminal
claude mcp add bls-labor-mcp-server --transport http https://bls-labor.caseyjhand.com/mcp
Settings → Connectors → Add custom connector, then paste this address
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
{
  "servers": {
    "bls-labor-mcp-server": {
      "type": "http",
      "url": "https://bls-labor.caseyjhand.com/mcp"
    }
  }
}

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 or by bls_dataframe_query register_as, with provenance (source tool, query parameters), TTL, row count, and column schema. Use before writing SQL to confirm column names and types. Lazy-sweeps expired tables before responding.
bls_dataframe_query
Run a single-statement SELECT against the canvas dataframes registered by bls_get_series or by an earlier register_as. 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.
bls_get_latest
Return the single most recent observation for BLS series. SeriesIDs are trimmed, uppercased, and deduplicated in first-occurrence order. Processes the first 50 unique IDs and returns the exact remainder as unprocessedSeriesIds for a separate request. Each processed series costs one API query; bls_get_series with a 1-year window uses one query for a batch. Recommended limit: 10 series.
bls_get_series
Fetch BLS time-series data in a single API request (one query). SeriesIDs are trimmed, uppercased, and deduplicated in first-occurrence order. Processes up to 25 unique IDs without a key or 50 with one; unprocessedSeriesIds names the exact remainder for a separate request. Supports optional year range (up to 20 years; BLS may reduce it) and BLS-computed net/percent changes when available. BLS can publish a '-' missing-value sentinel; check observation.available before arithmetic. Set annual_average to add BLS-computed annual summary rows, which are not additional periods or universally arithmetic means. Large results spill to a dataframe when canvas is configured; otherwise all observations return inline. Use dataset.name in bls_dataframe_describe, then bls_dataframe_query SQL. Use bls_search_series to resolve concepts to SeriesIDs.
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; each row's searchCoverage says whether bls_search_series reaches the survey through its offline index, composes its SeriesIDs from code tables, or cannot search it, in which case its series are fetched by SeriesID with bls_get_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 publication frequency for surveys that publish one series at several frequencies) and plain-language names, ranked by relevance and paged with limit and offset. Use this before bls_get_series when you have a concept but not a SeriesID. Operates offline against an index of the major surveys — no API quota consumed. Survey filter accepts the two-letter code of an indexed survey (CU, AP, CE, LN, LA, PC, WP, JT, EC, PR, MP, CW, CM, CI, SM, LE, EI, SU, IP, BD, LU, EE; OE is indexed only when the server sets BLS_CATALOG_INCLUDE_OES=true, and otherwise composes OEWS SeriesIDs from the OE code tables, marked composed and unconfirmed); series in other surveys are fetched by SeriesID with bls_get_series. Area filter accepts place names, USPS state codes, and FIPS, CBSA, and CPI area codes.

Endpoints

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

Alternatives to Bls Labor MCP Server

same job, measured the same way
B
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)

729 installs/wk 50 tools answering
Labour Market Statistics
by contentwriterco

Labour market statistics for AI agents: unemployment, employment and wages for 150+ countries.

4 tools answering
Econdata
by pipeworx-io

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

432 installs/wk 48 tools answering
Abs Au
by pipeworx-io

Australian Bureau of Statistics (ABS) Data API MCP.

269 installs/wk 47 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.

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

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

1 135 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 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 92 of 92 checks got a reply (100.0%), average response time 587 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 in the form 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 587 ms on average, which is faster than 19% of all working MCP servers we measure. That is on the slow side — worth knowing if the tool sits inside an interactive loop. 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 381 times in the last week. Week over week that is +215%. 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?
The code is open source: it is published under the Apache-2.0 licence, written in TypeScript, 1 stars on GitHub and 6 open issues. The licence covers the code in the repository, not the hosted service at bls-labor.caseyjhand.com, which runs on its operator's own terms.