Dol Whd について
Dol Whdは、米国労働省賃金・労働時間局がFY2005以降に結論を出した執行事例を提供します。雇用主の違反、事例履歴、未払い賃金、データの対象範囲を調べる用途向けです。
主な機能
- 01雇用主・業界・州・日付で事例検索
- 02雇用主の事例履歴と集計の取得
- 03未払い賃金額による業界ランキング
- 04データ範囲と日付範囲の確認
活用シーン
- 01雇用主の賃金違反履歴の確認
- 02業界別の未払い賃金の調査
- 03データの調査日対象範囲の確認
MCP 対応
賃金・労働時間局の執行データ検索と、雇用主、未払い賃金、データ範囲の照会ツールを公開します。単独のstdio MCPサーバーまたはPipeworxゲートウェイ経由で利用できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://gateway.pipeworx.io/dol-whd/mcpclaude mcp add --transport http pipeworx-io-dol-whd https://gateway.pipeworx.io/dol-whd/mcp{"mcpServers":{"pipeworx-io-dol-whd":{"type":"http","url":"https://gateway.pipeworx.io/dol-whd/mcp"}}}Cursor で開く{"servers":{"pipeworx-io-dol-whd":{"type":"http","url":"https://gateway.pipeworx.io/dol-whd/mcp"}}}VS Code で開く{"mcpServers":{"pipeworx-io-dol-whd":{"type":"http","url":"https://gateway.pipeworx.io/dol-whd/mcp"}}}{"mcpServers":{"pipeworx-io-dol-whd":{"serverUrl":"https://gateway.pipeworx.io/dol-whd/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
@pipeworx/dol-whd — DOL 賃金・労働時間法の執行
2005会計年度以降に確定した、米国労働省の賃金・労働時間部門によるコンプライアンス措置。賃金未払い、遡及賃金、最低賃金および時間外労働に関する違反、児童労働、H-1B および H-2A の違反が対象です。osha では、すでに DOL による執行のうち OSHA 関連を扱っています。こちらは、これまで誰も照会できなかった同系列のデータです。
Pipeworx の一部です。AI エージェントを 1878 以上の稼働中データソースに接続する MCP ゲートウェイです。これは独立した非公式の連携であり、上流プロバイダーとは提携、承認、公開のいずれも行っていません。
キーが提供されたため、2026-09-01 に _incubator から昇格しました(フリート #1052)。このキーが使えるようになるまで、すべての行リクエストが 401 を返していたため、当初はフリート #651 で10行のカタログプレビューを基に構築されました。
ツール
| ツール | 回答する内容 |
|---|---|
whd_search | 「雇用主は賃金違反で指摘を受けていますか?」— 雇用主、NAICS、州、日付で絞り込み |
whd_employer | 1つの雇用主の全案件履歴と集計値 |
whd_top_backwages | 「業界で最も多額の遡及賃金を支払う義務があるのは誰ですか?」 |
whd_coverage | データセットの対象範囲、公開日、調査結果の日付範囲 |
認証
プラットフォームキー(PLATFORM_DOL_KEY。ゲートウェイと registry-api に設定)を使用し、_apiKey で BYO による上書きができます。https://dataportal.dol.gov から無料で取得できるキーは、すべての DOL データセットを対象とし、申請してすぐに利用できます。承認手続きはありません。ゲートウェイがプラットフォームキーを注入するため、_apiKey はどのツールの required リストにも含まれていません。
これは data.gov の共通キーではありません([[reference-datagov-key-universal]] は該当しません)。DOL オープンデータポータルは独自のキーを発行します。
カタログは公開されていますが、行データは公開されていないため、注意が必要です。 GET /v4/datasets と GET /v4/datasets/10362 はどちらもキーなしで 200 を返すため、データを要求するまではソースが公開されているように見えます。データを要求すると、キーなしの行リクエストは 401 と "The API key is either incorrect or missing from your query." を返します。
さらに厄介なことに、エンドポイントによって認証方法が異なります。 /v4/datasets* は X-API-KEY: ヘッダーを受け付けますが、/v4/get/... はこれを 401 で拒否し、クエリパラメーターとしてキーを指定する必要があります。カタログ呼び出しは成功し、すべてのデータ呼び出しが 401 を返すため、キーの指定場所が間違っているのではなく、キーが無効だと誤解されがちです。このパックでは常にクエリパラメーターを使用します。
上流のスロットリングは、キーごとではなく送信元 IP ごとに適用されます。 数分間におよそ20回呼び出すと、HTTP 429 が返されます。x-amzn-errortype: ForbiddenException が含まれますが、Retry-After はなく、約10分間続きます。実測では、スロットリング中の IP から偽のキーを指定した場合も 429 が返されましたが、キーを完全に省略した場合は引き続き 401 が返されました。このことから、制限が IP に適用されると分かります。そのため、これはキーごとのクォータではなく、共通の外部向け IP に伴うリスクです。このパックは2回バックオフした後、例外をスローせずに { found: false, reason: "upstream_rate_limited" } を返すため、スロットリングと案件のない雇用主を区別できます。
データソース
- https://apiprod.dol.gov/v4/get/whd/enforcement/json — 案件データ行(キーが必要)
- https://apiprod.dol.gov/v4/datasets/10362 — データセットのメタデータと10行のプレビュー(公開)
- https://dataportal.dol.gov — キーの登録と API クエリビルダー
クエリ文法(推測ではなく、ドキュメントに記載)
data.dol.gov は React SPA で、バンドル /static/js/main.1788ccf8.js に DOL 自身による API ドキュメントが含まれています。パラメーターは limit、offset、sort(asc/desc)、sort_by(フィールド名)、fields、filter_object、X-API-KEY で、すべてクエリパラメーターです。ドキュメントから引用した演算子は、eq、neq、gt、lt、in、not_in、like です。この一覧にない演算子が使えるとは想定しません。
filter_object は、DOL の例に従って、{field, operator, value} に対するネストされた and/or グループを含む JSON 文字列です。
filter_object={"and":[{"or":[{"field":"industry","operator":"eq","value":"A"},
{"field":"industry","operator":"eq","value":"C"}]},
{"field":"year","operator":"eq","value":"2021"}]}
このパックがすでに対処している落とし穴
- 該当なしのクエリは、200と
{"data":[]}ではなく、本文なしのHTTP 204を返します。res.okは204でもtrueになるため、ステータスを確認せずに解析すると、入力が空の場合に例外が発生します。その結果、最もよくある否定的な結果である「この雇用主には事例がない」が、こちらの解析バグのように見えてしまいます。 filter_objectのキーワードは小文字でなければなりません —field、operator、value、and、or。それ以外を指定すると、フィールド名を示さない「タイプミスを確認してください」という一般的なメッセージとともに500が返ります。誤ったデータセット名でも同じ500が返るため、元の依頼にあった名前whd/whisardは、タイプミスではなくDOLの障害のように見えました。データセット名はwhd/enforcementです。- 部分文字列検索として機能させるには、
likeに%が必要です。 DOLはlikeを部分文字列演算子として説明していますが、構文は説明していません。2026-09-01に測定したところ、%Walmart%もWalmartだけの指定も行を返しましたが、ワイルドカード形式の方が厳密に多くの結果を返しました。こちらは、Walmartだけの指定では一致しない「Subway Georgetown Walmart」にも一致します。ワイルドカードなしのlikeは完全一致です。ここでの雇用主検索にはすべて%term%を使用しています。 - 商号と法的名称は同じとは限りません。 「Reliant Energy」と「Reliant Energy Retail Services, LLC」は同じ雇用主です。どちらも
likeで照合し、すべてのヒットに、どちらの名称が一致したかを示すmatched_fieldが含まれます。 bw_atp_amtは合計値であり、FLSA列は落とし穴です。 法令ごとの列(flsa_bw_atp_amt、sca_bw_atp_amt、cwhssa_bw_amt、dbra_…、mspa_…、h1b_…、fmla_……)は相互に排他的で、合計するとbw_atp_amtになります — 2つの法令が適用される事例で検証済みです(Corrections Corp of America:7,118,609 SCA + 953,252 CWHSSA = 8,071,861、Hewlett-Packard:4,831,719 SCA + 401,211 FLSA = 5,232,930、どちらも完全に一致)。しかし、flsa_ot_…、flsa_mw_…、flsa_15a3_…とflsa_smw*の一連の列は、flsa_bw_atp_amtの内訳であり、その兄弟項目ではありません。そのため、すべての*_bw_*_amt列を合計すると二重計上になります。このパックは、back_wages_agreed_usd(合計)、back_wages_by_statute、flsa_breakdownをそれぞれ別々に返し、さらに構造の変更が数値をひそかに水増しするのではなく、レスポンスに表れるようback_wages_reconcilesフラグも返します。- 調査結果の日付は、事例の開始日や終了日ではありません。 データセットにその旨が明記されており、開始日や終了日は含まれていません。最新状況の判定には、調査結果の日付を使用してください。
- ただし、最新の調査結果の日付を単純に採用しないでください。
findings_end_dateがNULLの行はsort=descで先頭に並ぶため、単純なクエリではnullが返ります。また、DOLのデータには誤入力された未来の日付があり、NULLではない最新の行には3021-05-01と記されています。whd_coverageは期間の両端に上限を設け、その旨をwindow_noteで説明します。 www.dol.govのHTMLページは、Akamaiの背後では一般的なUAからのアクセスに403を返すため、完全なブラウザー用ヘッダー一式(workers/data-pipeline/src/datasets/dod-contracts.tsのBROWSER_HEADERS)が必要です。 これはヘッダーフィンガープリントによるブロックであり、CF egressによるブロックではありません — プロキシを構築しないでください。apiprod.dol.govは別のホストであり、このような制限は見られません。
プロモーション時に解決済み
bw_atp_amtは法令列の合計値ですか、それとも独立した項目ですか? 法令ごとの列の合計値です — 実際の行で確認済みです。上記の落とし穴を参照してください。キーがなかった間、このパックに残っていた未解決の疑問はこれだけでした。- デプロイ済みのCloudflare Workerから到達できますか? はい — 2026-09-01にゲートウェイ経由で実環境で検証済みです。
apiprod.dol.govはCF egressを制限しません。(上記のwww.dol.govのAkamaiブロックは別のホストで発生し、HTMLスクレイピングには引き続き適用されます。) - **
PLATFORM_DOL_KEY**は、pipeworx-gatewayとpipeworx-registry-apiの両方でwranglerシークレットとして設定されています。
その他の41のDOLデータセット
同じv4 APIは、9つの機関にわたる42のデータセット(MSHAが15、OSHAが11、ILABが7、ETAが4、EBSA、TRNG、VETS、WB、WHDがそれぞれ1つ)を提供します。呼び出し形式と上記のすべての注意点を含む完全な一覧は、docs/dol-open-data-catalog.mdに記録されています。
調査のみ — ここにあるものは何も構築されておらず、飽和状態に達した後は、推測で構築すべきではありません。需要のシグナルを受け取れるように用意されています。
クイックスタート
MCP クライアント(Claude Desktop、Cursor、Windsurfなど)に追加します。
{
"mcpServers": {
"dol-whd": {
"url": "https://gateway.pipeworx.io/dol-whd/mcp"
}
}
}
このエンドポイントが実際に提供するもの
https://gateway.pipeworx.io/dol-whd/mcpのtools/listは、上の表にあるツールに加えて、共有のPipeworxメタツール(ask_pipeworx、discover_tools、search_within、remember/recall、その他ゲートウェイ全体で使えるツール群)を返します。そのため、表示されるツール数はこの表より多くなります。単一パックのエンドポイントには現在、パック独自のツールに加えて、共有ツールが約30個表示されます。接続のinitializeレスポンスには正確な対象範囲が示されており、その日の状況を確認するうえで最も信頼できる情報です。
これは意図的な設計であり、偶然の多重化ではありません。メタツールを使うと、このパックが扱わない質問にもask_pipeworx経由でカタログ全体を対象に回答でき、MCP サーバーを追加する必要がありません。現在、メタツールなしでパックのエンドポイントを接続する方法はありません。追加のスキーマによるコンテキスト消費がルーティングの利点を上回る場合は、複数のパックエンドポイントではなく、フルゲートウェイに一度だけ接続してください。
または、Pipeworxのフルゲートウェイに接続して、このパックのツールだけでなく、すべてのパックのツールを直接一覧表示します。
{
"mcpServers": {
"pipeworx": {
"url": "https://gateway.pipeworx.io/mcp"
}
}
}
どちらのURLも同じゲートウェイと同じ1878以上のデータソースに接続します。違いは、どのパックのツールが直接一覧表示されるかだけです。どちらからでも、ask_pipeworxですべてのツールを利用できます。
MCP クライアントがない場合:HTTPで呼び出す
curl -X POST https://gateway.pipeworx.io/v1/tools/whd_search \
-H 'Content-Type: application/json' \
-d '{"employer":"Walmart"}'
最初の呼び出しではアカウントは必要ありません。任意のツールを確認するには、GET https://gateway.pipeworx.io/v1/tools/whd_searchを使います。ツールを探すには、{"query":"..."}を指定してPOST https://gateway.pipeworx.io/v1/tools/search_packsを使います。
スタンドアロン(ゲートウェイアカウント不要)
このパッケージは、ローカルのstdio MCP サーバーとしても動作します。Pipeworxアカウントも、ゲートウェイとの通信も不要です。
{
"mcpServers": {
"dol-whd": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-dol-whd"]
}
}
}
または、直接実行して起動を確認します。
npx -y @pipeworx/mcp-dol-whd
stdin/stdout経由でMCPを使用し、このパックのツールのみを対象にinitialize/tools/list/tools/callに応答します。上記のゲートウェイ接続で追加される共有メタツールはありません。同じソース、同じツールで、ask_pipeworxによるルーティングはありません。
ask_pipeworxの使用
ツールを直接呼び出す代わりに、自然な英語で質問できます。これは上記のパックエンドポイントでも、フルゲートウェイでも使えます。
ask_pipeworx({ question: "your question about Dol Whd data" })
ゲートウェイが適切なツールを選び、引数を自動的に入力します。
詳細
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。