A side-by-side look at the Hazmat Cfr MCP and Apier MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Hazmat Cfr MCP for legal work as a local process; choose Apier MCP for legal as a local process. You can also run both side by side in one mcpServers block.
lookup_hazmat_entry, classify_shipping_description, validate_basic_hazmat_description.APIER_API_KEY.get_company_summary, get_public_obligations, get_exchange_rate.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Legal | Legal |
| Quality signal | 61/100 · Good | 57/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | Not declared | Not declared |
| Pricing | Not declared | Not declared |
| Required env vars | None listed | APIER_API_KEY |
| Verified owner | Community listing | Community listing |
| GitHub stars | 1 | 0 |
| Directory activity | 3 views 0 installs 0 upvotes | 1 views 0 installs 0 upvotes |
| Tools | 11 | 25 |
| Full listing | View Hazmat Cfr MCP | View Apier MCP |
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.classify_shipping_descriptionParse a basic DOT shipping description into UN/NA number, proper shipping name, hazard class, and packing group.validate_basic_hazmat_descriptionValidate a structured DOT hazmat description against the complete 49 CFR 172.101 Hazardous Materials Table.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.check_basic_segregationRun 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.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.get_placardReturn the 49 CFR 172.504 placard name and quantity threshold for a hazard class/division.decode_special_provisionDecode one or more Column 7 special-provision codes (e.g. IB2, T8, A3, 148) into their 49 CFR 172.102 text.decode_packaging_referenceResolve a Column 8A/8B/8C packaging value (e.g. '150', '202', 'None') to the 49 CFR part 173 section it references.explain_cfr_sourceExplain which public CFR source backs a field or rule in this server.get_company_summaryA one-shot summary of obligations and deadlines for a Norwegian organisation: your FIRST call when you orient against a company.get_public_obligationsKeyless. Retrieve the universal obligation set for a Norwegian entity type — every regulatory obligation that applies by virtue of BEING that organisational form, before per-company Tier-2 data is layered on.get_exchange_rateKeyless. Norges Bank reference exchange rate for a currency against NOK — the benchmark Norwegian tax and accounting rules accept for foreign-currency obligations.list_acting_capacityResolve every Norwegian regulatory action a person is currently authorised to perform on behalf of a specific organisation.get_company_profileResolve a Norwegian organisasjonsnummer (9 digits) into a structured company profile from Brønnøysund Enhetsregisteret: display name, form of organisation, NACE codes with descriptions, addresses, the dates of registration and dissolution, the `active` / `dissolved` status enum, the MVA-registered…check_authorizationReturn the authorisation snapshot for the calling consumer's delegation on a Norwegian organisation: the `status` enum (`full` / `partial` / `none`), `active_scopes`, `missing_scopes` (empty on `full`) and `delegated_rights`.get_company_contextBrønnøysund identity slice for a Norwegian organisation: legal name, form of organisation, NACE codes, addresses, the dates it was formed or dissolved, and the signaturrett / prokura role-code summary (never personal identifiers).get_company_deadlinesThe upcoming filing calendar for one organisation, horizon_months ahead.get_company_obligationsEvaluate the Apier Rulebook for a Norwegian organisation: one entry per rule with rule_id, obligation_name, evaluation_result (applicable, not_applicable or insufficient_data), a reason, the legal_reference, frequency, data_tier_required and the bokmål description, which is inherited byte for byte…get_public_deadlinesKeyless. The universal Norwegian filing calendar: the deadlines for every Norwegian business in the covered categories (MVA, A-melding, Skattemelding, Årsregnskap), which do not depend on any one organisation.validate_actionDry-run a proposed regulatory action with NO upstream side effect (no government call).explain_compliance_errorKeyless. Resolve a structured Apier compliance error code into a Norwegian-bokmål Explanation envelope: summary, bokmål why, ordered fix_steps, optional documentation link + legal_basis, and an optional handover block (who / where / what / why) for errors a human must resolve.Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"hazmat-cfr-mcp": {
"command": "npx",
"args": [
"-y",
"hazmat-cfr-mcp"
]
}
}
}
{
"mcpServers": {
"mcp-375": {
"command": "npx",
"args": [
"-y",
"stdio"
],
"env": {
"APIER_API_KEY": "YOUR_APIER_API_KEY_HERE"
}
}
}
}