Skip to main content
Glama
harperbrian

Labor Market Intelligence

by harperbrian

Labor Market Intelligence — Remote MCP Server

米国労働統計局(U.S. Bureau of Labor Statistics、BLS)と FRED(Federal Reserve Bank of St. Louis)のデータを、Claudeのカスタム・コネクタとして公開す読み取り専用のリモートMCPサーバで。キャリアと労働市場の調査(雇用動向、失業、求人、採用、離職、賃金、職業別見通し、産業間比較)に利できます。

Cloudflare Workers 上で動作します。コスと: は、Cloudflare のアリー・プランなら月額$0です。

完全に検証された実装計画に沿って段階的に構築されています。このコードベースで言及するすべてのブラス・エんドポインド、系列ID、データ形状上の仕様は、実装前に実APIで確されました(ドキュメントも伸だけでの想定ではありまん)。

状.

State

10件の実装チェックポンドがすべて完了し、実働中の Cloudflare Worker に対してラ・イブ検証済みです。単体テスト89件、型チェックのクリーン通過、全16ツールが実実の BLS/FRED データで動作ことを確認しました。

Claude認証に接続

  1. Claude上で 設定 → ネクタ → カスタム・ネクタを追加 を開きます。

  2. Remote MCP サーバー URL: https://<your-worker>.<your-subdomain>.workers.dev/mcp/<MCP_PATH_TOKEN>

    • このURLを資格情報として扱ってください。トークンのみがアクセスを認可する唯一のものです。

  3. OAuth Client ID / Secret: 両方とも空にします。せ…このサーバーは認証なしです。秘密のパス*というものが資格情です。Claudeは認証情報なしのリモートMCPサーをサーバ側に対応しています。

  4. 変換: Streamable HTTP(SSEはレガシーのフォールバック)。

ツール(16)

低レベルソースツール — BLS/FRED へのそのままの忠実なパススルー

ツール

役割

fred_search_series

FRED 系列の全文検索

fred_get_series

既知の FRED 系列 ID の観測値を取得

fred_get_latest

FRED の最新観測値のみを取得

bls_get_series

最大20年分・最大50系列の BLS 系列を取得。aspects=true でバックンの Employment Projections の予測雇用量・求人・賃金が利用できます

bls_list_surveys

BLS の70 インジケータ・プログラム略記号を全列列挙

bls_popular_series

BLS の「最も要求が多い」系列を一覧表示(全カテゴリではなく、BLS「EP/JOLTS/OR」には何も返されません)

search_indicators

約13個の厳選されたヘッドライン・インデックス(失業率、JOLTS 指標、雇用者数など)を検索し、それらの BLS/FRED ID に対応させます

search_occupations

約1,113 の SOC 職業名を検索し、BLS Employment Projections の系列 ID に対応させます

Research tools — conposed, higher-level analysis

Tool

Function

analyze_labor_market_trend

指定した期間の 1 系列の BLS/FRED 系列の変化量と CAGR

compare_labor_market_series

2〜10個の BLS/FRED 系列(両ソースの混合も可)を横並びで比較

analyze_job_market_conditions

スナップショット:失業率、雇用者数、求人、非採用、自発的退職、離職 — 各々1ヶ月/12ヶ月の変化付き

analyze_industry_employment

ある産業全体の長期の BLS Employment Projections 見通し

get_occupation_outlook

ある職業の BLS Employment Projections の完全な見通し(雇用・求人数・賃金中央値)

compare_occupations

2〜20個の職業の見通しを 1回のバッチ化された BLS 呼び出しで比較

analyze_wage_trends

集計賃金指標(デフォルト:平均合計時間給)の傾向/CAGR

ping

接続性チェック。BLS/ FRED の割り当ては使用しない

すべてのツールには readOnlyHint: true が付与され、自動テスト(test/unit-server.test.ts)によって環境されています。つまり、状態を変更するツールはなく、呼び出し元が指定した URL を取得するものもありません。

それぞれのソースが実際に提供するもの

ライブ API に対しても確認済みの事実を掲載します(ドキュメントから推定したものではありません)。

  • FRED は、幅広いマクロ経済の背景(GDP、率、景気循環の指標)、単位変換、本当の全文系列検索 API を提供します。また、BLS の多様な系列(UNRATE、PAYEMS、JOLTS 指標)を、美くしく一定したピッチで再配信しています。

  • BLS は、職業に関して権威武的です。Employment Projections(EP、見通し・求人数・賃)と OEWS(OE、現行)はBLS側にしかなく、FRED には National Employment Matrix がありません。

  • OEWS は API としてタイムシリーズを提供していません — すべての系列が必ず課一つの参照年を返します。これは10年分をリクエストしても「No Data Available」が9件、データが1件しか返らないことによる確認済みです。賃金のトレンドはこの APIからは取得できません。当期年の中位賃金を知りたい場合は、get_occupation_outlook を使ってください。

  • Employment Projections は時系列ではありません — 基準年+予測年(現在は約10年先)がそれぞれ1つずつのみで、せいぜい年2回の更新です。

  • 年間の求人者数は、純増の雇用成長のほかに「置き換え需要」(退職・転職する労働者)を含みます — しばしば誤読されるポイントです。

  • BLS 公式の系列検索 API は存在しません。 search_indicatorssearch_occupations は、BLS 自身のフラットファイルから導出され、ビルド時に交差検査(scripts/build-catalog.ts を参照)されたカタログを宣としており、手書きや推測ではありません。

帰属表示

BLS 由来のすべてのレスポンスには、取得日時と、BLS 利用条件が必需する文面を正確に含んでいます。「BLS.gov cannot vouch for the data or analyses derived from these data after the data have been retrieved from BLS.gov」 FRED 由来のレスポンスには、各自のソース帰属が付けられます。

このサーバーが算出するもの(パーセント変化、CAGR、月間比較)は、別々の computedByServer フィールドで返し、サーバー計算であることを明示——公式の BLS や FRED の統計として提示することはありません。ツールの指示により、Claude はそのいずれかを回答時に保存するよう指示されます。

安全モデル

  • 読み取り専用。 状態を変更するツールはなく、呼び出し側が与えた URL を取得するツールもありません。

  • シークレットパス認証。 エンドポイントは /mcp/<256-bit token> です。Claude のコネクタ UI は URL を受け入れますが、カスタムヘッダーは受け付けられないため、資格情報はパスに置かれます。比較は SHA-256 ダイジェストの上で定数時間で行います。失敗時(トークンが正しくない、トークンなし、経路不明)はどんな場合も同じ 404 を返し、推測に応えるすべがありません。

  • インバウンドのレート制限。 各 IP(cf-connecting-ip、Cloudflare が設定しクライアントからは偽装できない)あたり約 60 リクエスト/分(認証の前に実施)。フラッド時に認証計算に CPU を使わせません。Workers KV を利用し、KV が接続されていない場合はフェイルオープン(許可)します。

  • 外部向け BLS の予算ガード。 BLS の公式500リクエスト/日の登録キー割り当てのうち、デフォルトで450件までを許可するサーキットブレーカーです。使い切った場合はネットワークリクエストの前に呼び出しを失敗させ、実際の予算を暴走ルーチーから守ります。

  • 秘密はサーバーの外に出ません。 BLS_API_KEYFRED_API_KEYMCP_PATH_TOKEN は Workers の秘密データとしてのみ存在し、ツールレスポンスで返すこともログへ出しません。src/lib/logging.ts は既知の秘密や api_key=/registrationkey= のパターンを全ログレコードから一括除去し、これは単体テストで実際に保証されています。

    • 既知の制限: Cloudflare 自身のプラットフォームアクセスログ(wrangler tail も含む)にはパス トークンを含む完全なURLが記録されます。これはアプリコードの制御外です。生のログ出力を取り扱わないでください。万一さらした場合はトークンを回転し(wrangler secret put MCP_PATH_TOKEN の後、新しい URL を Claude へ再設定)、その都度新しい URL を Claude に入れ直してください。

キャッシュ

Workers KV による2構成のキャッシュです。下のTTL表に従う「フレッシュ」項目に加えて、成功のたびに35日の「スタレッジ・バックアップ」(呼び出しの実体)を書き同一に保存します。ライブ呼び出しが失敗した場合、または BLS の予算を使い切ったときは、そのままフェイルするのでなく、スタレッジー・バックアップを返します。その際は limitations フィールドに明示され、Claude が失効したデータを現行でいるとはっきりと示すことなく提示することはありません。

データ

TTL

理由

Employment Projections / OEWS

30 日

上手くても年2回の更新

BLS 調査 / 人気シリーズリスト

7 日

ほぼ固定

FRED 検索

24 時間

安定したデータ

月次シリーズ(CES/CPS/JOLTS)

6 時間

月次の公開

fred_get_latest

1 時間

新鮮さが最も重要

キャッシュキーはツール名とその引数からのみ導出し、環境や秘密からは求めません。したがって鍵マテリアルがキーに漏れ出すことがありません。

プロジェクト構造

src/
  index.ts               Worker entry: routing, auth, rate limiting
  server.ts               MCP server construction + tool registration
  env.ts                  Env typing + secret names
  errors.ts                Typed error hierarchy (network/timeout/429/5xx/BLS-200-with-error-body)
  sources/
    http.ts               Shared fetch: timeout, retry/backoff
    bls.ts                BLS v2 client
    fred.ts               FRED client
  catalog/
    occupations.json      1,113 SOC occupations -> EP series ID (build-generated, validated)
    industries.json        423 EP industries -> series ID (build-generated, validated)
    indicators.ts           ~13 curated headline indicators (individually live-verified)
    search.ts               Shared token-matching + relevance-ranking search
  tools/
    source/                Thin passthrough tools
    research/               Composed analysis tools
  lib/
    cache.ts               Workers KV two-tier cache
    ratelimit.ts             BLS daily budget guard + inbound per-IP limiter
    envelope.ts              Response envelope: citations, timestamps, disclaimers
    stats.ts                 Deterministic trend math
    logging.ts                Structured logs with secret redaction
scripts/
  build-catalog.ts          Regenerates + validates the occupation/industry catalog
test/
  unit/                    Mocked, run on every `npm test`
  live/                    Real API calls, opt-in via `npm run test:live`

ローカル開発

npm install
cp .dev.vars.example .dev.vars   # fill in real keys for local testing
npx wrangler dev --port 8787
npm test                          # unit suite (mocked, no network)
npm run typecheck
npm run build:catalog              # regenerate the occupation/industry catalog from BLS's own flat files

実際の BLS/FRED データでローカルに検証るには(キーをコミットまたはログに出しません):

BLS_API_KEY=your_key FRED_API_KEY=your_key npm run test:live

デプロイ

npx wrangler login
npx wrangler kv namespace create CACHE   # one-time; paste the resulting id into wrangler.toml
npx wrangler secret put BLS_API_KEY
npx wrangler secret put FRED_API_KEY
npx wrangler secret put MCP_PATH_TOKEN     # generate with: openssl rand -hex 32
npx wrangler deploy
curl https://<your-worker>.<your-subdomain>.workers.dev/health

シークレットと KV バインディングは wrangler deploy でも有効で、一度セットすると再度デプロイのたびには必要ありません。

既知の制約

  • Employment Projections・OEWS は単一の参照年のみのスナップショットであり、時系列ではありません。そのため「ある研究」ツールはすべて、それを明示検出して報告します(trend: null および説明付きの制約)。この1点からトレンドを作成したりはしません。

  • BLS Employment Projections の産業コードと、BLS の月次 CES 産業雇用系列の間には、検証された相互参照は存在しません(分類系が異なる)。analyze_industry_employment は長期見通しのみをカバーし、現在の月別の雇用には fred_search_seriesanalyze_labor_market_trend 組み合わせてください。

  • SOC 職業コードは Employment Projections の何十年かの版で変わります。2018年版と23年版のカタログで、版をまたいだ職業比較は信頼できません。

  • 受信するレート制限はおおよその固定ウィンドウのカウンタ程度のもので、集中時に読み取りしてからの書き込みの競合で1〜2リクエストですすぎ少えることがあります。少量の個人用コネクタでは許容されるトレードオフであり、精度保証ではありません。

-
license - not tested
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

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

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

  • SEC EDGAR, CFPB complaints, and BLS employment data. 4 tools.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/harperbrian/labor-market-intelligence-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server