This release includes 9 breaking changes for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
Affected surfaces
Summary
AI summaryInput 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_converter—fromis now an enum of the 17 supported unit codes (weight / volume / length);tois those plus the freight targetschargeable_kgandfreight_tonnes. Unknown units are rejected with the valid set surfaced intools/list.hs_code_lookup—codemust be 2–6 digits,sectiona Roman numeral (I–XXI),query≥ 2 chars.incoterms_lookup—codemust be a 3-letter Incoterm code (any case).uk_duty_calculator—incotermis 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_lookup—iata^[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 nowfunction_type(an enum ofport | airport | rail | road | icd | border), renamed from the previous bare-stringfunctionto match the website MCP surface and validated as an enum;code/countryregexes aligned to the website (^[A-Za-z0-9]{5}$/^[A-Za-z]{2}$). Note: callers that passedfunctionmust switch tofunction_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/mcpsurface (app/api/mcp/[transport]/route.ts) was tightened to the identical schemas in the same change, sotools/listand input validation match across both surfaces.serverInfo.versionreads dynamically frompackage.json, now2.5.0. Minor bump because the advertised input schemas changed (stricter validation + theunlocode_lookupfunction→function_typerename).
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
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.
Related context
Related tools
Earlier breaking changes
- v1.0.5 /api/mcp promoted as canonical Streamable HTTP transport URL.
Beta — feedback welcome: [email protected]