The freight MCP server

A neutral reference layer for AI agents — 27 freight tools with typed, source-cited responses. No freight to sell, no carrier to push.

Typed output schemas · Source citation on every answer · Free tier, no login

freightutils-mcp v2.34.4

Use in Claude

FreightUtils works in Claude as a connector. Ask a freight question and Claude calls these tools for the figure — cubic metres and loading metres, air chargeable weight, an ADR dangerous-goods check, an HS code or a UK duty estimate, an airline, airport or location code — and names the source behind the answer. All 27 tools are read-only: none books, files, pays for or changes anything.

Add it to Claude

In claude.ai, the desktop app, mobile or Cowork: open Customize → Connectors, choose Add custom connector and paste this URL. No account, no sign-in, no API key.

https://www.freightutils.com/api/mcp

Or add FreightUtils from Claude's connector directory — the same server and the same 27 tools, added in one click.

In Claude Code:

claude mcp add --transport http freightutils https://www.freightutils.com/api/mcp
The tools, by what you ask
Freight calculations
cbm_calculator · chargeable_weight_calculator · ldm_calculator · pallet_fitting_calculator · consignment_calculator · shipment_summary · booking_check · unit_converter · emissions_calculator
Dangerous goods by road (ADR)
adr_lookup · adr_exemption_calculator · adr_lq_eq_check · adr_consignment_check
Customs and trade
hs_code_lookup · uk_duty_calculator · incoterms_lookup · ics2_check
Codes, places and equipment
airline_lookup · airport_lookup · nearest_airport · unlocode_lookup · container_lookup · uld_lookup · vehicle_lookup · validate · resolve_reference
Plans
get_subscribe_link
Limits
  • Calls from claude.ai, the desktop and mobile apps and Cowork reach FreightUtils from Anthropic's network, so they share one allowance: 5,000 tool calls a day across all Claude users, resetting at 00:00 UTC, and 1,200 connection requests a minute. Connecting and listing the tools never uses it.
  • When the shared allowance is used up, Claude is told so and that it resets at 00:00 UTC.
  • Claude Code connects from your own computer, so it gets your address's own allowance: 25 tool calls a day.
  • With a FreightUtils API key, send it as an X-API-Key header and your key's own limits apply wherever you call from (see Rate limits & API keys below).
Privacy

A tool call carries only the tool's own inputs — dimensions, codes, quantities, a goods description, coordinates. They go to www.freightutils.com, are used to compute the answer and are not stored. The one onward lookup is a UK duty estimate, for which our server asks the public GOV.UK Trade Tariff about the commodity code — the code and nothing else. FreightUtils receives no Claude account details, no name or email and none of your conversation. Calls through Claude arrive from Anthropic's addresses, so the address FreightUtils sees is Anthropic's, not yours. Full policy: freightutils.com/privacy.

Answers are reference information with their source named — not legal, customs or dangerous-goods compliance advice; check the source before acting on one. Questions or problems: contact@freightutils.com.

Connect your agent

Two transports. Run the npm package locally over stdio, or point any MCP-over-HTTP client at the remote URL. The remote URL serves 27 tools and the npm package 26: booking_check is on the remote URL and the REST API now, and joins the package at its next release.

Install via npm
npx freightutils-mcp
Or connect via URL
https://www.freightutils.com/api/mcp
Claude Desktop Configuration
Add to your claude_desktop_config.json, then fully quit and relaunch the client:
{ "mcpServers": { "freightutils": { "command": "npx", "args": ["freightutils-mcp"] } } }
Cursor Configuration
Cursor uses an mcp.json file (Settings → MCP). Same shape as Claude Desktop:
{ "mcpServers": { "freightutils": { "command": "npx", "args": ["-y", "freightutils-mcp"] } } }
Cline Configuration
Cline (VS Code extension): open the MCP server settings panel, click "Edit MCP Settings", add:
{ "mcpServers": { "freightutils": { "command": "npx", "args": ["-y", "freightutils-mcp"], "disabled": false, "autoApprove": [] } } }
Health check

Verify the surface is live before asking your agent anything — the endpoint is public, rate-limit exempt, and callable by the agent itself for a self-diagnostic:

curl https://www.freightutils.com/api/mcp/health

A 200 with "status":"ok" and "tools_registered":27 means every tool is registered and reachable.

All 27 tools

Every tool is the same engine behind the corresponding REST endpoint and website page — one implementation, three surfaces. Names below are the exact MCP tool identifiers.

Calculators (10)

  • ldm_calculatorLoading metres (LDM) for European road freight — how much trailer length a pallet load occupies (1 LDM = 1 linear metre of a 2.4 m-wide trailer; a standard artic is 13.6 LDM) — and whether it fits.LDM Calculator tool page →
  • cbm_calculatorCubic metres (CBM) of a shipment from per-piece dimensions in cm and a piece count, with cubic feet, litres and cubic inches.CBM Calculator tool page →
  • chargeable_weight_calculatorAir freight chargeable weight — the greater of actual gross weight and volumetric weight, which is what airlines bill.Chargeable Weight tool page →
  • pallet_fitting_calculatorHow many identical boxes fit on one pallet: boxes per layer (trying 90-degree rotation when allowed), layers within the max height, totals, footprint and volume utilisation…Pallet Fitting tool page →
  • container_lookupISO shipping-container specifications for 10 types (20ft/40ft standard, 40ft and 45ft high-cube, reefer, open-top and flat-rack), with optional load-fit maths.Container Capacity tool page →
  • unit_converterConvert freight weight, volume and length units, plus chargeable_kg (air volumetric weight at the IATA 6,000 divisor) and freight_tonnes (sea W/M, 1 CBM = 1 freight tonne), both only FROM cbm.Unit Converter tool page →
  • consignment_calculatorPer-line and grand totals for a multi-item mixed consignment: CBM, loading metres, volumetric weight and the mode's chargeable figure (air chargeable weight, sea revenue tonnes…Consignment Calculator tool page →
  • shipment_summaryComposite shipment analysis in one call: volume (CBM), gross and chargeable weight, and by mode road LDM with pallet floor positions and a suggested vehicle, air volumetric…API & MCP only — no page
  • emissions_calculatorEstimate freight transport greenhouse-gas emissions (kgCO2e) for one shipment leg, per ISO 14083:2023 / GLEC Framework v3.2: mass x distance x a published emission-intensity…Emissions Calculator tool page →
  • booking_checkCheck a road booking before the job is created: from the booking's fields it returns three lists — MISSING (fields the booking lacks, each with the calculation that needs it)…Booking Check tool page →

Reference & compliance lookups (16)

  • adr_lookupLook 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…ADR Dangerous Goods tool page →
  • adr_exemption_calculatorADR 1.1.3.6 "small load" exemption points for a dangerous-goods road load, and whether it qualifies; points = quantity x the transport category multiplier.ADR Exemption Calculator tool page →
  • adr_lq_eq_checkWhether dangerous goods qualify for ADR Limited Quantity (LQ, ADR 3.4) or Excepted Quantity (EQ, ADR 3.5) relief, item by item.ADR LQ/EQ Check tool page →
  • hs_code_lookupSearch the 6,936 codes of the WCO Harmonized System (HS 2022), the 6-digit international customs classification (2 digits chapter, 4 heading, 6 subheading).HS Code Lookup tool page →
  • incoterms_lookupThe 11 Incoterms 2020 rules — who pays for transport, insurance and customs clearance, and where risk transfers from seller to buyer.INCOTERMS 2020 tool page →
  • uk_duty_calculatorEstimate UK import duty and VAT for a commodity code from the LIVE GOV.UK Trade Tariff: CIF = customs_value + freight_cost + insurance_cost (GBP); duty = CIF x the rate for the…UK Duty & VAT tool page →
  • airline_lookupFind airlines (6,356) by name, IATA code, ICAO code, AWB prefix (the first 3 digits of an air waybill number, e.g. 176 = Emirates) or country.Airline Codes tool page →
  • unlocode_lookupSearch 116,086 UN/LOCODE transport locations — ports, airports, rail and road terminals, inland container depots and border crossings (5 characters: country + location, e.g. NLRTM…UN/LOCODE tool page →
  • uld_lookupAir-cargo ULD (unit load device) specifications — 16 types: lower-deck containers (AKE/LD3 and family), main-deck pallets (PMC, PAG and family) and temperature-controlled units.ULD Types tool page →
  • vehicle_lookupRoad-freight vehicle and trailer specifications — 17 types: EU articulated trailers, US 53ft/48ft dry vans, rigid trucks (7.5-26 t) and vans; internal dimensions, payload and…Vehicle Types tool page →
  • validateValidate freight identifiers by their public check-digit algorithms: shipping container numbers (ISO 6346), air waybill numbers (IATA modulus-7) and IMO ship numbers.Identifier Validator tool page →
  • ics2_checkCheck a goods description against the official EU ICS2 stop-words list — terms too vague or generic for an entry summary declaration (ENS) goods description.ICS2 Stop-Words Checker tool page →
  • airport_lookupLook up an airport by IATA code ("LHR"), ICAO code ("EGLL") or free-text name/city search (OurAirports, public domain).Airport Code Lookup tool page →
  • nearest_airportThe airports nearest a latitude/longitude you provide, sorted by great-circle distance (distance_km on each).API & MCP only — no page
  • adr_consignment_checkOne 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…ADR Consignment Check tool page →
  • resolve_referenceResolve an arbitrary freight identifier — one opaque string in, typed and cited candidates out.API & MCP only — no page

MCP-only (1)

  • get_subscribe_linkReturn the FreightUtils pricing page URL with the Pro plan's request limit (50,000 per month) and price.Pricing →

Answers an agent can cite

Every tool publishes an outputSchema and returns structuredContent in the FreightUtils answer envelope (version 1.2): the result itself, its status, a confidence assessment, the edition the answer is served from, a _source block naming the source, its edition and when it was checked, and a citation object whose text is a ready-made line to quote. An agent doesn't just get a number — it gets a number it can attribute.

{
  "envelope_version": "1.2",
  "ok": true,
  "status": "ok",
  "missing_inputs": [],
  "edition": {
    "name": "…",
    "applies_from": "…",
    "may_apply_until": "…"
  },
  "as_of": "…",
  "result": { … },
  "confidence": {
    "level": "high",
    "basis": "provenance"
  },
  "_source": {
    "name": "…",
    "checked": "…",
    "provenance_status": "verified",
    "source_url": "…",
    "dataset_edition": "…",
    "authority_current_edition": "…",
    "checked_at": "…"
  },
  "citation": {
    "text": "…",
    "qualifier": "…"
  }
}

An adr_lookup answer with its values elided (…). warnings, blocking_errors, normalized_input, validity and _meta appear only when they apply.

The envelope's fields are the same whichever way you call: the REST API (with ?envelope=1.2), the remote URL and the npm package. The result inside it is not always named the same way: the REST API and the npm package answer in snake_case, and on the remote URL answer their result fields in camelCase; shipment_summary answers in camelCase everywhere. The npm package says so once, in the instructions its server sends; the remote URL's instructions leave that line out, because its tools are not all camelCase. Every tool publishes an output schema on both MCP surfaces: on the remote URL it types the envelope and leaves result open; the npm package types result too.

As of v2.34.4, every successful tool call costs exactly one HTTP request against your rate limit.

Rate limits & API keys

Anonymous
25 requests/day per IP
No key, no signup — enough to evaluate.
Free API key
100 requests/day
Instant signup on the API docs page.
Pro
50,000 requests/month
For production agents and pipelines.

The npm package passes your key through on every call — set the FREIGHTUTILS_API_KEY environment variable in your MCP client config. On the remote URL, send it as an X-API-Key (or Authorization: Bearer) header. Plans and pricing: freightutils.com/pricing.

What AI agents can do with it

“Calculate loading metres for 20 Euro pallets on an artic trailer”
“Look up UN 1203 and check if 200 litres qualifies for ADR exemption”
“Check this road load against ADR: 15 jerricans of UN 1203 petrol, PG II, 300 litres, through B and E tunnels”
“What's the chargeable weight for 2 boxes 120×80×100cm at 500kg?”
“Find the airline with AWB prefix 176”
“How many boxes 40×30×25cm fit on a Euro pallet?”

What is a freight MCP server?

The Model Context Protocol (MCP) is an open standard that lets AI agents call external tools the way applications call APIs. An MCP server publishes a set of tools — each with a name, a description and typed input/output schemas — and any MCP-capable client (Claude Desktop, Cursor, Cline, agent frameworks, workflow platforms) can discover and invoke them mid-conversation. A freight MCP server puts freight domain knowledge behind that interface: instead of a language model guessing at an ADR tunnel code or approximating a chargeable-weight calculation from training data, the agent calls a deterministic tool and gets the actual figure, computed the way the industry computes it.

Neutrality is what makes the answers worth citing. FreightUtils has no freight to sell and no carrier to push, so a lookup returns what the source says — UNECE ADR for dangerous goods, WCO HS 2022 for commodity codes, the live GOV.UK Trade Tariff for UK duty, UN/LOCODE for locations, DEFRA/EPA/ADEME factors for emissions — with the authority and edition named in every response. When an agent's answer feeds a quote, a booking decision or a compliance check, “where did this number come from?” must have an answer, and the envelope carries it on every call.

The boundary is deliberate: reference data and deterministic calculations only. This server does not book freight, file declarations, track shipments, rate carriers, or make legal determinations — it is the neutral reference layer underneath the systems and people who do. Classification, documentation and carrier acceptance remain the operator's responsibility; the tools tell you what the sources say, and cite them.

Where it's listed

Prefer plain REST?

Every tool is also a documented REST endpoint — parameters, examples and the OpenAPI 3.1.0 spec.

API reference →