Hazmat Cfr MCP server
io.github.andretaki/hazmat-cfr-mcp·v0.3.0·1 starsComplete 49 CFR 172.101 hazmat table lookup with special-provision decoding, cited to eCFR.
1 stars79 downloads/wk
Reviews
Write oneNobody 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 postsRead from the package source without running it. The installed server may list more.
check_basic_segregationwrite actionRun conservative pairwise segregation warnings for supplied hazard classes using a small encoded subset of 49 CFR 177.848 logic.
check_limited_quantity_eligibilityConservative helper for common Class 3/Class 8 limited quantity candidate screening. Does not certify shipment compliance.
classify_shipping_descriptionParse a basic DOT shipping description into UN/NA number, proper shipping name, hazard class, and packing group.
decode_packaging_referenceResolve a Column 8A/8B/8C packaging value (e.g. '150', '202', 'None') to the 49 CFR part 173 section it references.
decode_special_provisionDecode one or more Column 7 special-provision codes (e.g. IB2, T8, A3, 148) into their 49 CFR 172.102 text.
explain_cfr_sourceExplain which public CFR source backs a field or rule in this server.
get_label_requirementsReturn hazard label codes for a UN/NA number or proper shipping name from the complete 49 CFR 172.101 Hazardous Materials Table.
get_placardReturn the 49 CFR 172.504 placard name and quantity threshold for a hazard class/division.
get_shipping_requirementsOne-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_entryLook 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_descriptionValidate 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
- 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
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
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 A3Why 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 # CLIFrom a clone:
git clone https://github.com/andretaki/hazmat-cfr-mcp.git
cd hazmat-cfr-mcp
npm install
npm run build
npm run demoCLI:
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.