SoapyRED/freightutils-mcp

SoapyRED/freightutils-mcp

от soapyred
FreightUtils MCP сервер - нейтральные справочные данные для AI-агентов: ADR 2025, таможня, локации, расчет загрузки. 24 инструмента без привязки к перевозчику, данные от первоисточников.

FreightUtils MCP Server

npm version npm downloads (total) npm downloads (month) License: MIT 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 25 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).

Инструменты были проиндексированы:
adr_exemption_calculatorтолько чтениеидемпотентный

Рассчитывает баллы освобождения по ADR 1.1.3.6 для "малой загрузки" для партии опасных грузов и сообщает, подпадает ли она под освобождение. Транспортная категория каждого вещества (Таблица A, столбец (15), 0-4) задаёт множитель баллов (1.1.3.6.4: категория 1 x50, 2 x3, 3 x1, 4 x0; девять записей note-a из ADR 1.1.3.6.3 UN 0081/0082/0084/0241/0331/0332/0482/1005/1017 имеют x20); баллы = количество x множитель. Правило (1.1.3.6.2) для опасных грузов, перевозимых в упаковках: грузы ОДНОЙ транспортной категории подпадают под освобождение, когда их ОБЩЕЕ количество на транспортной единице укладывается в максимум столбца (3) 1.1.3.6.3 для этой категории - категория 1: 20, 2: 333, 3: 1 000 (кг или л); записи note-a 50 кг; категория 4 без ограничений; категория 0: 0 - как бы оно ни делилось по строкам; грузы РАЗНЫХ категорий подпадают под освобождение, когда сумма баллов по 1.1.3.6.4 не превышает 1 000. Этот калькулятор также ограничивает каждую строку и каждое вещество, просуммированное по своим строкам, максимумом его категории - на смешанной партии это строже, чем 1.1.3.6.4 (консервативная сторона). Вещества транспортной категории 0 НИКОГДА не могут использовать это освобождение - has_category_zero помечает их. Укажите un_number + quantity для одного вещества ИЛИ items[] для партии - никогда оба: любое поле формы для одного вещества (un_number, quantity, packing_group, variant_index, unit, basis), отправленное рядом с items[], отклоняется (API отвечает 400 и называет поле), а не отбрасывается - поместите его в тот item, к которому оно относится, вещество как отдельный item. Количества указываются в кг или литрах согласно единице ADR для вещества. un_number также принимает воздушный номер с префиксом ID (например, "ID8000") - см. Routing. UN с несколькими вариантами: номер UN, у которого больше одной строки в ADR Table A (вариант по packing group / концентрации - например, UN 1789 PG II и PG III имеют разные транспортные категории), требует packing_group (I|II|III) или variant_index (из adr_lookup), чтобы зафиксировать одну строку. packing_group, после которого всё ещё остаётся несколько строк, достаточно, когда эти строки совпадают по классу, транспортной категории, области применения и учитываемому измерению 1.1.3.6.3 (UN 1790 PG I: две…

Параметры
  • basisenum

    НЕОБЯЗАТЕЛЬНО. ADR 1.1.3.6.3 считает сами опасные грузы, а не упаковку, поэтому количество, указанное как 'gross', не даёт баллов ни в ЛЮБОЙ единице - отправляйте значение нетто. Только форма для одного вещества - если отправить её вместе с items[], она отклоняется; задавайте её для каждого элемента.

  • itemsobject[]

    Смешанные грузовые позиции (используйте ВМЕСТО un_number/quantity).

  • packing_groupenum

    Группа упаковки (I, II или III): нужна только чтобы различить UN с более чем одной строкой в ADR Table A (например, UN 1789). Для UN с одной строкой игнорируется. Только для формы одного вещества: если передать её рядом с items[], отклоняется; задаётся для каждого item.

  • quantitynumber

    Количество для проверки одного вещества, в килограммах или литрах согласно единице ADR для этого вещества. Только для формы одного вещества: при отправке вместе с items[] отклоняется. Пример: 100.

  • unitenum

    НЕОБЯЗАТЕЛЬНО. Размерность, в которой указано quantity. Если опустить, число считается уже приведённым к базису ADR 1.1.3.6.3 (поведение не меняется). Если указать, значение ПРОВЕРЯЕТСЯ на соответствие размерности, в которой ведётся подсчёт по 1.1.3.6.3 для этой строки Table A: литры для жидкостей и для сжатых или адсорбированных газов, килограммы для твёрдых веществ, сжиженных/охлаждённых/растворённых газов и изделий. При несовпадении возвращает total_points null, exempt null и items[].basis_mismatch true, указывая размерность, в которой считается запись. Только для формы одного вещества: при передаче рядом с items[] отклоняется; это значение нужно задать для каждого элемента.

  • un_numberstring

    Номер UN для проверки одного вещества: 4 цифры, необязательно с префиксом "UN", или номер только для авиаперевозки с префиксом ID, например "ID8000" (маршрутизируется как AIR_ONLY_ID, ничего не подсчитывается - предупреждение в этой строке указывает на условие ограниченного количества). Только форма для одного вещества: при отправке рядом с items[] отклоняется; отправляйте вещество как элемент. Пример: "1203".

  • variant_indexinteger

    Индекс варианта таблицы A ADR (как его возвращает adr_lookup) - закрепляет одну строку, когда у номера UN есть несколько вариантов с одной группой упаковки (диапазоны концентрации). Для UN с одной строкой игнорируется. Только для формы одного вещества - если передать его рядом с items[], он отклоняется; задавайте его для каждого элемента.

adr_lookupтолько чтениеидемпотентный

Ищет справочные данные по европейским правилам перевозки опасных грузов автомобильным транспортом (ADR 2025) для вещества: класс опасности, код классификации, группа упаковки, знаки опасности, специальные положения, ограниченные/освобождённые количества, транспортная категория, код ограничения проезда через туннели и номер Kemler (идентификация опасности). Охватывает 2 939 записей по всем 9 классам опасности из UNECE ADR 2025 (ECE/TRANS/352). Принимает ровно ОДИН из параметров: un_number (точный поиск, возвращает все варианты группы упаковки для этого номера UN), search (частичное совпадение по надлежащему отгрузочному наименованию без учёта регистра) или hazard_class (все записи класса или подкласса). un_number нормализуется: "1203", "UN1203" и "un 1203" равнозначны, а normalized_input сообщает о приведении; у взрывчатых веществ сохраняется ведущий ноль ("0004"). Поведение: справочный поиск только для чтения; поиск по имени или фильтр по классу выдаёт постраничный список: total, truncated и next_offset вместе с offset и limit (не больше 50 на страницу поиска и 100 на страницу класса), список никогда не обрезается молча. Поиск без результатов отдаёт ошибку с подсказками: ближайшие надлежащие отгрузочные наименования из таблицы A ("acetne" → ACETONE, UN 1090). 28 строк таблицы A содержат примечание о сфере применения вместо группы упаковки: для них возвращается packing_group null и not_subject_to_adr (с conditions_ref, например "5.5.3" для UN 1845, сухой лёд) либо carriage_prohibited, а table_a_remark сохраняет дословный текст таблицы A. Есть ограничение частоты запросов: ошибка лимита содержит reset_at - время в UTC, когда счётчик сбрасывается. Возвращает: count и results[] - по каждой записи: un_number, proper_shipping_name, class, classification_code, packing_group, labels, special_provisions, limited_quantity, excepted_quantity, transport_category, tunnel_restriction_code, hazard_identification_number, variant_index/variant_count, а для строк с пометкой о сфере применения - not_subject_to_adr/carriage_prohibited/conditions_ref/table_a_remark - внутри result, плюс confidence, _source и citation (обёртка ответа FreightUtils v1). Ограничения: фактическая подборка данных из таблицы ADR, а не юридическая консультация и не проверка соответствия…

Параметры
  • hazard_classstring

    Все записи в классе ADR (таблица A, колонка (3a)). Примеры: "3" (легковоспламеняющиеся жидкости), "6.1" (токсичные), "1" (взрывчатые вещества - подкласс и группа совместимости указаны в classification_code, например "1.4S").

  • limitinteger

    только для search / hazard_class: строк на страницу (по умолчанию и максимум 50 для поиска, 100 для класса).

  • offsetinteger

    Только для search / hazard_class: количество строк, которые нужно пропустить (по умолчанию 0). Ответ возвращает total и next_offset.

  • searchstring

    Частичное совпадение без учёта регистра по правильному отгрузочному наименованию (минимум 2 символа). Пример: "acetone".

  • un_numberstring

    Точный номер ООН: 4 цифры, с необязательным префиксом "UN"; взрывчатые вещества сохраняют ведущий ноль. Примеры: "1203", "UN1203", "UN 1203", "0004".

adr_lq_eq_checkтолько чтениеидемпотентный

Проверяет, подпадают ли опасные грузы под освобождение ADR Limited Quantity (LQ, ADR 3.4) или Excepted Quantity (EQ, ADR 3.5). LQ сравнивает количество в каждой внутренней упаковке с максимальным значением LQ для этого вещества; EQ определяет E-код вещества (E0-E5) и проверяет предел для внутренней упаковки, а также предел для внешней упаковки, если указано inner_packaging_qty. Укажите mode ("lq" или "eq") и 1-20 позиций, каждая с un_number, quantity и unit: мл или л для жидкостей, г или кг для твёрдых веществ; quantity указывается на ВНУТРЕННЮЮ упаковку, а не на всю партию. Единицы измерения: столбец (7a) указывает предел в ОДНОМ измерении: массу для одних записей, объём для других, а ADR не предоставляет плотность, поэтому массу НЕЛЬЗЯ сравнить с объёмным пределом (или наоборот). Такие позиции возвращают статус 'inconclusive' с указанием измерения, никогда не 'pass' и не 'fail', и партия, содержащая любую позицию с результатом 'inconclusive', никогда не получает overall_status 'qualifies'. Передайте quantity в единице, указанной в lq_limit_unit, чтобы получить вердикт. Многовариантные UN: номер UN с более чем одной строкой таблицы A ADR (группа упаковки / вариант концентрации, например UN 1789 PG II LQ 1 л против PG III LQ 5 л) требует packing_group (I|II|III) или variant_index (из adr_lookup) для этой позиции, чтобы зафиксировать одну строку. Если packing_group всё ещё оставляет несколько строк, этого достаточно, когда эти строки совпадают по классу, столбцу (7a), столбцу (7b) и области действия (UN 1790 PG I: две концентрационные полосы, обе LQ 0 / E0): позиция получает ответ с equivalent_variants + variant_note, где перечислены строки, которые она охватывает; только когда строки РАЗЛИЧАЮТСЯ, инструмент всё равно запрашивает variant_index, и тогда candidates[] перечисляет только строки этой группы упаковки. Без какого-либо уточняющего параметра: одиночный вызов или партия, где КАЖДАЯ позиция неоднозначна, возвращает blocking_errors[AMBIGUOUS_UN_VARIANT] + human_review_required + candidates[] (для каждого кандидата: item_index, un_number, variant_index, packing_group, proper_shipping_name, limited_quantity, excepted_quantity) и НИКАКОГО вердикта; смешанная партия не возвращает только неоднозначные…

Параметры
  • itemsobject[]обязательный

    Элементы для проверки (от 1 до 20 за вызов).

  • modeenumобязательный

    Проверяет режим: "lq" (ограниченное количество, ADR 3.4) или "eq" (освобождённое количество, ADR 3.5).

airline_lookupтолько чтениеидемпотентный

Ищет 6 357 авиакомпаний по названию, коду IATA, коду ICAO, префиксу AWB или стране. Префикс AWB - это первые 3 цифры номера авиагрузовой накладной (air waybill), он указывает на перевозчика, выдавшего документ (например, 176 = Emirates). Принимает ОДИН параметр: query - это ранжированный нечёткий поиск по названиям и кодам; iata / icao / prefix / country - точные фильтры. Поведение: только чтение; попадания по нечёткому запросу сообщают о качестве совпадения через confidence в конверте (основание match_quality, оценка 0-1) с уведомлением FUZZY_BEST_MATCH, которое называет совпавшее поле; запрос, в котором нет названия, откатывается к ближайшим названиям из набора данных («Emirats» → Emirates). Ответ на query или country - это список: сводные строки, 25 на страницу, с total, truncated и next_offset (full: true для полных записей); ответ на iata / icao / prefix - это полные записи владельца. Есть ограничение по частоте запросов: ошибка лимита несёт reset_at - время в UTC, когда лимит сбрасывается. Возвращает: count и results[] - по каждой авиакомпании: airline_name, iata_code, icao_code, awb_prefix[], callsign, country, has_cargo и поля verification (aliases и sources в полных записях) - внутри result, плюс confidence, _source и citation (конверт ответа FreightUtils v1). Ограничения: происхождение этого набора данных ждёт независимой проверки (об этом говорит provenance_status в конверте) - критичные для работы коды сверяйте с IATA/ICAO или с самим перевозчиком. Связанные: airport_lookup (ищет АЭРОПОРТЫ, а не перевозчиков), validate (проверяет контрольную цифру номера AWB и определяет его авиакомпанию по этому набору данных).

Параметры
  • countrystring

    Фильтрует по названию страны (минимум 2 символа). Пример: «Netherlands».

  • fullboolean

    Lists only: true возвращает полные записи (provenance, sources, rationale) вместо строк сводки, по умолчанию по пять на страницу. Запрос одной записи всегда возвращает полную запись.

  • iatastring

    Точный код IATA: 2 буквенно-цифровых символа. Примеры: "EK", "U2".

  • icaostring

    Точный код ICAO - 3 буквы. Примеры: "UAE", "BAW".

  • limitinteger

    Только для списков: строк на страницу (по умолчанию: каждая итоговая строка; 5 при full: true).

  • offsetinteger

    Перечисляет только: строк для пропуска (по умолчанию 0). Ответ возвращает total и next_offset.

  • prefixstring

    Точный префикс AWB: первые 3 цифры авианакладной. Пример: "176".

  • querystring

    Выполняет ранжированный нечёткий поиск по названию, кодам, префиксу и стране (минимум 2 символа). Пример: "emirates".

airport_lookupтолько чтениеидемпотентный

Ищет аэропорт по коду IATA (3 буквы, например "LHR"), коду ICAO (4 символа, например "EGLL") или по названию/городу в свободном тексте (например "heathrow"). Охватывает 85 555 аэропортов по всему миру (OurAirports, общественное достояние, сверено с OpenFlights + Wikidata). Укажите ОДИН из параметров: iata, icao или query; необязательный фильтр type сужает результаты. Поведение: только чтение; точное совпадение по коду возвращает одну запись; неоднозначный поиск по названию возвращает ранжированных кандидатов (сначала точные коды, потом более крупные аэропорты), качество совпадения передаётся через confidence конверта (основание match_quality); неизвестный код выдаёт ошибку с сообщением not-found. Есть ограничение частоты: ошибка лимита содержит reset_at - время в UTC, когда лимит сбрасывается. Возвращает: count и results[] - по каждому аэропорту: IATA + ICAO/ident, название, type (large/medium/small/heliport/closed/seaplane), municipality, region, country, latitude/longitude и elevation_ft - внутри result, плюс confidence, _source и citation (конверт ответа FreightUtils v1). Ограничения: только справочные данные - не для навигации; критичные для работы коды проверяйте в IATA / ICAO. Связанные: nearest_airport (ищет аэропорты ОТ координаты), airline_lookup (ищет ПЕРЕВОЗЧИКОВ / префиксы AWB, не аэропорты), unlocode_lookup (общие транспортные локации, аэропорты - одна из их функций).

Параметры
  • iatastring

    Точный 3-буквенный код IATA. Пример: "LHR".

  • icaostring

    Точный 4-символьный ICAO / идентификатор. Пример: "EGLL".

  • querystring

    Поиск по названию / городу / муниципалитету (минимум 2 символа). Пример: "heathrow".

  • typeenum

    Необязательный фильтр по типу аэропорта.

cbm_calculatorтолько чтениеидемпотентный

Вычисляет кубические метры (CBM) для партии по размерам одной штуки. CBM - стандартная единица объёма в международных перевозках: 1 CBM = 1m x 1m x 1m = 1 000 литров, а стоимость морской перевозки считают за "фрахтовую тонну" (1 CBM или 1 000 кг, что больше). Поведение: детерминированное - одинаковые входные данные всегда дают одинаковые цифры; общий объём = pieces x CBM на штуку (итоги считаются по неокруглённым значениям и округляются только для отображения), с пересчётом в кубические футы, кубические дюймы и литры (точные коэффициенты: 1 ft = 0.3048 m). Отсутствующие или неположительные размеры дают ошибку с сообщением валидации, в котором назван параметр. Ограничение частоты: ошибка лимита содержит reset_at - время UTC, когда сбрасывается лимит. Возвращает: cbm_per_piece, total_cbm, cubic_feet, litres, cubic_inches и pieces внутри result, а также confidence, _source и citation (конверт ответа FreightUtils v1). Имена полей такие, как их отдаёт этот пакет (snake_case); размещённый эндпоинт /api/mcp отдаёт те же поля в camelCase (например, total_cbm → totalCbm). Связанные: chargeable_weight_calculator (оплачиваемый вес для авиаперевозки по тем же размерам), consignment_calculator (итоги по нескольким строкам), unit_converter (отдельные преобразования), shipment_summary (полный составной анализ).

Параметры
  • height_cmnumberобязательный

    Высота одной детали в сантиметрах (> 0). Пример: 100.

  • length_cmnumberобязательный

    Длина одной детали в сантиметрах (> 0). Пример: 120.

  • piecesinteger

    Количество одинаковых деталей: общий объём масштабируется линейно. По умолчанию: 1.

  • width_cmnumberобязательный

    Ширина одной детали в сантиметрах (> 0). Пример: 80.

chargeable_weight_calculatorтолько чтениеидемпотентный

Рассчитывает оплачиваемый вес авиагруза - больший из фактического веса брутто и объёмного веса, именно его авиакомпании и выставляют к оплате. Объёмный вес (кг) = (L x W x H в см) / делитель; стандартный делитель IATA - 6 000 (1 CBM = 166,67 кг), а экспресс-перевозчики (DHL, FedEx, UPS) обычно используют 5 000. Поведение: детерминированное; размеры даны на одну штуку, а gross_weight_kg - это ОБЩИЙ вес всех штук; итоги считаются по неокруглённым значениям и округляются только для отображения (10 000 штук по 5 x 5 x 6 см = 250 кг); basis сообщает, какой вес берётся за основу ("volumetric" = груз лёгкий для своего размера, "actual" = плотный). Только авиарежим - морской W/M (1 CBM = 1 000 кг) покрывается consignment_calculator с mode=sea. Отсутствующие или неположительные входные данные дают ошибку с указанием проблемного параметра. Ограничение по частоте: ошибка лимита несёт reset_at - время UTC, когда лимит сбрасывается. Возвращает: chargeable_weight_kg, basis, volumetric_weight_kg (итоговый; на hosted-эндпоинте называется volumetricWeightTotalKg) и volumetric_weight_per_piece_kg, gross_weight_kg, cbm, ratio, factor и pieces внутри result; normalized_input повторяет интерпретированные входные данные (gross_weight_basis, dimensions_basis) и все применённые значения по умолчанию; плюс confidence, _source и citation (конверт ответа FreightUtils v1). Имена полей такие, как их отдаёт этот пакет (snake_case); hosted-эндпоинт /api/mcp отдаёт те же поля в camelCase (например, total_cbm → totalCbm). Связанные: cbm_calculator (только объём), consignment_calculator (несколько строк, все режимы), uld_lookup (оборудование, в котором летит груз).

Параметры
  • factorinteger

    Объемный делитель в см³/кг. По умолчанию: 6000 (стандарт IATA); экспресс-перевозчики обычно используют 5000.

  • gross_weight_kgnumberобязательный

    Фактический вес брутто ВСЕЙ партии (всех мест) в килограммах. Пример: 500.

  • height_cmnumberобязательный

    Высота одной детали в сантиметрах (> 0). Пример: 100.

  • length_cmnumberобязательный

    Длина одной детали в сантиметрах (> 0). Пример: 120.

  • piecesinteger

    Количество одинаковых деталей. По умолчанию: 1.

  • width_cmnumberобязательный

    Ширина одной детали в сантиметрах (> 0). Пример: 80.

consignment_calculatorтолько чтениеидемпотентный

Вычисляет построчные и общие итоги для смешанной партии из нескольких позиций: CBM, погрузочные метры (LDM), объёмный вес и зависящий от вида перевозки расчётный показатель (расчётный вес для авиа, доходные тонны для моря, LDM для автоперевозок), а также объективные информационные флаги. Укажите mode (sea | air | road, по умолчанию road) и либо lines[] (канонический вариант - по строке: quantity, dims {l,w,h,unit}, weight {value,unit}, необязательные description / hs_code / un_number / stackable), либо устаревший плоский items[] (размеры в см, вес в кг). Для авиа применяется объёмный делитель IATA (по умолчанию 6000, задаётся через options.air_volumetric_divisor); options.container_number / options.awb_number добавляют флаг проверки контрольной цифры. Поведение: детерминированное; флаги носят только информационный характер - неправдоподобная плотность, несоответствие вида перевозки и опции, наличие опасных грузов по номеру UN согласно ADR 2025 и корректность контрольной цифры контейнера/AWB - и никогда не утверждают, что груз разрешён или соответствует требованиям. Некорректные строки вызывают ошибку с указанием проблемного поля. Каноническая схема: https://www.freightutils.com/schema/consignment.v1.json. Есть ограничение частоты запросов: ошибка лимита содержит reset_at - время UTC, когда счётчик сбрасывается. Возвращает: schema_version, mode, per_line[] (cbm, gross_weight_kg, density, volumetric_weight_kg, ldm, revenue_tonnes, chargeable_weight_kg), totals (включая billing_basis) и flags[] внутри result, а также confidence, _source и citation (обёртка ответа FreightUtils v1). Ограничения: детерминированный расчёт и справочные данные по мере возможностей - это не регуляторная, таможенная консультация или консультация по соответствию для опасных грузов; классификация, документация и приёмка перевозчиком остаются на вашей ответственности. Связанные: cbm_calculator / chargeable_weight_calculator / ldm_calculator (версии с одним показателем), shipment_summary (добавляет подбор транспорта/контейнера и оценку пошлин), adr_lookup (что означает помеченный номер UN).

Параметры
  • itemsobject[]

    Устаревший плоский алиас - размеры в см, вес в кг. Предпочитайте строки.

  • linesobject[]

    Канонические строки консигнации (предпочтительно, 1-50). Укажите строки ИЛИ позиции.

  • modeenum

    Вид транспорта: морской | воздушный | автомобильный. По умолчанию: автомобильный.

  • optionsobject

    Необязательные настройки.

container_lookupтолько чтениеидемпотентный

Получает характеристики морских контейнеров по ISO, с необязательным расчётом загрузки. Охватывает 10 типов: 20ft/40ft standard, 40ft и 45ft high-cube, 20ft/40ft reefer, 20ft/40ft open-top и 20ft/40ft flat-rack. Укажите тип в виде слага (например, "20ft-standard", "40ft-high-cube"), чтобы получить запись одного контейнера; пропустите его, чтобы вывести все 10 строками сводки (full: true для полных записей). Добавьте габариты предмета (item_length_cm/width_cm/height_cm, необязательные item_weight_kg и item_quantity), чтобы ещё посчитать, сколько таких предметов поместится. Поведение: справочные данные только для чтения, с происхождением для каждой записи (sources, audited_at, decision_rationale); тип читается в любом регистре, как код размера-типа ISO ("45G1") или краткая форма названия ("40HC"); неизвестный тип даёт ошибку со списком допустимых слагов и ближайшим из них ("20ft-standrd" → 20ft-standard). Расчёты вместимости - геометрическая прикидка: они не моделируют распределение нагрузки, крепление или смешанный груз. Есть ограничение по частоте запросов: ошибка лимита содержит reset_at - время в UTC, когда лимит сбрасывается. Возвращает: запись контейнера - внутренние/внешние/дверные размеры (см), capacity_cbm, tare_weight_kg, max_gross_kg, max_payload_kg и количество европаллет и паллет GMA - в result, плюс confidence, _source и citation (конверт ответа FreightUtils v1). Имена полей такие, как их отдаёт этот пакет (snake_case); размещённый endpoint /api/mcp отдаёт те же поля в camelCase (например, total_cbm → totalCbm). Список (когда отдельная запись не запрошена) возвращает строки сводки с total, truncated, next_offset и detail_hint; full: true возвращает полные записи по пять на страницу, с offset / limit для постраничного вывода. Ограничения: характеристики типичные для производителя, происхождение данных ждёт независимой проверки (об этом говорит provenance_status в конверте) - реальное оборудование различается у разных лизингодателей и линий; сверяйтесь с руководством по оборудованию перевозчика. Связанное: validate (проверяет контрольную цифру ISO 6346 у НОМЕРА контейнера - не характеристики), cbm_calculator / consignment_calculator (объём груза, чтобы его заполнить), uld_lookup (авиагрузовой…

Параметры
  • fullboolean

    Lists only: true возвращает полные записи (provenance, sources, rationale) вместо сводных строк, по умолчанию пять на страницу. Вызов одной записи всегда возвращает полную запись.

  • item_height_cmnumber

    Высота предмета в см.

  • item_length_cmnumber

    Длина предмета в см: укажите все три размера предмета, чтобы получить расчёт соответствия загрузке.

  • item_quantityinteger

    Количество элементов для проверки в контейнере.

  • item_weight_kgnumber

    Вес ОДНОГО товара в кг - ограничивает подбор по максимальной полезной нагрузке. 0 или не указано: проверка веса не выполняется.

  • item_width_cmnumber

    Ширина товара в см.

  • limitinteger

    Только для списков: строк на страницу (по умолчанию: каждая итоговая строка; 5 при full: true).

  • offsetinteger

    Перечисляет только: rows to skip (по умолчанию 0). Ответ возвращает total и next_offset.

  • typestring

    Container slug. Примеры: "20ft-standard", "40ft-high-cube", "20ft-reefer". Опустите, чтобы вывести все 10 типов.

emissions_calculatorтолько чтениеидемпотентный

Оценивает выбросы парниковых газов при грузоперевозке (kgCO2e) для отдельного участка отправки по ISO 14083:2023 / GLEC Framework v3.2: выбросы = масса x расстояние x опубликованный коэффициент интенсивности выбросов (kgCO2e/tonne-km). Укажите mass + distance_km + mode (road | rail | sea | air | inland_waterway); при желании выберите sub_mode, region/authority (uk = DEFRA, us = EPA, fr = ADEME) и basis (по умолчанию wtw, либо ttw). ВАЖНО: передавайте ФАКТИЧЕСКУЮ БРУТТО-МАССУ, а не объёмный/заряжаемый вес (частая ошибка в авиаперевозках - см. mass_basis в результате). Расстояние указывать обязательно - этот инструмент НЕ прокладывает маршрут, не геокодирует и не вычисляет расстояния. Поведение: результат детерминирован при одной и той же редакции коэффициента; среднепарковый коэффициент уже учитывает средний порожний пробег (см. empty_running) - НЕ добавляйте собственный участок порожнего возврата; для sea и air используются обобщённые значения по умолчанию с низкой репрезентативностью (реальные выбросы заметно зависят от судна/воздушного судна, коэффициента загрузки и маршрута - см. representativeness и сводку в результате). Неизвестный mode/sub_mode/region возвращает available:false со списком поддерживаемых вариантов, а не выдуманный коэффициент. Ограничение по частоте запросов: ошибка лимита содержит reset_at - время в UTC, когда лимит сбрасывается. Возвращает: выбросы well-to-wheel И tank-to-wheel там, где у коэффициента есть оба значения, точный использованный коэффициент (value, authority, edition), активность в тонно-километрах и _source для каждого результата со ссылкой И на метод ISO, И на конкретный открытый коэффициент - всё внутри result, плюс confidence, _source и citation (конверт ответа FreightUtils v1). Ограничения: справочная оценка по открытым коэффициентам (DEFRA / EPA / ADEME), выполненная по мере возможностей - НЕ проверенный и не прошедший аудит углеродный отчёт. Связанные: отличается от cbm_calculator / ldm_calculator / chargeable_weight_calculator (те считают габариты или выставляют счёт за отправку; этот оценивает её CO2e).

Параметры
  • basisenum

    База выбросов: wtw = well-to-wheel, включая upstream (по умолчанию), ttw = tank-to-wheel / только эксплуатация. Если у коэффициента опубликована только другая база, ответ использует её и сообщает об этом (basis_note, BASIS_SUBSTITUTED).

  • distance_kmnumberобязательный

    Расстояние транспортировки в километрах указываете вы: инструмент не прокладывает маршрут.

  • massnumberобязательный

    Масса отправления, выраженная в mass_unit. Пример: 1000.

  • mass_unitenum

    Единица массы. По умолчанию: кг.

  • modeenumобязательный

    Транспортный режим.

  • regionenum

    Источник/регион фактора: uk = DEFRA, us = EPA, fr = ADEME. По умолчанию: для каждого режима.

  • sub_modestring

    Необязательный подрежим / класс транспортного средства (например, «сочленённый», «контейнеровоз», «дальнемагистральный»). Для стандартного варианта по умолчанию не указывается.

get_subscribe_linkтолько чтениеидемпотентный

Возвращает URL страницы тарифов FreightUtils с лимитом запросов тарифа Pro (50 000 в месяц) и ценой. Используйте, когда пользователь спрашивает о тарифах FreightUtils, ценах или лимитах API. Поведение: статический локальный ответ, без вызова API, без ограничений по частоте запросов, без действий с аккаунтом или оплатой; пользователь открывает URL в браузере. Возвращает: url, tier, monthly_limit, monthly_price, currency и note в result.

Параметры
  • tierenum

    Тариф для отображения. Сегодня поддерживается только 'pro'.

hs_code_lookupтолько чтениеидемпотентный

Ищет 6 940 кодов товаров WCO Harmonized System (HS 2022) - международный слой классификации таможенных товаров на 6 цифрах. Первые 2 цифры - это глава, 4 - товарная позиция, 6 - субпозиция. Принимает один из: query (поиск по свободному текстовому описанию, минимум 2 символа), code (поиск по 2-6 цифрам, с точками или пробелами или без них - "8471.30" это 847130 - возвращает код и его иерархию) или section (римская цифра I-XXI для просмотра раздела). Поведение: только чтение; поиск по описанию сначала выполняется по официальным описаниям WCO HS; если ни одно не содержит слов, переключается на поисковые ссылки UK Trade Tariff (индекс HMRC для повседневных названий товаров), так "laptop" находит 847130, а "computers" находит товарную позицию 8471. Совпадение при переходе имеет среднюю уверенность: matched_via указывает на индекс HMRC, citation просит подтвердить код, а формальная формулировка тарифа ("automatic data processing machines") остаётся самым надёжным поиском. count 0 с пустым results[] - всё ещё допустимый ответ, когда ни один не находит слова. Ограничение скорости: ошибка лимита содержит reset_at, время UTC, когда лимит сбрасывается. Возвращает: эхо query/code, count и results[] (hscode, description и контекст иерархии) в result, плюс confidence, _source и citation (конверт ответа FreightUtils v1). Ограничения: только международный уровень на 6 цифрах - национальные тарифные линии (8-10 цифр) и ставки пошлин устанавливаются по странам; классификация здесь ориентировочная, а не обязательное решение. Связанные: uk_duty_calculator (пошлина/НДС для найденного здесь кода), ics2_check (качество описания товаров в EU ENS - совсем другая проверка).

Параметры
  • codestring

    Точный код HS или префикс: 2, 4 или 6 цифр, с точками и пробелами или без них. Примеры: "8471", "8471.30".

  • querystring

    Ищет слова (минимум 2 символа) и сопоставляет их сначала с официальными описаниями HS, затем с бытовыми названиями товаров HMRC (средняя уверенность). Примеры: "automatic data", "laptop".

  • sectionstring

    Просматривает раздел по римской цифре I-XXI. Пример: «XVI» (машины).

ics2_checkтолько чтениеидемпотентный

Проверяет описание товара по официальному списку стоп-слов EU ICS2 - терминов, которые Еврокомиссия считает слишком расплывчатыми или общими для поля описания товара в декларации краткого описания груза (ENS) (элемент данных 18 05 000 000). Передайте description=<goods description>. Как работает: детерминированное сопоставление терминов с действующим списком ЕС; каждый отмеченный термин идёт с примечанием (отдельное стоп-слово означает автоматический отказ, встроенное - значит, описание надо сделать конкретнее); clean=true означает, что ни один термин из списка не совпал, но это НЕ гарантирует принятия, и бинарный вердикт принято/отклонено не выдаётся. Есть ограничение по частоте запросов: ошибка лимита содержит reset_at - время в UTC, когда лимит сбрасывается. Возвращает: эхо описания, flagged[] (термин + примечание), clean, caveat и disclaimer внутри result, а также _source со ссылкой на список ЕС и правовое основание, плюс confidence, _source и citation (конверт ответа FreightUtils v1). Ограничения: СТРОГО справочная проверка - не подача ENS, не определение соответствия таможенным требованиям, не юридическая консультация; список ЕС неисчерпывающий и периодически обновляется. Связанные: hs_code_lookup (коды товаров - другое поле ENS), uk_duty_calculator (пошлины/НДС, к проверке по ENS отношения не имеет). Предназначен для проверки описания товара перед подачей ENS.

Параметры
  • descriptionstringобязательный

    Описание товара для проверки. Пример: «подарки» (слишком общее) против «деревянные игрушки для розницы» (конкретное).

incoterms_lookupтолько чтениеидемпотентный

Ищет 11 торговых правил Incoterms 2020: кто платит за перевозку, страхование и таможенное оформление и в какой момент риск переходит от продавца к покупателю. 7 правил работают при любом виде транспорта (EXW, FCA, CPT, CIP, DAP, DPU, DDP); 4 только для морских и внутренних водных перевозок (FAS, FOB, CFR, CIF). Принимает code для одного правила, category (any_mode | sea_only) для отфильтрованного списка или ничего, чтобы вывести все 11 (список - это строки-сводки: code, name, category, summary, а full: true даёт полные правила). Поведение: справочник только для чтения; неизвестный код выдаёт ошибку со списком допустимых кодов, а DAT, заменённый в Incoterms 2020, называет своего преемника - DPU (ICC). Есть ограничение частоты запросов: ошибка лимита содержит reset_at - время в UTC, когда лимит сбрасывается. Возвращает: запись правила (name, category, summary, seller_responsibility, buyer_responsibility, risk_transfer, cost_transfer, insurance, export/import clearance, best_for и watch_out) в поле result, плюс confidence, _source и citation (конверт ответа FreightUtils v1). Ограничения: сжатые рекомендации по ICC Incoterms 2020; обязательным текстом считается публикация ICC, а приоритет имеет конкретная формулировка контракта. Связанные: uk_duty_calculator (принимает инкотерм при расчёте стоимости CIF), shipment_summary (составной анализ).

Параметры
  • categoryenum

    Фильтрует список: any_mode (7 правил) или sea_only (4 правила).

  • codestring

    Трёхбуквенный код Incoterms 2020. Примеры: "FOB", "CIF", "EXW", "DAP".

  • fullboolean

    Lists only: true возвращает полные записи (provenance, sources, rationale) вместо строк сводки, по умолчанию по пять на страницу. Запрос одной записи всегда возвращает полную запись.

  • limitinteger

    Только для списков: строк на страницу (по умолчанию: каждая итоговая строка; 5 при full: true).

  • offsetinteger

    Перечисляет только: строк для пропуска (по умолчанию 0). Ответ возвращает total и next_offset.

ldm_calculatorтолько чтениеидемпотентный

Считает погрузочные метры (LDM) для европейских автоперевозок: сколько длины прицепа занимает партия паллет. 1 LDM = 1 погонный метр прицепа шириной 2,4 м; стандартная фура - это 13,6 LDM. Укажите пресет паллеты ИЛИ свои length_mm + width_mm; если не указать ни то, ни другое, вернётся ошибка с подсказкой по использованию. Поведение: детерминированное; stackable=true со stack_height 2 или 3 делит площадь на полу соответственно; fits равен true только когда груз укладывается в ДЛИНУ транспортного средства, в его МЕСТА ПОД ПАЛЛЕТЫ на полу и - если задан weight_kg - в его максимальную ГРУЗОПОДЪЁМНОСТЬ; каждый несоблюдённый лимит назван в warnings[] вместе со своими числами. Паллеты Euro и UK считаются за собственные места на полу (pallet_spaces.basis говорит, какие именно), остальные габариты - как эквиваленты Euro. Места на полу у транспортного средства берутся из собственного количества в его записи только тогда, когда это количество отражает места на полу; количество, ограниченное весом или непроверенное (у 7,5-тонного одиночного грузовика в записи 8, а его платформа 6,1 x 2,4 м вмещает 15), таким не является, и тогда места берутся из платформы - pallet_spaces.floor_positions_basis говорит, откуда именно, record_count - это хранимая цифра. Без weight_kg грузоподъёмность не проверяется: payload_checked равен false, а информационное предупреждение сообщает грузоподъёмность. utilisation_percent считается от длины транспортного средства. Есть ограничение по частоте запросов: ошибка лимита содержит reset_at - время UTC, когда лимит сбрасывается. Возвращает: ldm, vehicle (name, length_m, max_payload_kg), utilisation_percent, pallet_spaces (used, available, basis, floor_positions_basis, floor_positions_note, record_count, record_count_basis), total_weight_kg, payload_checked, fits и warnings внутри result, а также confidence, _source и citation (конверт ответа FreightUtils v1). Имена полей такие, как их отдаёт этот пакет (snake_case); размещённый на хосте эндпоинт /api/mcp отдаёт те же поля в camelCase (например, total_cbm → totalCbm). Связанные: vehicle_lookup (характеристики прицепов, лежащие в основе пресетов транспортных средств), pallet_fitting_calculator (коробки на одну паллету), consignment_calculator (смешанные позиции, включая LDM).

Параметры
  • length_mmnumber

    Пользовательская длина паллета в миллиметрах (используйте с width_mm вместо предустановленного значения). Пример: 1140.

  • palletenum

    Пресет паллет: euro=1200x800mm, uk=1200x1000mm, half=800x600mm, quarter=600x400mm. Укажите это ИЛИ length_mm + width_mm.

  • quantityinteger

    Количество паллет. По умолчанию: 1.

  • stackableboolean

    Если паллеты можно штабелировать в два или три яруса, это уменьшает занимаемую площадь пола вдвое (или втрое). По умолчанию: false.

  • stack_heightinteger

    Высота стопки при складывании: 2 или 3. По умолчанию: 2.

  • vehicleenum

    Прессет транспортного средства: artic = 13,6-метровый тентованный прицеп (по умолчанию), rigid10 = DEPRECATED, будет удалён в 3.0.0 (он по-прежнему отвечает теми же цифрами и возвращает предупреждение DEPRECATED в warnings[]; ни один производитель не публикует такую длину в 10 м для одиночных грузовиков. Используйте custom с параметром vehicle_length_m или artic), rigid75 = 7,5-тонный одиночный грузовик, luton = 3,5-тонный фургон Luton, us53 = 53-футовый прицеп для США/Канады, us48 = 48-футовый прицеп для США или custom. Прессеты для ЕС делят на 2,40 м по правилу погонного метра; прицепы для США делятся по своей собственной внутренней ширине 2,591 м, потому что в Северной Америке расчёт ведется не в погонных метрах.

  • vehicle_length_mnumber

    Длина груза для нестандартного транспортного средства в метрах (обязательно при vehicle=custom).

  • weight_kgnumber

    Вес паллеты в кг: отвечает за проверку соответствия полезной нагрузки.

  • width_mmnumber

    Нестандартная ширина паллета в миллиметрах. Пример: 980.

nearest_airportтолько чтениеидемпотентный

Находит аэропорты, ближайшие к указанным пользователем широте и долготе, сортирует по расстоянию по большому кругу (haversine) и добавляет distance_km к каждому результату. Ищет по 85 555 аэропортам (OurAirports, общественное достояние). Принимает широту и долготу (в десятичных градусах); необязательные radius_km, max_results (1-50, по умолчанию 10) и фильтр по типу (например, только large_airport). Координаты только ВХОДНЫЕ - ничего не сохраняется и не логируется. Поведение: детерминированная сортировка по расстоянию; confidence отражает близость и размер аэропорта (большой аэропорт в пределах 25 км получает высокую оценку; закрытые, вертолётные и гидроаэропорты получают меньший потолок). Этот инструмент НЕ геокодирует названия мест и НЕ вычисляет маршруты - передавайте координаты, которые у вас уже есть. Есть ограничение по частоте: при ошибке лимита возвращается reset_at, время в UTC, когда лимит сбросится. Возвращает: count и results[] (запись аэропорта плюс distance_km) в поле result, а также confidence, _source и citation (конверт ответа FreightUtils v1). Ограничения: только справочные данные - не для навигации; проверяйте коды по IATA / ICAO. Связанные: airport_lookup (поиск по точному коду или названию, без расстояния), unlocode_lookup (поиск по названию транспортного объекта).

Параметры
  • latitudenumberобязательный

    Широта в десятичных градусах (от -90 до 90). Пример: 51.47.

  • longitudenumberобязательный

    Долгота в десятичных градусах (от -180 до 180). Пример: -0.4543.

  • max_resultsinteger

    Максимальное количество результатов (по умолчанию: 50)

  • radius_kmnumber

    Максимальное расстояние в километрах - оставьте пустым, чтобы не ограничивать радиус.

  • typeenum

    Необязательный фильтр по типу аэропорта. Пример: "large_airport".

pallet_fitting_calculatorтолько чтениеидемпотентный

Считает, сколько одинаковых коробок влезает на паллету: коробок в слое (с пробой поворота на 90 градусов, когда это разрешено), число слоёв в пределах максимальной высоты, итоги, использование площади и объёма, а также ограничение по весу. Поведение: детерминированная геометрическая укладка одного размера коробки ровными рядами и столбцами - не моделирует перекрёстные схемы или схемы со смешанной ориентацией; weight_limited сообщает, когда max_payload_kg ограничивает количество ниже геометрической вместимости, считая целыми слоями (в примечаниях сказано, когда неполный слой отбрасывается и почему ничего не помещается, когда ни одна коробка не влезает); pallet_deck_height_cm по умолчанию равен 15. Отсутствующие или неположительные размеры дают ошибку с именем параметра. Есть ограничение частоты: ошибка лимита несёт reset_at - время UTC, когда лимит сбрасывается. Возвращает: boxes_per_layer, layers, total_boxes, orientation, boxes_per_row/col, usable_height_cm, utilisation_percent (доля ПЛОЩАДИ паллеты, которую покрывает один слой), volume_utilisation_percent (объём коробок к полезному объёму), total_box_volume_cbm, wasted_space_cbm, max_boxes_by_weight, notes и поля веса внутри result, а также confidence, _source и citation (конверт ответа FreightUtils v1). Имена полей такие, как их отдаёт этот пакет (snake_case); размещённый на сервере эндпоинт /api/mcp отдаёт те же поля в camelCase (например, total_cbm → totalCbm). Ограничения: теоретическая укладка по максимуму - реальная штабелировка подчиняется правилам прочности коробок, свеса и устойчивости груза, которые он не моделирует. Связанные: ldm_calculator (паллеты в длину прицепа), vehicle_lookup (вместимость паллет на транспортное средство), container_lookup (паллеты в контейнеры).

Параметры
  • allow_rotationboolean

    Пробует повернуть коробку на 90 градусов для наилучшего заполнения слоёв. По умолчанию: true.

  • box_height_cmnumberобязательный

    Высота коробки в см.

  • box_length_cmnumberобязательный

    Длина коробки в см.

  • box_weight_kgnumber

    Вес коробки в кг: включает проверку ограничения веса.

  • box_width_cmnumberобязательный

    Ширина коробки в см.

  • max_payload_kgnumber

    Максимальная полезная нагрузка паллеты в кг. Пример: 1000.

  • pallet_deck_height_cmnumber

    Высота настила паллета в см. По умолчанию: 15.

  • pallet_length_cmnumberобязательный

    Длина паллета в см. Пример: 120 (европаллет).

  • pallet_max_height_cmnumberобязательный

    Максимальная высота штабеля в см, ВКЛЮЧАЯ настил паллеты. Пример: 180.

  • pallet_width_cmnumberобязательный

    Ширина паллета в см. Пример: 80 (европаллет).

resolve_referenceтолько чтениеидемпотентный

Разрешает произвольный идентификатор груза: на входе одна непрозрачная строка, на выходе типизированные кандидаты с указанием источников. Используйте, когда у вас есть один токен, похожий на идентификатор ("176", "UN1845", "NLRTM", "FOB", "22G1", "MSKU1100810", "D/E"), и вы не знаете, что это за идентификатор: каждый кандидат указывает свой тип сущности и содержит api_url и canonical_url своей полной записи. Укажите q: ОДИН идентификатор (один токен, максимум 32 символа). Запускаются все тринадцать грамматик: номера UN, префиксы AWB, IATA/ICAO авиакомпаний, IATA/ICAO аэропортов, UN/LOCODE, номера контейнеров ISO 6346 (контрольная цифра вычисляется), коды HS (6-10 цифр; национальные строки разрешаются по их 6-значному международному родителю), Incoterms, коды туннелей ADR, серийные номера ULD, коды размера/типа контейнеров ISO. Неоднозначность - это результат: конфликтующие грамматики возвращают НЕСКОЛЬКО ранжированных кандидатов ("LHR" - это Heathrow И ICAO египетского перевозчика), никогда не молчаливая догадка. Поведение: детерминированное - нормализует (обрезка, верхний регистр, сжатие пробелов/дефисов, удаление префикса UN), сопоставляет ВСЕ грамматики, ранжирует по попаданию в запись > статусу верификации > априорной вероятности статического набора данных (авиакомпании/adr/unlocode в первую очередь) > стабильному тай-брейку; каждый кандидат содержит rank_basis, так что порядок можно проверить. Ноль кандидатов - это ДОПУСТИМЫЙ результат (count 0 + note), никогда не ошибка. Неудачная контрольная цифра контейнера возвращает кандидата с valid:false, а не отбрасывает его. Ограничение скорости: ошибка лимита содержит reset_at, время UTC, когда сбрасывается разрешение. Возвращает: query, normalized, count и candidates[] - каждый с entity_type, identifier_type, value_normalized, summary, record (основные поля, которые содержит соответствующий набор данных), verification_status + verification_basis, rank_basis, canonical_url, api_url и ссылкой на набор данных для каждого кандидата - под result, плюс confidence, _source и citation (конверт ответа FreightUtils v1). Ограничения: v1 - это РАЗРЕШЕНИЕ ОДНОГО ТОКЕНА, а не извлечение свободного текста - передайте один идентификатор, а не строку манифеста; коды SCAC/BIC пока не поддерживаются; совпадение утверждает, что идентификатор известен/правильно сформирован,…

Параметры
  • qstringобязательный

    Один идентификатор груза, например, "176", "UN1845", "NLRTM", "FOB", "LHR", "22G1", "MSKU1100810", "090111", "AKE12345AB", "D/E".

shipment_summaryтолько чтениеидемпотентный

Комплексный анализ отправки за один вызов: объём (CBM), вес брутто и оплачиваемый вес, дорожный LDM с паллетоместами и подсказкой по транспортному средству (режим road), объёмный вес (air), доходные тонны с подсказкой по контейнеру (sea), наличие опасных грузов для позиций с un_number и оценка пошлины Великобритании для позиций с hs_code + customs_value. Укажите mode (road | air | sea | multimodal) и items[] (габариты в см, вес в кг НА ПОЗИЦИЮ, quantity; необязательные stackable, pallet_type, hs_code, un_number, customs_value НА ПОЗИЦИЮ и adr_quantity - СУММАРНОЕ значение для строки опасного груза, все места вместе); origin/destination и incoterm уточняют расчёт пошлины. Поведение: напрямую вызывает движки ldm_calculator, adr_lookup и uk_duty_calculator; CBM, объёмный вес и доходные тонны считаются той же арифметикой на месте, а не отдельным вызовом. Дорожный LDM использует делитель по конвенции погрузочного метра 2,40 м и, как и ldm_calculator, считает позицию без флага stackable как НЕштабелируемую. modeSpecific.palletSpaces - это ПАЛЛЕТНЫЕ МЕСТА НА ПОЛУ (цифра, которую сообщает ldm_calculator); palletRows - отдельное число рядов. Предлагаемое транспортное средство - самое маленькое, которое вмещает груз по длине, полезной нагрузке и паллетным местам на полу: берётся число из самой записи, если это число мест на полу, иначе оно вычисляется по грузовой платформе ТС (7,5-тонный жёсткий грузовик вмещает 15 европаллет на полу; modeSpecific.suggestedVehicleFloorPositions говорит, какое именно), а trailerUtilisation считается для этого транспортного средства (utilisationBasis его называет); предлагаемый контейнер - самый маленький сухой контейнер, чья запись вмещает объём и полезную нагрузку. Разделы, которые не могут выполниться (например, пошлина без customs_value), попадают в warnings вместо того, чтобы завалить весь вызов. Поля проверяются по имени: поле, которое инструмент не читает, отклоняется с ошибкой инструмента, где оно названо и перечислены допустимые, и никогда не игнорируется. Есть ограничение по частоте: ошибка лимита несёт reset_at - время UTC, когда сбрасывается лимит. Возвращает: mode, itemCount, totals {pieces, grossWeight, volumeCBM,…

Параметры
  • destinationobject

    Назначение: код страны по ISO и необязательный UN/LOCODE.

  • freight_costnumber

    Стоимость перевозки в GBP для расчета пошлины.

  • incotermstring

    Трёхбуквенный код Incoterms 2020. Примеры: "DAP", "EXW", "FOB".

  • insurance_costnumber

    Стоимость страховки в GBP для расчёта пошлины.

  • itemsobject[]обязательный

    Элементы отправления с габаритами, весом и необязательными кодами HS/UN.

  • modeenumобязательный

    Transport mode - выбирает специфичный для режима раздел результата.

  • originobject

    Пункт отправления: код страны ISO и необязательный код UN/LOCODE.

uk_duty_calculatorтолько чтениеидемпотентный

Оценивает пошлину и НДС при импорте в Великобританию по коду товара, используя ЖИВОЙ GOV.UK Trade Tariff: ставки запрашиваются на каждый запрос, а не берутся из статичной таблицы. Значение CIF складывается из customs_value + freight_cost + insurance_cost; пошлина = CIF x ставка пошлины для страны происхождения; НДС (обычно 20%) начисляется на стоимость с учётом пошлины. Укажите commodity_code (декларируемый 10-значный код), origin_country (ISO-2) и customs_value в GBP; freight_cost, insurance_cost и incoterm - необязательные уточнения. Поведение: живой запрос плюс детерминированная арифметика по полученной ставке; 6- или 8-значный код отклоняется (никогда не дополняется нулями до кода, который вы не отправляли) вместе с declarable_codes - 10-значными кодами под ним в UK Trade Tariff (610910 → 6109100010, 6109100090); страна происхождения, не входящая в ISO 3166-1, отклоняется; меры, зависящие от происхождения, которые тариф не может определить автоматически, попадают в warnings. Ограничение частоты: ошибка лимита несёт reset_at - время в UTC, когда лимит сбрасывается. Возвращает: commodity_code и description, страну происхождения, cif_value, duty_rate (+ percent), duty_amount, vat_rate, vat_amount, total_import_taxes, total_landed_cost и warnings внутри result (суммы в GBP); validity.as_of отмечает метку времени живой ставки; плюс confidence, _source и citation (конверт ответа FreightUtils v1). Имена полей такие, как их отдаёт этот пакет (snake_case); размещённый эндпоинт /api/mcp отдаёт те же поля в camelCase (например, total_cbm → totalCbm). Ограничения: это оценка, а не таможенное решение - акцизы, квоты, антидемпинговые меры, льготы и требования подтверждения происхождения могут изменить результат; уточните у таможенного брокера или в HMRC, прежде чем полагаться на неё. Связанные инструменты: hs_code_lookup (сначала найдите 6-значный код), incoterms_lookup (кто на самом деле платит эти расходы).

Параметры
  • commodity_codestringобязательный

    Код товара по тарифу Великобритании: декларируемые 10 цифр. Пример: "8471300000" (портативные компьютеры). Код из 6 или 8 цифр отклоняется, а под ним показываются декларируемые коды.

  • customs_valuenumberобязательный

    Стоимость товара в фунтах стерлингов. Пример: 1000.

  • freight_costnumber

    Стоимость фрахта в GBP, 0 или больше, прибавляется к значению CIF. По умолчанию: 0.

  • incotermenum

    Базис Инкотермс 2020 для таможенной стоимости: документы, расходы по которым уже включены.

  • insurance_costnumber

    Стоимость страховки в GBP, 0 или больше: прибавляется к значению CIF. По умолчанию: 0.

  • origin_countrystringобязательный

    Двухбуквенный код страны происхождения по стандарту ISO. Примеры: "CN", "DE", "US".

uld_lookupтолько чтениеидемпотентный

Ищет спецификации авиагрузовых ULD (Unit Load Device) - 16 типов, охватывающих контейнеры нижней палубы (AKE/LD3 и семейство), паллеты основной палубы (PMC, PAG и семейство) и терморегулируемые блоки. Каждая запись содержит внешние/внутренние/дверные размеры (см), тару и максимальный полный вес (кг), полезный объём (м³), позицию на палубе и совместимые воздушные суда. Укажите тип как код IATA ("AKE", "PMC"), слаг ("ake-ld3") или собственное имя записи, когда одна запись его несёт ("LD3" → AKE); опустите его, чтобы вывести все 16; категория (container | pallet | special) и палуба (lower | main) фильтруют список. Поведение: только чтение; неизвестный тип выдаёт ошибку с ближайшими кодами; отдельная запись содержит своё происхождение (sources, audited_at, decision_rationale). Список (если не запрошена отдельная запись) возвращает строки сводки с total, truncated, next_offset и detail_hint; full: true возвращает полные записи по пять на страницу, с offset / limit для постраничного вывода. Ограничение скорости: ошибка лимита содержит reset_at, время UTC, когда сбрасывается лимит. Возвращает: запись ULD (или список) в result, плюс confidence, _source и citation (конверт ответа FreightUtils v1). Имена полей такие, как их отдаёт этот пакет (snake_case); размещённый эндпоинт /api/mcp отдаёт те же поля в camelCase (например, total_cbm → totalCbm). Ограничения: спецификации собраны из источников, опубликованных производителями и перевозчиками, с ≥7 цитируемыми источниками на запись. Происхождение PENDING, не проверено - читайте provenance_status конверта, а не это предложение. Покрытие вторым агентом теперь COMPLETE - второй агент открыл и оценил каждую цитируемую пару запись-URL, и 145 из 148 цитирований имеют отметку времени о прочтении (3 без неё никогда не открывались и сообщают об этом). COVERAGE IS NOT AGREEMENT, поэтому происхождение всё ещё pending: чтение каждой страницы сделало разногласия видимыми, а не разрешило их. Второй агент также ОТОЗЫВАЕТ отметки - страницы, которые первый проход подтвердил, оказались не содержащими код или разошлись после…

Параметры
  • categoryenum

    Фильтровать по категории ULD.

  • deckenum

    Фильтрует по позиции в колоде.

  • fullboolean

    Lists only: true возвращает полные записи (provenance, sources, rationale) вместо строк сводки, по умолчанию по пять на страницу. Запрос одной записи всегда возвращает полную запись.

  • limitinteger

    Только для списков: строк на страницу (по умолчанию: каждая итоговая строка; 5 при full: true).

  • offsetinteger

    Перечисляет только: строк для пропуска (по умолчанию 0). Ответ возвращает total и next_offset.

  • typestring

    Код IATA ULD или слаг. Примеры: "AKE", "PMC", "ake-ld3". Если не указано, выводит все 16.

unit_converterтолько чтениеидемпотентный

Преобразует грузовые и логистические единицы: вес (kg, lbs, oz, tonnes, short_tons, long_tons), объём (cbm, cuft, cuin, litres, gal_us, gal_uk), длину (cm, inches, m, feet, mm), плюс две грузовые цели, допустимые только ИЗ cbm: chargeable_kg (объёмный авиационный вес по делителю IATA 6,000: m³ x 1,000,000 / 6000) и freight_tonnes (морской W/M, 1 CBM = 1 freight tonne). Поведение: детерминированное, на точных законодательно установленных коэффициентах (1 lb = 0.45359237 kg, 1 in = 2.54 cm); ответ называет обе единицы и указывает использованную формулу. Кросс-размерные преобразования (например, kg в litres), отрицательное значение и грузовые цели из источника, отличного от cbm, отклоняются, а допустимые единицы перечисляются по категориям. Примечание: short ton (US) = 2,000 lb, long ton (UK) = 2,240 lb, metric tonne = 2,204.6 lb. Ограничение частоты: ошибка лимита содержит reset_at, время UTC, когда сбрасывается квота. Возвращает: input {value, unit, name}, result {value, unit, name}, formula и note внутри result, плюс confidence, _source и citation (конверт ответа FreightUtils v1). Связанные: cbm_calculator (сначала размеры в объём), chargeable_weight_calculator (правильный авиационный биллинговый вес с местами и настраиваемым делителем).

Параметры
  • fromenumобязательный

    Исходная единица измерения — вес (кг, фунты, унции, тонны, короткие тонны, длинные тонны), объём (кубометры, кубические футы, кубические дюймы, литры, галлоны США, имперские галлоны) или длина (см, дюймы, м, футы, мм). Должна быть той же размерности, что и «в».

  • toenumобязательный

    Целевая единица - любая единица той же размерности, плюс chargeable_kg и freight_tonnes (обе допустимы только из cbm).

  • valuenumberобязательный

    Числовое значение, которое нужно преобразовать, 0 или больше. Пример: 5.

unlocode_lookupтолько чтениеидемпотентный

Ищет 116 232 транспортных объекта UN/LOCODE по всему миру: порты, аэропорты, железнодорожные и автомобильные терминалы, внутренние контейнерные депо и пограничные переходы. Код состоит из 5 символов: 2-буквенный код страны по ISO + 3-символьный код локации (GBLHR = London Heathrow, NLRTM = Rotterdam). Принимает код для точной записи либо запрос (поиск по названию, минимум 2 символа), который можно сузить по стране и function_type; limit ограничивает число результатов (по умолчанию 20, максимум 100). Запись с пробелом «GB LHR» читается как GBLHR в любом из вариантов. Поведение: только чтение; точные совпадения по коду строятся на основе provenance, а нечёткие совпадения по названию сообщают о качестве совпадения через confidence в конверте (basis match_quality); неизвестный код возвращает ошибку с сообщением о том, что запись не найдена. Есть ограничение частоты: ошибка лимита несёт reset_at - время в UTC, когда сбросится квота. Возвращает: записи о локациях - code, name и name_ascii, country, subdivision, functions[], status, coordinates {lat, lon} и iata_code, где он присвоен - в поле result, а также confidence, _source и citation (конверт ответа FreightUtils v1). Ограничения: это административный список кодов (UNECE UN/LOCODE 2025-1) - перед критичным использованием уточняйте рабочий статус и координаты у порта или ведомства. Связанные: airport_lookup (записи по конкретным аэропортам, включая коды ICAO), nearest_airport (поиск аэропортов по координатам).

Параметры
  • codestring

    Точный UN/LOCODE - 5 символов, пробелы необязательны. Примеры: "GBLHR", "GB LHR", "NLRTM".

  • countrystring

    Фильтрует по двухбуквенному коду страны ISO. Примеры: "GB", "NL".

  • function_typeenum

    Функция фильтрации по местоположению.

  • limitinteger

    Максимальное количество результатов (по умолчанию: 20, максимум: 100)

  • querystring

    Поиск по названию местоположения (минимум 2 символа). Примеры: "rotterdam", "heathrow".

validateтолько чтениеидемпотентный

Проверяет и разбирает грузовые идентификаторы по их публичным алгоритмам контрольных цифр: номера морских контейнеров (ISO 6346), номера авианакладных (AWB) (IATA, модуль 7) и идентификационные номера судов IMO. Два режима: передайте text=<произвольная строка>, чтобы найти и проверить все идентификаторы в ней (например, строку из письма с бронированием), ИЛИ передайте value=<идентификатор> + type=<container|awb|imo>, чтобы проверить один. Поведение: детерминированная арифметика контрольных цифр; по каждому найденному идентификатору сообщает тип, нормализованную форму, valid (проходит/не проходит), ожидаемую и фактическую контрольную цифру, а также детали (container: префикс владельца + категория оборудования; AWB: префикс авиакомпании + авиакомпания-оператор, определённая из набора данных префиксов AWB; IMO: 7-значный номер); режим text, когда идентификаторы не найдены, возвращает пустой found[] с примечанием. Есть ограничение частоты: ошибка лимита содержит reset_at - время в UTC, когда лимит сбрасывается. Возвращает: found[] (каждая запись со своим _source, указывающим применённый стандарт) и disclaimer внутри result, плюс confidence, _source и citation (конверт ответа FreightUtils v1). Ограничения: ТОЛЬКО СТРУКТУРА - валидная контрольная цифра означает корректный формат, а НЕ то, что контейнер, отправка или судно существуют или активны; это не поиск по реестру и не трекинг. Связанные: container_lookup (спецификации ТИПОВ контейнеров, а не номера), airline_lookup (набор данных префиксов AWB, по которому определяется авиакомпания).

Параметры
  • textstring

    Произвольная строка для поиска идентификаторов контейнера / AWB / IMO (режим разбора). Укажите её ИЛИ значение+тип. Пример: "2 cntrs MSKU3068808 / TGHU7654325 on AWB 176-12345675".

  • typeenum

    Тип идентификатора для значения: container = ISO 6346, awb = авианакладная IATA, imo = номер судна IMO.

  • valuestring

    Проверяет один идентификатор (typed mode). Требует type: значение без type отклоняется. Пример: "MSKU3068808".

vehicle_lookupтолько чтениеидемпотентный

Ищет характеристики грузовых автомобилей и прицепов для автоперевозок - 17 типов: прицепы-шторы EU (standard/mega curtainsider, box, reefer, double-deck, flatbed, low-loader), US 53ft/48ft dry vans, жёсткие грузовики (rigid, 7,5-26 т) и фургоны (Luton, Transit, Sprinter). Каждая запись несёт внутренние размеры, полезную нагрузку и полную массу, вместимость по паллетам euro/UK, схему осей и особенности. Укажите slug (например, "standard-curtainsider"), чтобы получить одну запись; опустите его, чтобы вывести список всех 17; category (articulated | rigid | van) и region (EU | US) фильтруют список. Поведение: только чтение; неизвестный slug выдаёт ошибку со списком допустимых и ближайшими slug; одиночная запись несёт сведения о происхождении (sources, audited_at, decision_rationale). Список (когда конкретную запись не запрашивали) возвращает сводные строки с total, truncated, next_offset и detail_hint; full: true возвращает полные записи по пять на страницу, а offset / limit задают постраничный вывод. Есть ограничение по частоте: ошибка лимита несёт reset_at - время в UTC, когда лимит сбрасывается. Возвращает: запись автомобиля (или список) в поле result, плюс confidence, _source и citation (конверт ответа FreightUtils v1). Имена полей такие, как их отдаёт этот пакет (snake_case); размещённый эндпоинт /api/mcp отдаёт те же поля в camelCase (например, total_cbm → totalCbm). Ограничения: типовые характеристики, происхождение ждёт независимой проверки (об этом говорит provenance_status в конверте) - реальное оборудование отличается от оператора к оператору и от сборки к сборке; легальную полезную нагрузку задают паспортные массы автомобиля. Связанные: ldm_calculator (поместится ли паллетная загрузка), pallet_fitting_calculator, consignment_calculator.

Параметры
  • categoryenum

    Фильтрует по категории транспортного средства.

  • fullboolean

    Lists only: true возвращает полные записи (provenance, sources, rationale) вместо строк сводки, по умолчанию по пять на страницу. Запрос одной записи всегда возвращает полную запись.

  • limitinteger

    Только для списков: строк на страницу (по умолчанию: каждая итоговая строка; 5 при full: true).

  • offsetinteger

    Перечисляет только: строк для пропуска (по умолчанию 0). Ответ возвращает total и next_offset.

  • regionenum

    Фильтрует по региону.

  • slugstring

    Vehicle slug. Примеры: "standard-curtainsider", "mega-trailer". Опустите, чтобы вывести все 17.

2.22.5основная
2.22.4
2.22.3
2.22.2
2.22.1
2.22.0
2.21.2
2.21.1
2.21.0
2.20.1
2.20.0
2.19.0
2.18.0
2.17.2
2.17.1
2.17.0
2.16.0
2.15.0
2.14.3
2.14.2
2.14.1
2.14.0
2.13.0
2.12.4
2.12.3
2.12.2
2.12.1
2.12.0
2.11.2
2.11.1
2.11.0
2.10.2
2.10.1
2.10.0
2.9.0
2.8.0
2.7.0
2.6.0
2.5.0
2.4.1
2.4.0
2.3.0
2.2.0
2.1.1
2.1.0
2.0.0
1.1.0
1.0.8
1.0.7
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0

Выберите клиент, чтобы установить SoapyRED/freightutils-mcp:

Любой клиент

Конфиг добавления MCP сервера стандартный, обычно он не меняется вообще, поэтому подходит практически к любому ИИ клиенту, поддерживающему MCP.

{
  "mcpServers": {
    "soapyred-freightutils-mcp-4dz4dr109w": {
      "command": "npx",
      "args": [
        "freightutils-mcp"
      ]
    }
  }
}
CursorCursor

Перейдите по ссылке и сервер автоматически будет добавлен в Cursor. Либо откройте/создайте файл ~/.cursor/mcp.json(%USERPROFILE%\.cursor\mcp.json на Windows) и добавьте конфиг сервера:

{
  "mcpServers": {
    "soapyred-freightutils-mcp-4dz4dr109w": {
      "command": "npx",
      "args": [
        "freightutils-mcp"
      ]
    }
  }
}
VS Code

Создайте .vscode/mcp.json в проекте (ключ верхнего уровня — servers):

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

Либо добавьте сервер через терминал:

code --add-mcp "{\"name\":\"soapyred-freightutils-mcp-4dz4dr109w\",\"type\":\"stdio\",\"command\":\"npx\",\"args\":[\"freightutils-mcp\"]}"
ClaudeClaude Desktop

Откройте Settings → Developer → Edit Config — это откроет файл claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Впишите сервер и полностью перезапустите Claude Desktop:

{
  "mcpServers": {
    "soapyred-freightutils-mcp-4dz4dr109w": {
      "command": "npx",
      "args": [
        "freightutils-mcp"
      ]
    }
  }
}
Claude CodeClaude Code

Добавьте сервер одной командой в терминале:

claude mcp add soapyred-freightutils-mcp-4dz4dr109w -- npx freightutils-mcp

Либо через JSON-конфиг:

claude mcp add-json soapyred-freightutils-mcp-4dz4dr109w "{\"command\":\"npx\",\"args\":[\"freightutils-mcp\"]}"
CodexCodex

Добавьте сервер командой в терминале:

codex mcp add soapyred-freightutils-mcp-4dz4dr109w -- npx freightutils-mcp

Либо вручную в ~/.codex/config.toml(%USERPROFILE%\.codex\config.toml на Windows):

[mcp_servers.soapyred-freightutils-mcp-4dz4dr109w]
command = "npx"
args = ["freightutils-mcp"]
PerplexityPerplexity

MCP доступен подписчикам Perplexity Pro / Max / Enterprise. Локальные серверы — только в приложении для macOS.

  1. Откройте Настройки аккаунта → Connectors.
  2. Установите вспомогательное приложение PerplexityXPC (один раз).
  3. Нажмите Add Connector → вкладка Simple.
  4. В поле Server Name укажите SoapyRED/freightutils-mcp, а в поле команды запуска — строку ниже:
npx freightutils-mcp

Нажмите Save и дождитесь статуса Running.

WindsurfWindsurf

Откройте Windsurf Settings → Cascade → MCP Servers или отредактируйте файл ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "soapyred-freightutils-mcp-4dz4dr109w": {
      "command": "npx",
      "args": [
        "freightutils-mcp"
      ]
    }
  }
}
ClineCline

В панели Cline нажмите иконку MCP Servers → Configure → Configure MCP Servers (или отредактируйте ~/.cline/mcp.json) и добавьте сервер:

{
  "mcpServers": {
    "soapyred-freightutils-mcp-4dz4dr109w": {
      "command": "npx",
      "args": [
        "freightutils-mcp"
      ],
      "disabled": false,
      "autoApprove": []
    }
  }
}
Continue

Создайте файл в .continue/mcpServers/ (например soapyred-freightutils-mcp-4dz4dr109w.yaml) или добавьте блок в config.yaml. MCP работает только в режиме agent:

mcpServers:
  - name: soapyred-freightutils-mcp-4dz4dr109w
    command: npx
    args:
      - "freightutils-mcp"
Zed

Выполните agent: add context server или откройте настройки (zed: open settings file) и добавьте сервер в объект context_servers:

{
  "context_servers": {
    "soapyred-freightutils-mcp-4dz4dr109w": {
      "command": "npx",
      "args": [
        "freightutils-mcp"
      ]
    }
  }
}

Похожие MCP-сервера

skedgo/tripgo-mcp-server

skedgo/tripgo-mcp-server

от skedgo

MCP-сервер для интеграции с API TripGo: поиск транспортных локаций, отправлений и мультимодальное построение маршрутов. Полезен разработчикам ИИ-агентов для планирования поездок и анализа транспорта.

TypeScript⭐ 5
aarsiv-groups/shipi-mcp-server

aarsiv-groups/shipi-mcp-server

от aarsiv-groups

Shipi MCP сервер для управления доставкой через диалог с ИИ. Сравнивайте тарифы, создавайте отправления и отслеживайте грузы. Работает с FedEx, UPS, USPS и десятками других перевозчиков. Автоматизируйте логистику в Claude Desktop.

JavaScript⭐ 1
arifur9993/attendance-engine-mcp

arifur9993/attendance-engine-mcp

от arifur9993

MCP-сервер для точного учёта рабочего времени и проверки соблюдения трудового законодательства. Даёт AI-агенту детерминированные инструменты: расчёт перерывов, сверхурочных, ротаций смен. Подходит ...

TypeScript⭐ 1
NexusFeed/nexusfeed-mcp

NexusFeed/nexusfeed-mcp

от nexusfeed

NexusFeed MCP даёт ИИ-агентам данные о топливных надбавках LTL-перевозок и лицензиях ABC (алкоголь) в США. Ответы верифицированы: timestamp, confidence score, источник. Для логистики, аудита и comp...

Python⭐ 1
AlvisoOculus/optionsahoy-mcp

AlvisoOculus/optionsahoy-mcp

от alvisooculus

MCP сервер для детерминированного расчета налогов на акционерное вознаграждение: ISO, NSO, RSU, QSBS и концентрация акций. Точные цифры, а не оценка LLM. Полезен для планирования продаж и хеджирова...

TypeScript⭐ 5
СДЭК MCP

СДЭК MCP

от theyahia

MCP сервер для работы с API СДЭК: 16 инструментов для расчета тарифов, управления заказами и отслеживания отправлений. Автоматизирует логистику в AI-ассистентах - от стоимости доставки до вызова курьера и печати квитанций.

TypeScript⭐ 1
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин