Skip to content

SoapyRED/freightutils-mcp

v2.5.0 Breaking

This release includes 9 breaking changes for platform teams planning a safe upgrade.

Published 1mo MCP Developer Tools
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

ai-agents freight logistics mcp model-context-protocol

Affected surfaces

breaking_upgrade

Summary

AI summary

Input schema tightening rejects malformed values and renames function to function_type in unlocode_lookup.

Full changelog

Changed

  • Loose-schema tightening across the tool inputs — garbage is now rejected at the schema layer while every legitimate input form still validates. Several tools advertised a bare z.string() where the description promised a specific format, so malformed values passed validation and only failed (or silently returned nothing) downstream. Each is now constrained to exactly the forms its underlying data/logic accepts, with a clear error message, without narrowing any feature:
    • unit_converterfrom is now an enum of the 17 supported unit codes (weight / volume / length); to is those plus the freight targets chargeable_kg and freight_tonnes. Unknown units are rejected with the valid set surfaced in tools/list.
    • hs_code_lookupcode must be 2–6 digits, section a Roman numeral (I–XXI), query ≥ 2 chars.
    • incoterms_lookupcode must be a 3-letter Incoterm code (any case).
    • uk_duty_calculatorincoterm is now the 11-value Incoterms enum (commodity_code ^\d{6,10}$ and origin_country ^[A-Za-z]{2}$ were already tight; regex form aligned with the website surface).
    • airline_lookupiata ^[A-Za-z0-9]{2}$, icao ^[A-Za-z]{3}$ (upgraded from length checks); the 2-char IATA / 3-char ICAO / 3-digit AWB-prefix / free-form country+query union is fully preserved.
    • unlocode_lookup — the function filter is now function_type (an enum of port | airport | rail | road | icd | border), renamed from the previous bare-string function to match the website MCP surface and validated as an enum; code / country regexes aligned to the website (^[A-Za-z0-9]{5}$ / ^[A-Za-z]{2}$). Note: callers that passed function must switch to function_type.
    • container_lookup / uld_lookup / vehicle_lookup — the slug/code selector now requires ≥ 2 chars; these accept a code or slug from a fixed reference set, so they stay permissive (the handler returns a clear "not found" for unknown values) rather than being narrowed to a brittle enum.

Notes

  • No tool-count or tool-list change — still 19 tools, same names. This is a FAULT 13 fix-once-mirror-everywhere release: the website /api/mcp surface (app/api/mcp/[transport]/route.ts) was tightened to the identical schemas in the same change, so tools/list and input validation match across both surfaces. serverInfo.version reads dynamically from package.json, now 2.5.0. Minor bump because the advertised input schemas changed (stricter validation + the unlocode_lookup functionfunction_type rename).

Breaking Changes

  • Renamed `function` parameter to `function_type` in `unlocode_lookup` (enum: port|airport|rail|road|icd|border).
  • Tightened input schemas for several tools: `unit_converter`, `hs_code_lookup`, `incoterms_lookup`, `uk_duty_calculator`, `airline_lookup`, `container_lookup`, `uld_lookup`, `vehicle_lookup`.
  • `unit_converter`: `from` and `to` now accept only specific enum values (17 unit codes plus freight targets).
  • `hs_code_lookup`: `code` must be 2–6 digits, `section` a Roman numeral I–XXI, `query` ≥ 2 characters.
  • `incoterms_lookup`: `code` must be exactly a 3‑letter Incoterm code (any case).
  • `uk_duty_calculator`: `incoterm` limited to the 11‑value Incoterm enum; commodity_code regex `^[\d]{6,10}$`; origin_country regex `^[A-Za-z]{2}$`.
  • `airline_lookup`: `iata` must match `^[A-Za-z0-9]{2}$`, `icao` must match `^[A-Za-z]{3}$`.
  • `unlocode_lookup`: `function_type` enum (port|airport|rail|road|icd|border); `code` regex `^[A-Za-z0-9]{5}$`; `country` regex `^[A-Za-z]{2}$`.
  • `container_lookup`, `uld_lookup`, `vehicle_lookup`: slug/code selector now requires ≥ 2 characters.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track SoapyRED/freightutils-mcp

Get notified when new releases ship.

Sign up free

About SoapyRED/freightutils-mcp

17 freight calculation and reference tools — ADR dangerous goods, HS codes, LDM/CBM/chargeable weight calculators, duty estimation, airline codes, UN/LOCODE, and more. Free REST APIs + MCP server.

All releases →

Related context

Earlier breaking changes

  • v1.0.5 /api/mcp promoted as canonical Streamable HTTP transport URL.

Beta — feedback welcome: [email protected]