@pipeworx/osha

Connect: https://pipeworx.io/mcp — every tool in the catalog, including @pipeworx/osha’s. Install: one-click buttons

Connect to just the @pipeworx/osha pack

https://gateway.pipeworx.io/osha/mcp — only @pipeworx/osha’s own tools, nothing else in the catalog.

No MCP client? Skip the connection: POST https://gateway.pipeworx.io/v1/tools/search_packs {"query":"..."} to find a tool below, GET /v1/tools/<name> for its schema, POST the same URL with arguments for the data — see For AI agents.

Tools: 5

US OSHA workplace-safety standards (29 CFR) AND OSHA enforcement records — inspections, violations, and penalties by establishment.

Tools

  • osha_standard(citation) — full text of one OSHA standard by citation (e.g. “1910.132”), or a part’s section list.
  • osha_search(query, limit?) — keyword search across OSHA standards (29 CFR parts 1900–1990).
  • osha_inspections(establishment?, state?, since?, limit?) — OSHA inspections for a named establishment and/or state, with dates, inspection type, scope, and open/closed status.
  • osha_inspection(activity_nr) — one inspection’s violations: standard cited, violation type, instances, employees exposed, and initial + current penalty amounts, with totals.
  • osha_establishment_summary(name, state?) — rolled-up inspection count, violation count, total penalties, last inspection date, and the distinct establishment names matched.

Auth

  • osha_standard / osha_search: keyless (eCFR).
  • osha_inspections / osha_inspection / osha_establishment_summary: platform key (PLATFORM_DOL_KEY) with BYO override via _apiKey — the same key and the same DOL Open Data Portal account the dol-whd pack uses.

Data sources

Both enforcement tables are called live, per request — no stored copy. Measured 2026-10-09/10 against the live API:

  • The HTML establishment-search UI the original task named (osha.gov/pls|ords/imis/establishment.search) sits behind an AWS WAF “Human Verification” CAPTCHA on every request — HTTP 405, x-amzn-waf-action: captcha — even from a plain curl with a full browser User-Agent. That is a JS/CAPTCHA challenge, not a UA check, so no server-side fetch (including a Cloudflare Worker) can pass it. It is not used by this pack.
  • enforcedata.dol.gov 301-redirects to data.dol.gov, the same React SPA host dol-whd already reverse-engineered. Its real API — apiprod.dol.gov/v4 — serves OSHA’s inspection and violation tables live and per-request, filterable by filter_object, not as a bulk-download catalog. Frequency is “Daily”; a live violation row’s load_dt was the day before this was built. No baking, no KV/D1, no database — this reuses dol-whd’s already-funded platform key.
  • Row access repeats two dol-whd findings: the /v4/get/... endpoint REJECTS the key as an X-API-KEY HEADER (401) and requires it as a QUERY PARAMETER instead; a zero-match query answers HTTP 204 with an EMPTY body, not {"data":[]}.
  • NEW, not documented anywhere DOL publishes: like matching on estab_name is CASE-SENSITIVE and the column is stored UPPER-CASE — %walmart% 204s, %WALMART% 200s for the identical establishment. Every name/establishment argument is upper-cased before building the filter.
  • The ~20-call/10-minute 429 throttle dol-whd documented is shared by this dataset (hit it live while building this pack). On 429, each enforcement tool backs off twice, then returns reason: 'upstream_rate_limited' rather than a bare throw or a silent found:false.
  • data_as_of on every enforcement response is the call’s own timestamp — there is no cache to report a load date for; the request IS the read.

Tools

  • osha_standard — Get the full text of one OSHA standard (US workplace-safety / occupational safety and health regulation) by its citation. OSHA standards are 29 CFR — this returns the exact regulatory wording currentl
  • osha_search — Keyword search across OSHA standards — the US workplace-safety / occupational safety and health regulations in 29 CFR (parts 1900–1990). Answers “what OSHA standards cover X”, “OSHA regulation / workp
  • osha_inspections — OSHA inspections for a named establishment and/or state — the enforcement record OSHA actually took, not the standards. Answers “has OSHA inspected X”, “list OSHA inspections for X”, “OSHA inspections
  • osha_inspection — One OSHA inspection by its activity number (from osha_inspections or osha_establishment_summary): the inspection record plus every violation cited — standard cited, violation type (Serious/Willful/Rep
  • osha_establishment_summary — Rolled-up OSHA enforcement history for an establishment: how many inspections, how many violations, total initial and current penalty amounts across all of them, the most recent inspection date, and t

Tools

  • osha_establishment_summary — Rolled-up OSHA enforcement history for an establishment: how many inspections, how many violations, total initial and current penalty amounts across all of them, the most recent inspection date, and t
  • osha_inspection — One OSHA inspection by its activity number (from osha_inspections or osha_establishment_summary): the inspection record plus every violation cited — standard cited, violation type (Serious/Willful/Rep
  • osha_inspections — OSHA inspections for a named establishment and/or state — the enforcement record OSHA actually took, not the standards. Answers has OSHA inspected X , list OSHA inspections for X , OSHA inspections in
  • osha_search — Keyword search across OSHA standards — the US workplace-safety / occupational safety and health regulations in 29 CFR (parts 1900–1990). Answers what OSHA standards cover X , OSHA regulation / workpla
  • osha_standard — Get the full text of one OSHA standard (US workplace-safety / occupational safety and health regulation) by its citation. OSHA standards are 29 CFR — this returns the exact regulatory wording currentl

Regenerated from source · build October 22, 2026