Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
제작자가 쓴 설명(영어 원문)
Neutral freight reference + validation layer for AI agents: ADR, HS, UN/LOCODE, freight math
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
웹, 데스크톱, 모바일의 Claude에서 쓸 수 있어요:
https://www.freightutils.com/api/mcpClaude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"freightutils": {
"command": "npx",
"args": [
"-y",
"freightutils-mcp"
]
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add --transport http freightutils https://www.freightutils.com/api/mcpclaude mcp add freightutils -- npx -y freightutils-mcp프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"freightutils": {
"url": "https://www.freightutils.com/api/mcp"
}
}
}프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"freightutils": {
"command": "npx",
"args": [
"-y",
"freightutils-mcp"
]
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"freightutils": {
"type": "http",
"url": "https://www.freightutils.com/api/mcp"
}
}
}프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"freightutils": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"freightutils-mcp"
]
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요:
https://www.freightutils.com/api/mcp메뉴 이름은 요금제나 시기에 따라 조금 다를 수 있어요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
도구 이름과 설명은 서버가 2026년 11월 6일에 알려 준 그대로예요. 우리가 아니라 제작자가 쓴 글이고, 일반 텍스트로만 보여 드려요.
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
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 6일 점검
레지스트리 이름이 GitHub 계정 SoapyRED 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
1893ms 만에 응답(HTTP 200)
로그인 필요 없음
도구 설명 26개를 읽었고, AI에게 보내는 숨겨진 지시는 없었어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 3개 중 3개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.
둘 다 가능해요. 내 컴퓨터에 설치해도 되고, 클라우드 버전에 연결해도 돼요.
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(2.33.0)은 오늘 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. URL로 연결되기 때문에, 원격 MCP 서버를 지원하는 앱(예: 개발자 모드의 ChatGPT)에서도 쓸 수 있어요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, Dechonet MCP
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
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.
30 security tools for AI agents: phishing links, exposure maps, DNS, SSL, PQC, history, pivots.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
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.
앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요