Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Descripción del creador (original en inglés)
Neutral freight reference + validation layer for AI agents: ADR, HS, UN/LOCODE, freight math
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
Necesitas
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Funciona en Claude para web, escritorio y móvil:
https://www.freightutils.com/api/mcpAbre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"freightutils": {
"command": "npx",
"args": [
"-y",
"freightutils-mcp"
]
}
}
}Ejecuta esto en tu terminal
claude mcp add --transport http freightutils https://www.freightutils.com/api/mcpclaude mcp add freightutils -- npx -y freightutils-mcpPégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"freightutils": {
"url": "https://www.freightutils.com/api/mcp"
}
}
}Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"freightutils": {
"command": "npx",
"args": [
"-y",
"freightutils-mcp"
]
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"freightutils": {
"type": "http",
"url": "https://www.freightutils.com/api/mcp"
}
}
}Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"freightutils": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"freightutils-mcp"
]
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
ChatGPT solo se conecta a servidores en internet:
https://www.freightutils.com/api/mcpLos nombres de los menús pueden variar un poco según el plan y con el tiempo.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Nombres y descripciones de las herramientas tal como los informó el servidor el 6 nov 2026. Los escribió el creador, no nosotros; los mostramos como texto sin formato.
cbm_calculatorCalculate 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_calculatorCalculate 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_calculatorCalculate 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_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, limited/excepted quantities, packing instructions, tank codes, carriage provisions, transport category, tunne
adr_exemption_calculatorCalculate 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_lookupSearch 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_lookupLook 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_airportFind 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_referenceResolve 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_lookupGet 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_lookupSearch 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_lookupLook 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_calculatorCalculate 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_converterConvert 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_calculatorCalculate 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_lookupSearch 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_calculatorEstimate 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_summaryComposite 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_lookupLook 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_lookupLook 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_linkReturn 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_checkCheck 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_calculatorEstimate 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
validateValidate 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_checkCheck 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_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 code of the whole load against the tunnels on the route, each line's transport-document entry, mixed l
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 6 nov 2026
El nombre en el registro se verificó con la cuenta de GitHub SoapyRED, dueña del repo
Todavía no hemos leído este repo en GitHub
Todavía no hemos leído este repo en GitHub
Respondió en 1893 ms (HTTP 200)
No hace falta iniciar sesión
Leímos 26 descripciones de herramientas y no encontramos instrucciones ocultas para la IA
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 3 de 3 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.
Funciona de las dos formas: instálalo en tu computadora o conéctate a la versión en la nube.
El repo de GitHub cambió por última vez –, y la última versión (2.33.0) llegó al registro hoy.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. Se conecta por URL, así que también funcionan las apps que aceptan servidores MCP remotos, como ChatGPT en modo desarrollador.
En la misma categoría: Spec Driven Development, Remote Desktop Commander, AI Deprecations
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
AI model shutdown dates, replacements, change feed and webhook alerts for 8 providers.
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
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_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:
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.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".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.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).--scope dg | customs | ops (or FREIGHTUTILS_SCOPE) serves only that scope's tools — see Scoped tool lists. The default serves all of them.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
| Tool | Description |
|---|---|
ldm_calculator | Loading metres for European and US road trailers |
cbm_calculator | Cubic metres for sea freight |
chargeable_weight_calculator | Air freight chargeable weight (volumetric vs actual) |
pallet_fitting_calculator | Box-on-pallet optimisation with rotation |
container_lookup | ISO container specs (10 types) and loading calculation |
unit_converter | Weight, volume, length, and freight-specific conversions |
consignment_calculator | Multi-item CBM, LDM, volumetric & mode-specific chargeable weight (sea/air/road) + advisory flags |
emissions_calculator | Freight 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 |
| Tool | Description |
|---|---|
adr_lookup | 2,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_calculator | ADR 1.1.3.6 small load exemption check |
adr_lq_eq_check | Limited and Excepted Quantity eligibility |
adr_consignment_check | One 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.
Solo se muestra el principio; lee el resto en el repo