MCP.Market

Hazmat Cfr MCP server

by andretaki·io.github.andretaki/hazmat-cfr-mcp·v0.3.0·1 stars

Complete 49 CFR 172.101 hazmat table lookup with special-provision decoding, cited to eCFR.

A92/100grade A
What users say
No reviews yet
Be the first
Safety scan
A92/100

full report

Adoption
Growing

1 stars79 downloads/wk

Reviews

Write one

Nobody has reviewed Hazmat Cfr yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Hazmat Cfr tools (11, 1 write)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • check_basic_segregationwrite action

    Run conservative pairwise segregation warnings for supplied hazard classes using a small encoded subset of 49 CFR 177.848 logic.

  • check_limited_quantity_eligibility

    Conservative helper for common Class 3/Class 8 limited quantity candidate screening. Does not certify shipment compliance.

  • classify_shipping_description

    Parse a basic DOT shipping description into UN/NA number, proper shipping name, hazard class, and packing group.

  • decode_packaging_reference

    Resolve a Column 8A/8B/8C packaging value (e.g. '150', '202', 'None') to the 49 CFR part 173 section it references.

  • decode_special_provision

    Decode one or more Column 7 special-provision codes (e.g. IB2, T8, A3, 148) into their 49 CFR 172.102 text.

  • explain_cfr_source

    Explain which public CFR source backs a field or rule in this server.

  • get_label_requirements

    Return hazard label codes for a UN/NA number or proper shipping name from the complete 49 CFR 172.101 Hazardous Materials Table.

  • get_placard

    Return the 49 CFR 172.504 placard name and quantity threshold for a hazard class/division.

  • get_shipping_requirements

    One-call summary of what it takes to ship a material: identity, labels, decoded packaging references, special provisions, vessel stowage, and placarding — with citations. Looks up by UN/NA number or proper shipping name.

  • lookup_hazmat_entry

    Look up a hazardous material by UN/NA number or proper shipping name in the complete 49 CFR 172.101 Hazardous Materials Table (pinned eCFR snapshot). Returns matching entries with decoded symbols and special provisions.

  • validate_basic_hazmat_description

    Validate a structured DOT hazmat description against the complete 49 CFR 172.101 Hazardous Materials Table.

Public scan report

scanner v0.1.9 · 2026-09-26 · same rubric, same numbers if you re-run it

no findings
  • Code scan48 source files scanned25/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitylocal package, no credentials required12/15
  • Maintenancelast push 25 days ago15/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Overall 92/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How Hazmat Cfr compares

Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
92/100
higher than 95% of 48,255 servers
Tools
11
the typical server has 7
Tools that change things
9%
typical: 0%. Fewer write tools means less an agent can break
GitHub stars
1
more than 65% of 28,688 servers
Downloads a week
79
more than 57% of 12,191 servers with a package

What its tools let an agent do: 10 read · 1 change

Install Hazmat Cfr in Claude Code, Cursor or VS Code

Runs npx -y hazmat-cfr-mcp on your machine. Read the scan report first; the gateway never runs local packages.

claude mcp add hazmat-cfr-mcp -- npx -y hazmat-cfr-mcp
Add to Cursor

What the publisher says

From the Hazmat Cfr repository's README, as published. We do not edit it. Read it on GitHub

hazmat-cfr-mcp

The complete 49 CFR 172.101 Hazardous Materials Table, as an MCP tool for AI agents — every field cited to a pinned eCFR revision.

Give Claude, Cursor, Codex, and other MCP clients a DOT hazmat lookup, classification, and validation tool backed by the entire Hazardous Materials Table — not a sample.

Ask an agent:

Can I ship 60 L of acetone on a cargo-only aircraft? What are its label, packing, and special-provision requirements?

It returns the proper shipping name, hazard class, packing group, label codes, packaging references, aircraft limits, vessel stowage, decoded special provisions, and CFR citations — in structured JSON.

Use it two ways:

  • hazmat-cfr-mcp — MCP stdio server for agents
  • hazmat-cfr — local CLI for humans, tests, and scripts

No API keys. No customer data. No carrier contracts. No NMFC. Public CFR only.

What's in the box

  • ~2,700 Hazardous Materials Table entries (49 CFR 172.101) — every UN/NA entry plus Forbidden materials, ingested directly from the official eCFR.
  • Special-provision decoding — all ~420 Column 7 codes (49 CFR 172.102: numeric, A, B, IB, IP, N, R, T, TP, W) expanded into their regulatory text.
  • Legend decoding — Column 1 symbols (+ A D G I W), Column 10A vessel stowage categories, and Columns 8A–8C packaging references resolved to part-173 sections.
  • Pinned to a dated eCFR snapshot so every answer is reproducible and citable to an exact revision.
  • A curated synonym/CAS layer so "IPA", "muriatic acid", or "bleach" resolve — kept clearly separate from regulatory data.

10-second try

npx -y hazmat-cfr-mcp --help
npx -y hazmat-cfr lookup UN1088          # not in any "sample" — the whole table is here
npx -y hazmat-cfr decode-sp IB2 T8 A3

Why this exists

Foundation models are weak at regulated shipping details. They may know what acetone is, but they should not guess whether a shipping description is complete, what IB2 means, or which CFR field backs a label requirement.

This server gives agents an explicit, cited, complete hazmat tool surface so they answer with the regulation instead of a hallucination.

Accuracy & verification

This is a compliance-adjacent tool, so correctness is enforced by the build, not by hope:

  • The dataset is generated from the eCFR versioner API and committed to the repo (see docs/data-pipeline.md). It is never hand-edited.
  • The ingest fails if any special-provision code referenced by the table does not resolve in 172.102 (documented source errata, e.g. IP16, are resolved to an explicit "referenced but not defined" note — never fabricated).
  • test/data-integrity.test.ts re-checks entry counts, structural validity, referential integrity, and ~22 hand-verified spot-checks on every run.
  • The parsers are unit-tested against fixtures in test/fixtures/.

⚠️ Disclaimer. This is an informational aid that surfaces public CFR text. It is not legal advice, not a compliance certification, and not a substitute for a trained hazmat employee. Always verify any shipping decision against the current eCFR.

Install and run

npx hazmat-cfr-mcp            # MCP stdio server
npx hazmat-cfr lookup UN1090  # CLI

From a clone:

git clone https://github.com/andretaki/hazmat-cfr-mcp.git
cd hazmat-cfr-mcp
npm install
npm run build
npm run demo

CLI:

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

Hazmat Cfr: common questions

Is Hazmat Cfr MCP server safe?
Yes, by our scan: it is graded A (92/100). Read the Hazmat Cfr safety report
How do I install Hazmat Cfr?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does Hazmat Cfr need an API key?
Not as far as the registry entry and our scan can tell: no credentials are declared or required.
Is Hazmat Cfr maintained?
The last commit was 64 days ago (2026-09-01). The latest release is v0.3.0.
How does Hazmat Cfr compare with other MCP servers?
safety score 92/100 (higher than 95% of 48,255 servers); tools 11 (the typical server has 7); tools that change things 9% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.