Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

FreightUtils MCP Server

by SoapyREDversion 2.34.0i★ –iComputer or cloud
Registry nameio.github.SoapyRED/freightutils

Install

Overview

Description from the maker (original English)

Neutral freight reference + validation layer for AI agents: ADR, HS, UN/LOCODE, freight math

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

Install

Pick the AI app you use, then copy the settings.

Before you install

You need

  • Runs in the cloudNothing to install; it connects over the internet
  • npmNode.js installed (for the npx command)

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Works in Claude on the web, desktop and mobile:

  1. Open Settings → Connectors
  2. Press Add custom connector
  3. Paste the address below and press Add
  4. If it asks you to sign in, sign in with the maker
SettingsConnectors1+ Add2https://…3
https://www.freightutils.com/api/mcp

Or run it on your computer

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

{
  "mcpServers": {
    "freightutils": {
      "command": "npx",
      "args": [
        "-y",
        "freightutils-mcp"
      ]
    }
  }
}

Run this in your terminal

claude mcp add --transport http freightutils https://www.freightutils.com/api/mcp

Or run it on your computer

claude mcp add freightutils -- npx -y freightutils-mcp

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "freightutils": {
      "url": "https://www.freightutils.com/api/mcp"
    }
  }
}

Or run it on your computer

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "freightutils": {
      "command": "npx",
      "args": [
        "-y",
        "freightutils-mcp"
      ]
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "freightutils": {
      "type": "http",
      "url": "https://www.freightutils.com/api/mcp"
    }
  }
}

Or run it on your computer

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "freightutils": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "freightutils-mcp"
      ]
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

ChatGPT connects only to servers on the internet:

  1. Open ChatGPT on the web → Settings → Connectors (Apps)
  2. Press Create or Add (some plans need Developer mode under Advanced first)
  3. Paste the address below, give it a name and save
  4. If it asks you to sign in, sign in with the maker
SettingsConnectors1+ Create2https://…3
https://www.freightutils.com/api/mcp

Menu names can differ slightly by plan and over time.

Your choice stays on this device in a cookie; no account needed.

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

Tool names and descriptions exactly as the server reported them on Nov 6, 2026. The maker wrote them, not us; we show them as plain text.

  • cbm_calculator

    Calculate cubic metres (CBM) for a shipment from per-piece dimensions. CBM is the standard volume unit in international shipping: 1 CBM = 1m x 1m x 1m = 1,000 litres, and ocean freight prices per "freight tonne" (1 CBM or 1,000 kg, whichever is greater). Behavior: deterministic —

  • chargeable_weight_calculator

    Calculate air freight chargeable weight — the greater of actual gross weight and volumetric weight, which is what airlines bill. Volumetric weight (kg) = (L x W x H in cm) / divisor; the IATA-standard divisor is 6,000 (1 CBM = 166.67 kg), while express integrators (DHL, FedEx, UP

  • ldm_calculator

    Calculate loading metres (LDM) for European road freight — how much trailer length a pallet load occupies. 1 LDM = 1 linear metre of a 2.4m-wide trailer; a standard artic is 13.6 LDM. Provide a pallet preset OR custom length_mm + width_mm — omitting both errors with a usage hint.

  • adr_lookup

    Look up the full European road dangerous-goods (ADR 2025) Table A entry for a substance — all 20 columns, from class, packing group and labels through special provisions, limited/excepted quantities, packing instructions, tank codes, carriage provisions, transport category, tunne

  • adr_exemption_calculator

    Calculate ADR 1.1.3.6 "small load" exemption points for a dangerous-goods load and say whether it qualifies. Each substance's transport category (Table A column (15), 0-4) sets a points multiplier (1.1.3.6.4: category 1 x50, 2 x3, 3 x1, 4 x0; the nine ADR 1.1.3.6.3 note-a entries

  • airline_lookup

    Search 6,356 airlines by name, IATA code, ICAO code, AWB prefix, or country. AWB prefixes are the first 3 digits of an air waybill number and identify the issuing carrier (e.g. 176 = Emirates). Provide ONE parameter: query is a ranked fuzzy search across names and codes; iata / i

  • airport_lookup

    Look up an airport by IATA code (3 letters, e.g. "LHR"), ICAO code (4 chars, e.g. "EGLL"), or free-text name/city search (e.g. "heathrow"). Covers 86,248 airports worldwide (OurAirports, public domain, cross-checked vs OpenFlights + Wikidata). Provide ONE of iata, icao, or query;

  • nearest_airport

    Find the airports nearest to a caller-provided latitude/longitude, sorted by great-circle (haversine) distance with distance_km on each result. Searches 86,248 airports (OurAirports, public domain). Provide latitude and longitude (decimal degrees); optional radius_km, max_results

  • resolve_reference

    Resolve an arbitrary freight identifier — one opaque string in, typed and cited candidates out. Use when you hold one identifier-ish token ("176", "UN1845", "NLRTM", "FOB", "22G1", "MSKU1100810", "D/E") and do not know what kind of identifier it is: each candidate names its entit

  • container_lookup

    Get ISO shipping-container specifications, with optional load-fit maths. Covers 10 types: 20ft/40ft standard, 40ft and 45ft high-cube, 20ft/40ft reefer, 20ft/40ft open-top and 20ft/40ft flat-rack. Provide type as a slug (e.g. "20ft-standard", "40ft-high-cube") for one container's

  • hs_code_lookup

    Search 6,940 WCO Harmonized System (HS 2022) commodity codes — the 6-digit international customs classification layer. The first 2 digits are the chapter, 4 the heading, 6 the subheading. Provide ONE of: query (free-text description search, min 2 chars), code (2-6 digit lookup, w

  • incoterms_lookup

    Look up the 11 Incoterms 2020 trade rules — who pays for transport, insurance and customs clearance, and where risk transfers from seller to buyer. 7 rules work for any transport mode (EXW, FCA, CPT, CIP, DAP, DPU, DDP); 4 are sea/inland-waterway only (FAS, FOB, CFR, CIF). Provid

  • pallet_fitting_calculator

    Calculate how many identical boxes fit on a pallet: boxes per layer (trying 90-degree rotation when allowed), layer count within the max height, totals, footprint and volume utilisation, and weight capping. Behavior: deterministic geometric packing of one box size in aligned rows

  • unit_converter

    Convert freight and logistics units: weight (kg, lbs, oz, tonnes, short_tons, long_tons), volume (cbm, cuft, cuin, litres, gal_us, gal_uk), length (cm, inches, m, feet, mm), plus two freight-specific targets valid only FROM cbm — chargeable_kg (air volumetric weight at the IATA 6

  • consignment_calculator

    Calculate per-line and grand totals for a multi-item mixed consignment: CBM, loading metres (LDM), volumetric weight, and the mode-specific chargeable figure (air chargeable weight, sea revenue tonnes, road LDM), plus objective advisory flags. Provide mode (sea | air | road, defa

  • unlocode_lookup

    Search 116,086 UN/LOCODE transport locations worldwide — ports, airports, rail and road terminals, inland container depots and border crossings. Codes are 5 characters: a 2-letter ISO country code + a 3-character location code (GBLHR = London Heathrow, NLRTM = Rotterdam). Provide

  • uk_duty_calculator

    Estimate UK import duty and VAT for a commodity code using the LIVE GOV.UK Trade Tariff — rates are fetched per request, not from a static table. The CIF value is composed from customs_value + freight_cost + insurance_cost; duty = CIF x the duty rate for the origin country; VAT (

  • shipment_summary

    Composite shipment analysis in one call: volume (CBM), gross and chargeable weight, road LDM with pallet spaces and a vehicle suggestion (road mode), volumetric weight (air), revenue tonnes with a container suggestion (sea), dangerous-goods presence for items carrying un_number,

  • uld_lookup

    Look up air-cargo ULD (Unit Load Device) specifications — 16 types spanning lower-deck containers (AKE/LD3 and family), main-deck pallets (PMC, PAG and family) and temperature-controlled units. Each record carries external/internal/door dimensions (cm), tare and max gross weight

  • vehicle_lookup

    Look up road-freight vehicle and trailer specifications — 17 types: EU articulated trailers (standard/mega curtainsider, box, reefer, double-deck, flatbed, low-loader), US 53ft/48ft dry vans, rigid trucks (7.5-26 t) and vans (Luton, Transit, Sprinter). Each record carries interna

  • get_subscribe_link

    Return the FreightUtils pricing page URL with the Pro plan's request limit (50,000 per month) and price. Use when the user asks about FreightUtils plans, pricing or API limits. Behavior: static local response — no API call, never rate-limited, no account or payment action; the us

  • adr_lq_eq_check

    Check whether dangerous goods qualify for ADR Limited Quantity (LQ, ADR 3.4) or Excepted Quantity (EQ, ADR 3.5) relief. LQ compares each item's per-inner-packaging quantity against that substance's LQ maximum; EQ resolves the substance's E-code (E0-E5) and checks the per-inner li

  • emissions_calculator

    Estimate freight transport greenhouse-gas emissions (kgCO2e) for a shipment leg, per ISO 14083:2023 / GLEC Framework v3.2: emissions = mass x distance x a published emission-intensity factor (kgCO2e/tonne-km). Provide mass + distance_km + mode (road | rail | sea | air | inland_wa

  • validate

    Validate and parse freight identifiers by their public check-digit algorithms: shipping container numbers (ISO 6346), air waybill (AWB) numbers (IATA modulus-7) and IMO ship identification numbers. Two modes: pass text= to find and validate every identifier in it (e.g. a booking-

  • ics2_check

    Check a goods description against the official EU ICS2 stop-words list — terms the European Commission deems too vague or generic for an entry summary declaration (ENS) goods-description field (data element 18 05 000 000). Pass description= . Behavior: deterministic term matching

  • adr_consignment_check

    One call on the consignment object for the ADR picture of a road load: the 1.1.3.6 small-load verdict, the limited / excepted quantity check of each line, the tunnel restriction code of the whole load against the tunnels on the route, each line's transport-document entry, mixed l

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 6, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account SoapyRED, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • ✓ Pass

    Endpoint responds

    Responded in 1893 ms (HTTP 200)

  • – Not applicable

    Sign-in with OAuth

    No sign-in needed

  • ✓ Pass

    No hidden instructions in tool descriptions

    Read 26 tool descriptions and found no hidden instructions to the AI

Compared with others in Otheri

  • More stars than 0% of the other 32466 servers in this category
  • Published to the registry more recently than 99% of the other 32466 servers in this category
  • Basic checks equal to or better than 100% of the other 32466 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is FreightUtils MCP Server safe?

It passed 3 of 3 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

The registry does not list a required key, though some servers ask you to sign in on first use.

Does it run on my computer or in the cloud?

Either way works: install it on your computer or connect to the cloud version.

Is it still maintained?

The GitHub repo last changed –, and the latest version (2.34.0) reached the registry today.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.

What can I use instead?

In the same category: Spec Driven Development, Remote Desktop Commander, HotCodePush

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Spec Driven Development

by formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

Runs on your computer★ 440MITUpdated 14 months ago
Install

Remote Desktop Commander

by desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

Runs in the cloud★ 211Updated yesterday
Install

HotCodePush

by hotcodepush-team

Manage over-the-air (OTA) updates for React Native, Expo, Capacitor and Cordova apps.

Runs in the cloudUpdated today
Install

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

FreightUtils MCP Server

The neutral freight reference layer for AI agents.

FreightUtils is the neutral freight reference layer for AI agents — source-backed dangerous-goods, customs, location and freight-calculation data an agent can call and cite, from primary sources (ADR 2025 / UNECE, HS 2022 / WCO, IATA-regulated airline prefixes). Neutral by design: no freight to sell and no carrier to push — a lookup returns what the named source says, with the citation attached so an agent can inspect it rather than take our word for it, regardless of who carries the load.

This Model Context Protocol server gives AI agents access to 26 freight calculation and reference tools, covering road, air, and sea freight. Built by a UK ADR-certified freight transport planner.

Every response cites its source — a _source block with the authority, edition, licence where held, and a verification status an agent can read — and the tools are deterministic, not generated answers. Reference only: never filing, booking, or legal advice, and results state when human review is required (validate is structural check-digit validation only; a clean ics2_check is not ENS acceptance; emissions figures are estimates, not audited reports).

Since 2.11.0, every tool also declares a typed outputSchema and returns structuredContent — the FreightUtils v1 response envelope: the answer under result, plus confidence, normalized_input, warnings, _source and a ready-to-use citation. The legacy flat JSON text channel is unchanged (byte-identical), so existing text-parsing consumers are unaffected.

Since 2.24.0 the envelope is version 1.2, which adds four fields beside ok: status (ok, partial when required inputs are missing, not_found, ambiguous or unsupported), missing_inputs (the inputs a partial answer still needs), edition (the edition the answer is served from, with the dates it applies from and may apply until; null for a computed or live answer) and as_of (the date the answer's data was last audited, or today for a computed answer). A refusal carries the same envelope on structuredContent, so an agent can read partial and missing_inputs there as well. The change is additive: envelope 1 and 1.1 answers still validate.

Since 2.26.0:

  • ADR 2025 and ADR 2027. The tools that read ADR data — adr_lookup, adr_exemption_calculator, adr_lq_eq_check, consignment_calculator, shipment_summary and, from 2.29.0, adr_consignment_check — take edition ("2025" or "2027") and as_of (YYYY-MM-DD). edition wins; otherwise as_of (default today, UTC) picks the edition by the legal timeline. Without either, they answer ADR 2025 until 31 December 2026 and ADR 2027 from 1 January 2027. ADR 2027 is accepted and applies from 1 January 2027: an ADR 2027 answer for an earlier date says it is not yet applicable on that as_of (EDITION_NOT_YET_APPLICABLE). From 1 January to 30 June 2027 either edition may be applied (EDITION_TRANSITIONAL); ADR 2025 answers end on 30 June 2027, and from 1 July 2027 edition: "2025" is refused with EDITION_UNSUPPORTED. An answer on a named edition carries adr_edition; an ADR 2027 exemption answer for UN 0081, 0082, 0084, 0241, 0331, 0332, 0482, 1005 or 1017 also carries transitional_1_6_1_61 (the ADR 2025 note-a basis that 1.6.1.61 allows until 31 December 2030) beside the verdict, never instead of it.

Since 2.25.0:

  • The ADR consignment check (2.29.0). adr_consignment_check takes the consignment object (lines[] with un_number, quantity { value, unit, basis }, packing_group / variant_index, packages, inner_packaging and, on an ID line, icao_limited_quantity; journey { date, tunnels_on_route, mode }) with edition / as_of beside it (journey.date is the default as_of) and answers status — pass, fail, conditional or insufficient_data — with missing_inputs[] (each input by path, the check it blocks, what to send) and checks_performed[] (each check's verdict, edition, date, basis and the ADR section and page it rests on). The 1.1.3.6 check is adr_exemption_calculator's answer, whole; the LQ / EQ checks are adr_lq_eq_check's; the tunnel check gives the whole load's code (the most restrictive, 8.6.3.2) and which tunnels on the route the load may use without and with the 1.1.3.6 relief (8.6.3.3); the document entries follow 5.4.1.1.1 (a), (b), (c), (d), (k), e.g. UN 1098 ALLYL ALCOHOL, 6.1 (3), I, (C/D). From 2.30.0 it also checks mixed loading (mixed_loading_7_5_2): every pair of lines against the ADR 7.5.2.1 table by the labels of Table A column (5), subsidiary labels included, Class 1 pairs against the 7.5.2.2 table by compatibility group, each pair with its deciding cell (e.g. 3 × 1.4) and source; and the foodstuffs precautions of 7.5.4 for goods with CV28, with the optional vehicle.foodstuffs_carried. Where the ADR text does not settle a case the check asks instead of assuming. Not yet checked: plates and placards (5.3), vehicle equipment (8.1), driver training (8.2.1), packaging codes. A keyed call stores a check receipt.
  • Check receipts. A receipt is stored only when the package runs with an API key (FREIGHTUTILS_API_KEY) — a free key is enough (freightutils.com/pricing). Then every answer of the seven executed checks (adr_exemption_calculator, adr_lq_eq_check, uk_duty_calculator, consignment_calculator, shipment_summary, ics2_check and, from 2.29.0, adr_consignment_check) carries _meta.check_id and _meta.receipt_url. A receipt is the record of that one check, kept for 90 days at GET https://www.freightutils.com/api/receipts/{check_id} (?format=text for a summary): the inputs as consumed, the edition and as-of date, the data hashes, the rules applied, the result, anything unresolved and a receipt_hash a copy can be checked against. Without a key the answer carries the receipt hash inline and nothing is stored: _meta.receipt (stored: false, reason: "key_required"; from 2.28.0 the reason may also be "quota" — the key's daily stored-receipt allowance for the day is used up, the answer is unchanged and nothing is stored; receipt_hash and the hashed fields the answer does not otherwise carry, so the hash recomputes from the answer alone), and no check_id (the API's rule since 30 October 2026, typed in this package from 2.26.0). Verifying by id needs no plan and no payment — a keyed check's receipt is read with the same key — and a fetch counts as one request against the daily allowance, like a lookup. A receipt never holds a name, an address, a key or an IP address. Every check also names the edition it rested on (edition + as_of), or answers edition: null with _meta.edition_basis "no regulatory dataset read".
  • Batch inputs. adr_lookup takes un_numbers[]; unlocode_lookup, airport_lookup, airline_lookup and hs_code_lookup take codes[] (up to 50 each); uk_duty_calculator takes lines[] (up to 10). Send the list alone: the answer is results[] in input order, each item with its own status. One call against the daily limit, one per item against the Pro monthly allowance.
  • What each ADR code means. adr_lookup answers resolved_codes[] beside results[]: each code in Table A columns (5)–(20), once per answer, with the rows that carry it, its summary, ADR section and verification_status. include_codes picks compact (the default for a UN number), full (adds the url, title, meaning and references) or none; include_statements: true adds plain-word statements to every row. The meanings are FreightUtils' paraphrases of ADR 2025, cited to section, and verification_status says how each has been reviewed: paraphrase_unreviewed, machine_reviewed (two independent readings of the UNECE text, compared with the record; the owner adjudicates every disagreement), contested, owner_reviewed, dg_reviewed, needs_fix, or verified on the transport category and tunnel code entries read from the 1.1.3.6.3 and 8.6.4 tables (typed from 2.28.0).
  • Scopes. --scope dg | customs | ops (or FREIGHTUTILS_SCOPE) serves only that scope's tools — see Scoped tool lists. The default serves all of them.
  • The consignment object. consignment_calculator, shipment_summary and adr_exemption_calculator take one consignment argument (schema) instead of their own inputs; validate checks one with type: "consignment".

Website: https://www.freightutils.com API Docs: https://www.freightutils.com/api-docs


Tools (26)

Calculators
ToolDescription
ldm_calculatorLoading metres for European and US road trailers
cbm_calculatorCubic metres for sea freight
chargeable_weight_calculatorAir freight chargeable weight (volumetric vs actual)
pallet_fitting_calculatorBox-on-pallet optimisation with rotation
container_lookupISO container specs (10 types) and loading calculation
unit_converterWeight, volume, length, and freight-specific conversions
consignment_calculatorMulti-item CBM, LDM, volumetric & mode-specific chargeable weight (sea/air/road) + advisory flags
emissions_calculatorFreight CO2e via the ISO 14083 / GLEC distance-based method — open DEFRA/EPA/ADEME factors (WTW + TTW); use actual gross mass (not chargeable/volumetric); result carries empty_running + representativeness (sea/air = low) + a summary
Dangerous Goods (ADR)
ToolDescription
adr_lookup2,939 UNECE ADR 2025 entries, all 20 Table A columns — beyond class, packing group, labels, special provisions, LQ/EQ, transport category, tunnel code and HIN: packing_instructions, special_packing_provisions, mixed_packing_provisions, portable_tank_instructions, portable_tank_special_provisions, tank_code, tank_special_provisions, vehicle_for_tank_carriage, carriage_packages, carriage_bulk, carriage_loading_unloading_handling, carriage_operation
adr_exemption_calculatorADR 1.1.3.6 small load exemption check
adr_lq_eq_checkLimited and Excepted Quantity eligibility
adr_consignment_checkOne call on the consignment object: the 1.1.3.6 verdict, LQ / EQ per line, the whole-load tunnel code against the route (ADR 8.6.3 / 8.6.4), the 5.4.1.1.1 transport-document entries and mixed loading (7.5.2, 7.5.4), with one status and page-cited checks

In 2.33.0: every record the fifteen record tools return declares fu_id (a stable FreightUtils identifier, the same across editions) and, where the dataset has editions, fu_version_id (fu_id@ ) — optional strings on passthrough records, so an answer without them still validates; the envelope declares _meta.ids { scheme, pattern }; each of those tools says so in one closing clause; and resolve_reference takes an fu: identifier of up to 200 characters, which resolves to exactly its one record or to none (every other identifier keeps the 32-character limit). Still 26 tools.

In 2.32.0: adr_consignment_check reads the UN packaging mark of each line — the optional `lines[].packages.

Only the beginning is shown; read the rest in the repo

Ask PopNx