Skip to main content
Glama

Server Details

Ocean & multimodal freight intelligence: rates, landed cost, transit, customs, risk, ship decisions

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.5/5 across 47 of 47 tools scored.

Server CoherenceA
Disambiguation4/5

Most tools have distinct purposes, e.g., get_spot_rate vs get_all_in_rate vs get_landed_cost clearly differ. Some overlap exists (booking_strategy vs procurement_strategy, equipment_availability vs load_plan), but detailed descriptions help differentiate. Overall, an agent can usually select the correct tool.

Naming Consistency3/5

Tool names are lowercase with underscores, but patterns vary: some are verb_noun (build_tender, check_lc_documents), others are noun phrases (booking_strategy, carbon_footprint). While readable, there is no strict convention, making it less predictable.

Tool Count2/5

With 47 tools, the set is very large. While each tool addresses a specific aspect of freight management, many could be combined (e.g., multiple watch-related tools). This volume risks overwhelming users and agents, suggesting a need for consolidation.

Completeness5/5

The tool set covers an impressively broad range: spot rates, all-in costs, port intel, equipment, mode comparison, carrier recommendation, procurement, D&D, customs, trade finance, inventory, sourcing, etc. There are no obvious gaps for the stated domain of freight decision support.

Available Tools

47 tools
appointment_planAInspect

Plan the terminal APPOINTMENT and the box sequence so you don't eat demurrage & detention. US/EU terminals require a timed appointment to pick up the import container and to return the empty; miss the window and dwell climbs and D&D starts. Give the lane + ship date and it reads the destination port congestion (iter7) at arrival, derives APPOINTMENT-SLOT availability (how far out the first slot is and how likely a desired slot is missed — the real dwell driver), then returns: the OPTIMAL PICKUP WINDOW (late enough not to pre-pay storage, with a reserve for a missed slot, by-date inside your free days), the PICKUP→EMPTY-RETURN sequence (a dual transaction where the port supports it to cut detention), and the expected D&D of the plan vs sending the trucker blind, with the saving. Proves: a congested port (LA/LB at peak) → tight slot window, book earlier, dual-transaction the empty → saves $X of D&D; a fluid port → same-day slots, relaxed window, no premium. Honest (regla 7): INDICATIVE — appointment availability, slot scarcity and dual-transaction behaviour are modeled by port & congestion band, NOT a live terminal appointment feed (eModal/Voyage/TideWorks). PREMIUM: pay per call with x402 (USDC on Base) or a prepaid key.

ParametersJSON Schema
NameRequiredDescriptionDefault
dest_portYesDestination port — where the box is picked up & the empty returned.
ship_dateNoShip date (YYYY-MM-DD) — sets the arrival window & congestion. Optional; default today.
origin_portYesOrigin port (city name, UN/LOCODE, or 'City, Country').
container_typeNoContainer '20ft'/'40ft'/'40HC'. Optional; default '40ft'.
import_free_daysNoYour contract's import (demurrage) free days. Optional — a regional default is used.
discharge_clear_daysNoDays to discharge + customs-clear before the box is available for pickup. Optional; default 2.
empty_return_free_daysNoYour contract's empty-return (detention) free days. Optional — a regional default is used.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses behavioral traits: it's model-based, not live; uses port congestion and slot scarcity models; provides indicative results; mentions premium payment (USDC or prepaid key). It honestly states limitations and how it works.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is informative but verbose. It front-loads the main purpose, then includes lengthy explanations of outputs and examples. While all content is valuable, it could be more concise for faster parsing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (7 parameters, no output schema), the description is very complete. It explains what the tool returns (optimal window, sequence, D&D savings) and provides examples for congested vs fluid ports. No gaps identified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds meaning by explaining how parameters like origin and destination ports drive congestion analysis, how ship date sets arrival window, and how free days interact with dwell. This goes beyond schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool plans terminal appointments and box sequences to avoid demurrage & detention. It specifies the output: optimal pickup window, pickup-to-empty-return sequence, and expected D&D savings. It distinguishes from siblings by focusing on appointment slot availability and dual-transaction behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use: provide lane and ship date to get appointment planning. It explains that it's indicative and not a live feed, setting expectations. While it doesn't name alternatives, the context makes clear this is for strategic planning before actual booking.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

booking_strategyAInspect

When and how to RESERVE space so your box isn't rolled and your cargo isn't stranded on the dock. Give the lane + ship date + criticality, and it reads the demand PRESSURE (composing the seasonality calendar — CNY / Golden Week / transpacific peak — with the equipment-crunch signal) into a band (slack → acute), then returns: the optimal BOOKING WINDOW (lead days, plus a criticality buffer, and the date to book by), the SPOT vs CONTRACT rollover probability and roll-delay days, and the GUARANTEED/PREMIUM-booking trade-off — the certain premium surcharge vs the expected rollover-delay cost of riding spot (roll prob × delay days × per-day criticality cost). It recommends spot, a guaranteed booking, or — if your committed volume justifies it — a named-account allocation. Proves: peak/CNY → book earlier + pay for the guarantee; slack market → ride spot. Honest (regla 7): INDICATIVE rollover probabilities & premiums by band (reusing the real seasonality/equipment calendars) — not a space guarantee or carrier quote. PREMIUM: pay per call with x402 (USDC on Base) or a prepaid key.

ParametersJSON Schema
NameRequiredDescriptionDefault
dest_portYesDestination port.
ship_dateNoShip date (YYYY-MM-DD) — selects the seasonal/equipment pressure. Optional; default today.
criticalityNo'low' / 'normal' / 'high' / 'critical' — how badly a rollover delay hurts. Optional; default normal.
origin_portYesOrigin port (city name, UN/LOCODE, or 'City, Country').
container_typeNoContainer '20ft'/'40ft'/'40HC'. Optional; default '40ft'.
annual_containersNoAnnual committed volume on this lane (containers/yr) — triggers the named-account allocation call. Optional.
base_freight_per_container_usdNoBase ocean freight per container (USD) to price the premium & delay cost. Optional — derived if omitted.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite no annotations, the description is highly transparent about the tool's behavior: it reads demand pressure using seasonality and equipment-crunch signals, computes bands, and returns indicative probabilities. It explicitly states that outputs are not a space guarantee or carrier quote, and discloses payment requirements (USDC on Base or prepaid key).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose but every sentence adds value. It could be slightly more structured (e.g., bullet points for outputs), but it effectively communicates complex logic without redundancy. The front-loading of purpose and context is good.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of an output schema, the description thoroughly explains the tool's return values (booking window, rollover probability, premium trade-off) and the logic behind them. It covers all parameters and provides a complete picture of the tool's capabilities and limitations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage, the description adds significant meaning beyond the schema. For example, 'criticality' is explained as 'how badly a rollover delay hurts' with possible values, and 'annual_containers' is linked to triggering named-account allocation. 'base_freight_per_container_usd' is contextualized as input to price premium and delay cost.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: to reserve space and provide booking strategy based on lane, ship date, and criticality. It outputs optimal booking window, rollover probability, and premium trade-off. The tool is distinct from siblings like get_spot_rate or carrier_recommendation, focusing on strategic booking decisions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use the tool ('When and how to RESERVE space so your box isn't rolled...') and contextual usage based on market conditions (peak/CNY vs slack). It does not explicitly name alternative tools but contrasts strategies (spot vs guaranteed booking), which helps in decision-making.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_tenderAInspect

Build the structure of a freight RFP / TENDER to put your ocean network out to bid. Pass your lanes with annual volumes and it returns, per lane, the volume + a modeled MARKET-RATE BAND (from our all-in rate engine, server-side) so you walk in knowing the credible price — the anchor that lets you spot a low-ball. Plus: the standard service requirements (fixed-day sailings, equipment commitment, reliability target, transparent surcharge formulas, free time), the AWARD CRITERIA weighted by your priority (cost / reliability / balanced), the BID SHEET columns carriers fill in, the RFP timeline (issue → Q&A → bids → evaluate → BAFO → award), and the modeled total annual spend. Pair with evaluate_bids to score the answers. Honest (regla 7): market bands are modeled, not filed tariffs. PREMIUM: pay per call with x402 (USDC on Base) or a prepaid key.

ParametersJSON Schema
NameRequiredDescriptionDefault
lanesYesThe lanes to tender. Each: { origin_port, dest_port, annual_volume, container_type? }.
priorityNoAward weighting: 'cost', 'reliability' or 'balanced' (default).
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses that market bands are modeled, not filed tariffs, and mentions payment options (pay per call with x402 or prepaid key). It does not cover auth needs or rate limits, but the honest note adds credibility.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but well-structured with front-loaded core action and bullet-like details. Every sentence adds value, though some trimming could improve conciseness without losing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of the tool and lack of output schema, the description is complete: it covers inputs, outputs (market-rate band, award criteria, bid sheet, timeline), integration with evaluate_bids, and the honesty disclaimer. No additional information is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the description adds significant meaning: it explains the lanes array structure (origin_port, dest_port, annual_volume, container_type?) and priority options ('cost', 'reliability', 'balanced'). It also details the output contents, compensating for no output schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool builds the structure of a freight RFP/tender, specifying the verb 'build' and the resource 'tender structure'. It distinguishes from siblings like evaluate_bids by mentioning pairing and from procurement_strategy by focusing on ocean network tender creation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says to pass lanes with annual volumes and recommends pairing with evaluate_bids. It implies use when putting ocean network out to bid, but does not explicitly state when not to use or provide alternatives beyond evaluate_bids.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

carbon_footprintAInspect

Compute the CO2e CARBON FOOTPRINT of a shipment and the EU-ETS carbon COST for a lane — the Scope-3 (upstream transport) number importers increasingly must report, and the maritime carbon cost they now must pay on EU-touching lanes. The rate tools price the money; this prices the CARBON. Returns the WELL-TO-WAKE (WTW) kg CO2e of the move computed the GLEC Framework / ISO 14083 way — grams CO2e per TONNE-KILOMETRE × the routed distance × the cargo mass — with a per-LEG breakdown (drayage + main sea/air leg) and the well-to-tank vs tank-to-wake split that reporting frameworks ask for. Ocean intensity is taken by VESSEL CLASS (a ULCV moves a tonne-km for a fraction of a feeder's gCO2e/t-km — the economy-of-scale effect a naïve estimate misses); the engine picks the corridor's mainline class and lengthens the sea distance when a lane is Cape-of-Good-Hope diverted (more km → more CO2e). It puts the THREE modes side by side — OCEAN vs AIR vs SEA-AIR — on the same lane & cargo, surfacing that air emits roughly 10-50× the ocean footprint per tonne-km (the central ESG-vs-speed trade-off, linking to compare_modes), with sea-air as the carbon-smart middle. For lanes that touch an EU/EEA port it computes the EU-ETS maritime carbon COST: the voyage CO2 in scope (100% intra-EU, 50% for an EU↔non-EU voyage) × the year's phase-in (2024 40% → 2025 70% → 2026 100%) × the EUA market price — the surcharge carriers now pass to cargo. A lane that doesn't touch the EU (e.g. Asia→US) is correctly OUT of scope (no ETS). It also clarifies FuelEU Maritime and — honestly — that CBAM taxes the PRODUCT's embedded carbon, NOT the freight (the confusion importers keep making). Every emission factor and the EUA price are MODELED bands tagged typical/modeled (regla 7) — indicative footprinting & carbon-cost modeling, NOT an audited per-vessel carbon statement or a filed surcharge. PREMIUM: pay per call with x402 (USDC on Base) or set a prepaid key (FREIGHT_PULSE_KEY). Same UN/LOCODE port normalization as get_spot_rate.

ParametersJSON Schema
NameRequiredDescriptionDefault
bandNoEmission-factor band to report: 'low', 'typical' or 'high'. Optional; default 'typical' (factors are honest bands, not a single audited number).
air_roleNoAir emission factor role: 'freighter' (default, higher intensity) or 'belly' (passenger-jet hold, lower allocation). Optional.
dest_portYesDestination port (city name, UN/LOCODE, or 'City, Country'). The destination COUNTRY drives EU-ETS scope (touching the EU/EEA brings the voyage into scope).
ship_dateNoIntended ship date (ISO 'YYYY-MM-DD'). The YEAR drives the EU-ETS phase-in (2024 40%, 2025 70%, 2026+ 100%). Optional; defaults to today.
volume_m3NoShipment volume in m³. Used for the AIR mode's IATA chargeable mass (max of actual and volumetric @167 kg/m³). Optional.
weight_kgNoActual cargo gross weight in kg. Strongly recommended — emissions are per tonne-km, so the real mass sharpens the footprint and the EU-ETS cost. If omitted, a modeled typical laden mass for the container is used.
origin_portYesOrigin port (city name, UN/LOCODE, or 'City, Country'). Same resolution as get_spot_rate. The origin COUNTRY drives EU-ETS scope.
eua_price_eurNoOverride the EUA (EU Allowance) market price in €/tonne for the EU-ETS cost. Optional; defaults to a modeled typical (~€75) within a €55-100 band.
container_typeNoContainer size '20ft'/'40ft'/'40HC'. Optional; defaults to '40ft'. Drives the modeled typical laden cargo mass when no weight is given.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It details computation method (GLEC/ISO), per-leg breakdown, vessel class effects, EU-ETS phase-in, and notes that factors are modeled bands, not audited. It also mentions payment via x402 or key.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long and dense, but front-loaded with purpose. It covers many details without being overly verbose for the complexity. However, it could be more concise by grouping some information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (9 params, no output schema, no annotations), the description is very complete. It explains return values (per-leg breakdown, EU-ETS cost), addresses edge cases (non-EU lanes, no weight), and mentions reporting frameworks and modeling assumptions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds significant value beyond schema by explaining why weight_kg is recommended, how container_type drives default mass, and details on eua_price_eur override and air_role options.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it computes CO2e carbon footprint and EU-ETS carbon cost for a shipment. It distinguishes itself from sibling tools like compare_modes and get_spot_rate by explicitly comparing modes and noting that rate tools price money while this prices carbon.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit context for when to use (ESG reporting, EU-ETS compliance) and notes that CBAM taxes the product, not freight, clarifying a common confusion. However, it does not explicitly state when not to use, though the context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

carrier_recommendationAInspect

Recommend WHICH CARRIER or ALLIANCE to sail with on a lane — the shipper's third decision after 'when to book' and 'which mode'. Carriers and their alliances differ enormously by corridor in coverage, schedule reliability and network breadth, so this ranks the ones that actually serve YOUR corridor and recommends 2-3 with the reasoning. Models the 2025-26 alliance realignment (NOT the pre-2025 map): GEMINI COOPERATION (Maersk + Hapag-Lloyd, live Feb 2025, a hub-and-spoke model explicitly targeting >90% on-time), OCEAN ALLIANCE (CMA CGM + COSCO + Evergreen + OOCL — the broadest direct-call network & highest frequency), PREMIER ALLIANCE (ONE + HMM + Yang Ming, the former THE Alliance minus Hapag, strong transpacific), and MSC operating standalone (the world's largest fleet, vast breadth, selective slot deals) — plus niche independents (ZIM's Asia→US-East express, Wan Hai intra-Asia). For each option it returns the EXPECTED ON-TIME PERFORMANCE on this lane (the corridor's market OTP refined by the carrier's own reliability band and how much it governs the string — so Gemini surfaces ~90% vs ~55% market average on Asia-Europe), the estimated SAILING FREQUENCY (sailings/week) and network breadth, a cost-positioning read, an overall fit SCORE, and the trade-off. The ranking FLIPS with your PRIORITY: 'reliability' floats Gemini up; 'frequency' or 'cost' floats Ocean Alliance / MSC up; a carrier with no network on the corridor is NOT recommended there. It also REFINES the lane OTP to the top pick so you can feed it into your p90 lead-time buffer. Every figure is a MODELED INDICATIVE BAND (capacity shares ~Alphaliner picture, reliability ~Sea-Intelligence rankings, corridor strengths) — NOT a carrier quote, a filed tariff or a weekly KPI (regla 7). PREMIUM: pay per call with x402 (USDC on Base) or set a prepaid key (FREIGHT_PULSE_KEY). Same UN/LOCODE port normalization as get_spot_rate.

ParametersJSON Schema
NameRequiredDescriptionDefault
priorityNoWhat the shipper optimizes for: 'reliability' (on-time, favours Gemini), 'frequency' (sailings/week, favours Ocean/MSC), 'cost' (cheapest-leaning), or 'balanced' (default). Synonyms accepted.
dest_portYesDestination port (city name, UN/LOCODE, or 'City, Country').
ship_dateNoIntended ship date (ISO 'YYYY-MM-DD'). Sets the corridor's market-baseline OTP (Cape diversion + seasonal blank-sailing pressure) the ranking is refined from. Optional; defaults to today.
origin_portYesOrigin port (city name, UN/LOCODE, or 'City, Country'). Same resolution as get_spot_rate.
container_typeNoContainer size '20ft'/'40ft'/'40HC' (informational for the lane label). Optional; defaults to '40ft'.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully carries the burden. It details modeled indicative bands, premium payment, port normalization, priority-driven ranking, and refinement of lane OTP. It also states what the tool does NOT provide (quotes, tariffs, weekly KPIs).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the primary purpose but is lengthy due to detailed alliance history and premium payment info. While well-structured, it could be slightly more concise for an AI agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description explains return fields (expected on-time performance, sailing frequency, network breadth, cost-positioning, fit score, trade-off). It covers corridor integration, priority effects, and feed into lead-time buffer. Fully complete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all 5 parameters. The description adds context on how priority affects ranking and how ship_date sets market baseline, going beyond the schema. However, the schema alone already provides adequate meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states it 'recommend WHICH CARRIER or ALLIANCE to sail with on a lane' and distinguishes the decision context as the 'third decision after when to book and which mode'. It is specific about modeling the 2025-26 realignment, clearly defining the tool's purpose and resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage after deciding time and mode, but does not explicitly state when to use versus alternatives like select_provider or booking_strategy. No when-not or exclusion criteria are given, though the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_lc_documentsAInspect

Will your letter-of-credit documents GET PAID? Banks reject roughly 60-70% of first-presentation documentary-credit submissions over DOCUMENTARY DISCREPANCIES. Give the fields of the credit + the presented documents (commercial invoice, bill of lading, insurance, packing list) and it applies the UCP 600 rules a trade-finance checker uses, returning the DISCREPANCIES that would make an examining bank reject the presentation — each tied to its UCP article with a remedy: invoice amount over the credit (art. 18/30 tolerances), currency mismatch (art. 18a), goods description not CORRESPONDING to the credit (art. 18c), data conflict across documents (art. 14), late shipment vs the latest-shipment date, STALE presentation (>21 days, art. 14c) or after expiry, port-of-loading/discharge mismatch on the B/L (art. 20), a non-clean B/L (art. 27), and insurance <110% of CIF / wrong currency / dated after shipment (art. 28). It reports clean-vs-rejected, the severity mix, what it checked and what it couldn't. Links to iter12 trade finance. ⚠️ The examining bank determines compliance under UCP 600 + ISBP 821 document-by-document; many discrepancies are judgement calls or waivable — MODELED pre-check, NOT a bank determination or legal advice (regla 7). PREMIUM: pay per call with x402 (USDC on Base) or a prepaid key.

ParametersJSON Schema
NameRequiredDescriptionDefault
blCleanNoIs the B/L clean (no defect clause)?
incotermNoCredit incoterm (CIF/CIP trigger the insurance check).
expiryDateNoCredit expiry date (YYYY-MM-DD).
beneficiaryNoCredit beneficiary (the seller).
creditAmountNoThe credit (LC) amount.
shipmentDateNoOn-board / shipment date on the B/L (YYYY-MM-DD).
insuranceDateNoInsurance document date (YYYY-MM-DD).
insuredAmountNoInsured amount on the insurance document.
invoiceAmountNoCommercial invoice amount.
portOfLoadingNoCredit's required port of loading.
creditCurrencyNoCredit currency (e.g. USD).
amountToleranceNoAmount tolerance fraction (e.g. 0.05 = ±5%). Default 0.
blPortOfLoadingNoPort of loading on the B/L.
insuredCurrencyNoInsurance currency.
invoiceCurrencyNoInvoice currency.
portOfDischargeNoCredit's required port of discharge.
presentationDateNoDate documents are presented to the bank (YYYY-MM-DD).
blPortOfDischargeNoPort of discharge on the B/L.
insuranceRequiredNoDoes the credit require an insurance document?
invoiceBeneficiaryNoWho issued the invoice.
latestShipmentDateNoLatest shipment date (YYYY-MM-DD).
creditGoodsDescriptionNoGoods description as written in the credit.
presentationPeriodDaysNoPresentation period in days (UCP default 21).
invoiceGoodsDescriptionNoGoods description on the invoice.
packingListGoodsDescriptionNoGoods description on the packing list.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries full burden. It discloses the tool's behavior: applies UCP 600 rules, returns discrepancies with remedies, reports clean/rejected status and severity. It also warns about judgement calls and waivable discrepancies. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but dense with information, front-loading the key question and then detailing specific checks. Every sentence adds value; no fluff. Could be slightly more structured but appropriate for the complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 25 parameters, no output schema, and no annotations, the description is remarkably complete. It explains the input requirements, the list of checks, the output format, and even monetization. Nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds significant context beyond schema by explaining which parameters are involved in specific checks (e.g., invoice amount, currency, shipment dates) and how they interact, making the parameter relationships clearer.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool checks letter-of-credit documents for discrepancies, using a specific verb 'check' and resource 'letter-of-credit documents'. It distinguishes from all siblings, which are logistics/supply chain tools with no overlap.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description opens with a direct question about getting paid, setting clear context. It explains when to use the tool and provides warnings about its modeled nature and legal disclaimer. No explicit 'when not to use' is given, but the domain is well-defined and no sibling alternatives exist.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_watchesAInspect

Evaluate the lane watches you registered with create_watch against the LIVE modeled market and return the alerts that FIRED. For each watch it gathers the current cross-validated spot + direction, the modeled lane reliability, any active disruptions, and (when a watch needs it) the forecast/timing book call + expected move, then checks every threshold and reports which ones tripped — with the observed value, the reason and a severity. Pass a watch_id to check just one, or omit it to evaluate them all. This is the daily poll that turns freight-pulse into a standing watchtower on your network. Honest (regla 7): modeled signals, verify before acting. PREMIUM: pay per call with x402 (USDC on Base) or a prepaid key.

ParametersJSON Schema
NameRequiredDescriptionDefault
watch_idNoEvaluate only this watch id. Optional — omit to evaluate all your watches.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully describes internal steps: gathering cross-validated spot, reliability, disruptions, forecasts, and checking thresholds. It also discloses that results are modeled signals (regla 7) and that the tool is premium (pay per call), ensuring no surprises.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long and includes marketing flair ('turns freight-pulse into a standing watchtower') and a 'regla 7' disclaimer, which adds bulk. While well-structured, it could be more concise without losing key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description compensates by describing return fields (observed value, reason, severity). It covers input parameter, internal logic, and usage context, though lacks explicit output type details. Overall sufficient for agent understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a simple optional watch_id. The description adds context by explaining the parameter's effect (check one vs all) and usage, going beyond the schema's basic description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool evaluates lane watches and returns fired alerts, referencing create_watch as the registration tool. It specifies that it checks against LIVE modeled market and lists output details, making purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates when to use (after create_watch) and how (by watch_id or all), but does not explicitly exclude other contexts or compare to sibling tools like check_lc_documents. However, the paired relationship with create_watch provides clear usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cold_chainAInspect

Cold-chain / pharma (GDP) compliance for a TEMPERATURE-CONTROLLED shipment — beyond a reefer setpoint. Give the lane + the product (e.g. 'pharma vaccines 2-8°C', 'frozen seafood', 'bananas') or a sensitivity class, and it returns the temperature requirement, the THERMAL-EXCURSION risk across the transit, the recommended MODE + thermal packaging, and the GDP datalogger/chain-validation needs. The core insight: excursion risk RISES with transit DURATION. It reads the iter3 transit p90 for the ocean routing and runs a survival model per packaging option (ocean active reefer, ocean qualified-passive PCM/VIP, active air) — a long Cape-diverted reefer accumulates far more deviation exposure (and a gen-set/fuel/plug failure tail) than a 3-day air leg. Each option is totalled = freight + packaging premium + monitoring + EXPECTED THERMAL LOSS (excursion × loss-fraction × cargo value), and the lowest-total option wins. Proves: pharma 2-8°C on a long transit → high excursion risk → fly it with active cooling OR use qualified passive packaging; a frozen load on a short lane → ocean reefer is fine. For GDP cargo it mandates continuous data-logging, pre-cool, a validated lane and a documented chain. Honest (regla 7): INDICATIVE GDP/cold-chain model — excursion probabilities, MKT, packaging performance and loss fractions are modeled typicals, NOT a GDP qualification, stability statement or QA release. PREMIUM: pay per call with x402 (USDC on Base) or a prepaid key.

ParametersJSON Schema
NameRequiredDescriptionDefault
unitsNoNumber of units (with unit_value_usd). Optional.
productNoProduct description — 'pharma vaccines 2-8°C', 'frozen seafood', 'bananas', 'fresh produce', 'insulin'. Sets the temperature requirement & sensitivity.
dest_portYesDestination port.
ship_dateNoShip date (YYYY-MM-DD) — selects the transit/diversion state. Optional; default today.
origin_portYesOrigin port (city name, UN/LOCODE, or 'City, Country').
sensitivityNoExplicit sensitivity class — ambient | cool | chilled | frozen | pharma | pharma-critical. Overrides the product match. Provide this OR 'product'.
container_typeNoContainer '20ft'/'40ft'/'40HC'. Optional; default '40ft'.
unit_value_usdNoPer-unit value (USD) — with 'units', an alternative to cargo_value_usd. Optional.
cargo_value_usdNoTotal cargo value (USD) — drives the expected-loss economics. Optional; a class default is used if omitted.
ocean_freight_usdNoOverride the ocean all-in freight per container (USD). Optional — derived if omitted.
air_freight_multipleNoAir freight as a multiple of ocean (default ~6-7×). Optional.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It thoroughly explains the underlying model (survival model per packaging option, cost breakdown including expected thermal loss), provides an honest disclaimer about indicative nature, and mentions payment requirements. This is highly transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose, spanning multiple paragraphs with technical details. It is well-structured and front-loaded with the main purpose, but could be more concise. Every sentence adds value, but overall length detracts from quick consumption.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema is provided, so the description must explain return values. It does so comprehensively: lists outputs (temperature requirement, excursion risk, recommended mode, packaging, GDP needs, total cost comparison) and explains the logic. For a complex tool with 11 parameters, the description is highly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds context for some parameters (e.g., product examples like 'pharma vaccines 2-8°C', sensitivity classes, unit values) but does not go into depth for all 11 parameters. It adds some value beyond the schema but not extensively.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: providing cold-chain/pharma GDP compliance recommendations for temperature-controlled shipments. It specifies inputs (lane and product) and outputs (temperature requirement, excursion risk, recommended mode, packaging, GDP needs). It effectively distinguishes itself from sibling tools by focusing on a specialized niche.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit guidance on when to use the tool: for temperature-controlled shipments requiring cold-chain compliance. It compares modes (ocean vs. air) and packaging options, and mentions specific scenarios (e.g., pharma 2-8°C, frozen seafood). It lacks explicit 'when not to use' statements, but the context makes it clear that this is for detailed cold-chain analysis, not general logistics.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compare_modesAInspect

Decide the TRANSPORT MODE for a shipment — OCEAN vs AIR vs SEA-AIR — on TOTAL economic cost, not just freight. The other tools price the ocean move; this one answers the importer's prior question: should these goods even go by sea? It costs all three modes and recommends the economically optimal one. Air is priced correctly on the IATA CHARGEABLE WEIGHT = max(actual gross weight, volumetric weight at 167 kg/m³) with an air fuel (FSC) + security (SSC) + handling stack — so bulky-but-light cargo is properly penalised (the lever a naïve 'air is just faster' estimate misses). Sea-air is modeled via the real hubs (Asia→Europe via Dubai/Jebel Ali, Asia→US-East via a US-West gateway): a cheap ocean leg to the hub + a short air final leg. The recommendation runs a real DECISION MODEL: cost of CAPITAL tied up in transit (value × annual rate × days), a p90 safety-stock HOLDING cost from each mode's variability, and — if you pass a deadline — an EXPECTED STOCKOUT cost from the probability the mode arrives late. So for high-value goods (or a tight deadline) air/sea-air can win even though the freight is far dearer, while for cheap goods ocean's much lower freight dominates. Returns the full ocean/air/sea-air table (freight, p50/p90 transit, capital, holding, stockout, total economic cost) + the recommended mode + the trade-off math. Every figure is modeled and tagged; air rates are volatile so they are honest BANDS, not a quote. PREMIUM: pay per call with x402 (USDC on Base) or set a prepaid key (FREIGHT_PULSE_KEY). Same UN/LOCODE port normalization as get_spot_rate.

ParametersJSON Schema
NameRequiredDescriptionDefault
bandNoAir/sea-air rate band to use: 'low', 'typical' or 'high'. Optional; default 'typical'.
valueYesMerchandise value in USD — REQUIRED. It is the capital tied up in transit and the basis of the whole mode trade-off.
deadlineNoOptional hard arrival deadline (ISO 'YYYY-MM-DD'). If given, the engine adds an expected-stockout cost from each mode's probability of arriving late.
dest_portYesDestination port (city name, UN/LOCODE, or 'City, Country').
free_daysNoCarrier free days before D&D on the ocean leg (default 5 if a dwell is given). Optional.
ship_dateNoIntended ship date (ISO). Drives the ocean seasonal surcharges & transit window. Optional; defaults to today.
volume_m3NoShipment volume in cubic metres. Drives the IATA volumetric weight (m³ × 167 kg). Provide this and/or weight_kg.
weight_kgNoShipment gross weight in kg. Provide this and/or volume_m3 — air is billed on the chargeable weight (max of actual and volumetric).
fuel_proxyNoOptional VLSFO $/tonne for the ocean BAF model. Optional.
overweightNoFlag an overweight ocean load (freight surcharge). Optional.
origin_portYesOrigin port (city name, UN/LOCODE, or 'City, Country'). Same resolution as get_spot_rate.
container_typeNoContainer size '20ft'/'40ft'/'40HC' for the ocean leg. Optional; defaults to '40ft'.
jet_fuel_proxyNoOptional jet-fuel proxy to drive the air FSC. Omit for a modeled reference level.
stockout_penaltyNoUSD penalty if the goods miss the deadline (lost sale / line-down / expedite). Defaults to the goods' value when a deadline is given without one. Optional.
estimated_days_at_portNoDays the box dwells at destination (adds D&D to the ocean freight leg). Optional.
annual_capital_rate_pctNoAnnual cost-of-capital as a fraction (e.g. 0.12 = 12%/yr) for goods in transit. Optional; default 0.12.
annual_holding_rate_pctNoAnnual inventory holding/carrying rate as a fraction (e.g. 0.25 = 25%/yr) for the p90 safety-stock buffer. Optional; default 0.25.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully carries the burden. It discloses the decision model (capital cost, holding cost, stockout cost), the IATA chargeable weight calculation, air rate volatility (bands not quotes), and return format. All behavioral traits are transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is detailed but front-loaded with the core purpose. Every sentence provides necessary context for a complex tool; however, slight redundancy exists (e.g., repeated emphasis on economic cost). Slightly above average conciseness given the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite 17 parameters and no output schema, the description fully explains the model, return values (table with columns), and each parameter's role. It is complete and self-contained for an agent to understand how to invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers 100% of parameters, but the description adds significant contextual meaning, such as explaining 'value' as capital tied up, volume/weight relation to volumetric weight, and the role of each parameter in the decision model.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: to decide the transport mode (ocean, air, sea-air) based on total economic cost. It distinguishes itself from sibling tools by noting that other tools price the ocean move, while this one answers the prior question of mode selection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly explains when to use this tool (before deciding mode) and contrasts it with alternatives that price ocean moves. It also covers payment details and port normalization, providing comprehensive usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

contingency_planAInspect

'My route just broke — what do I do AHEAD of the next sailing?' Give a lane and it detects the ACTIVE disruption (Red-Sea/Bab-el-Mandeb, Panama Canal drought, port labour strike, typhoon/hurricane, peak congestion — reusing the disruption catalogue) and generates an ACTIONABLE response playbook: alternate ROUTING (Cape of Good Hope), MODAL-SHIFT (air/sea-air the urgent slice), PORT-SWAP (divert to the unaffected coast/gateway), PRE-POSITION (build buffer ahead of the window), RE-PRIORITISE — each PRICED against the lane's real freight & lead time: the modeled cost (USD) and time (days) of plan B versus HOLDING. It ranks the plays by your urgency (cost-first vs time-first) and recommends one. Pass disruption_type to model a specific what-if even if it isn't currently active. Honest (regla 7): MODELED, indicative response options & deltas — not a guarantee of alternate-routing space; validate availability with your carrier/forwarder. PREMIUM: pay per call with x402 (USDC on Base) or a prepaid key.

ParametersJSON Schema
NameRequiredDescriptionDefault
urgencyNo'cost' (minimise spend), 'time' (minimise delay) or 'balanced'. Optional; default balanced.
dest_portYesDestination port.
ship_dateNoShip date (YYYY-MM-DD) — selects which seasonal/dated disruptions are active. Optional; default today.
origin_portYesOrigin port (city name, UN/LOCODE, or 'City, Country').
container_typeNoContainer '20ft'/'40ft'/'40HC'. Optional; default '40ft'.
disruption_typeNoForce a specific disruption: 'red-sea' / 'panama' / 'labor' / 'weather' / 'peak' (else the most severe active one is chosen; an inactive type is modeled as a what-if). Optional.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It explains that the tool models active disruptions, generates priced alternatives, and ranks them by urgency. The disclaimer 'MODELED, indicative... not a guarantee' honestly sets expectations. It also discloses the premium payment model, providing full behavioral transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose and includes marketing-like text ('PREMIUM: pay per call...') which is not essential for tool selection. The first sentence does a good job front-loading the purpose, but the overall length could be trimmed without losing necessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having no output schema, the description provides a thorough explanation of what the tool returns (routing, modal-shift, port-swap options with costs and times) and how it works (ranks by urgency, recommends). It includes disclaimers and parameter default behaviors, making it complete for an AI agent to decide to invoke it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining the meaning of urgency values ('cost', 'time', 'balanced') and that disruption_type can model a what-if scenario. This goes beyond the schema's descriptions, but the additional detail is not extensive.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool detects active disruptions and generates a playbook with routing alternatives. It uses specific verbs ('generate', 'detect') and resource ('playbook for lane disruption'), distinguishing it from sibling tools that handle other logistics tasks like rates or sourcing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The opening line 'My route just broke...' directly tells when to use the tool. It implies usage for impending disruptions. While it doesn't explicitly list when not to use, the context of needing an actionable response alternatives makes the use case clear. No specific alternatives mentioned but the sibling list implies differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_watchAInspect

Register a standing WATCH on a lane so freight-pulse alerts you when something changes — the feature that makes it a recurring daily tool, not a one-shot lookup. Give a lane + one or more THRESHOLDS and it persists the watch SERVER-SIDE (in our own store, per your key): 'spot-below' / 'spot-above' a USD level (buying window / cost ceiling), 'reliability-below' a score (rollover/delay risk), 'disruption' (any active disruption appears on the corridor/ports), 'book-now' (the forecast/timing engine flips to a book-now window), or 'forecast-rising' / 'forecast-falling' beyond a % move (act early / wait). It returns the watch id and the registered thresholds. Pair it with check_watches, which your agent polls (e.g. daily) to get back only the alerts that fired. Honest (regla 7): evaluated against modeled engine outputs — an alert is a signal to look, not a booking trigger. PREMIUM: pay per call with x402 (USDC on Base) or a prepaid key.

ParametersJSON Schema
NameRequiredDescriptionDefault
labelNoOptional name for the watch.
dest_portYesDestination port to watch.
thresholdsYesConditions to fire on. Each: { metric, value? }. metric ∈ spot-below | spot-above | reliability-below | disruption | book-now | forecast-rising | forecast-falling. value: USD for spot-*, 0-100 for reliability-below, % for forecast-*. e.g. [{ metric:'spot-below', value:2800 }, { metric:'disruption' }].
origin_portYesOrigin port to watch.
container_typeNoContainer '20ft'/'40ft'/'40HC'. Optional; default '40ft'.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description thoroughly discloses behavioral traits: server-side persistence, per-key scope, return of watch id and thresholds, evaluation against modeled engine outputs, and pricing model. It also clarifies alerts are signals, not booking triggers.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured, front-loaded with purpose, and uses bullet-like formatting for thresholds. Despite length, every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 params, no output schema, and complex thresholds, the description covers creation behavior, return values, integration with check_watches, and even pricing. No gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite high schema coverage (100%), the description adds significant value by explaining each threshold metric in plain language with examples, noting the default container_type, and giving a usage example. This goes beyond the schema's enum descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool registers a standing watch on a lane for alerts, with a specific verb 'register' and resource 'watch'. It distinguishes itself from sibling tools like check_watches by explaining the pairing pattern and labels it as a recurring daily tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use this tool (to create persistent watches with thresholds) and mentions pairing with check_watches for polling alerts. However, it does not explicitly list when not to use it or direct alternatives among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

customs_optimizationAInspect

Find the DUTY-SAVING levers a customs broker knows but the importer usually does not — and quantify each against your shipment's REAL landed-cost duty. Give a product (or HS code) + the lane + the FOB value + your trade FLOW (import & sell / re-export / import-components-assemble-re-export / store), and it returns, ranked by saving: DUTY DRAWBACK (US 99% recovery of duties on goods you re-export — honestly flagging that Section 301 is NOT drawback-eligible, the big China carve-out); FOREIGN-TRADE ZONE / FREE ZONE (eliminate duty on the re-exported share, defer it on the rest, inverted-tariff election); BONDED / CUSTOMS WAREHOUSE (defer the duty cash-flow until withdrawal, or avoid it on re-export); EU/UK INWARD PROCESSING (suspend duty on inputs you process & re-export) and OUTWARD PROCESSING (duty only on value added abroad); FIRST-SALE valuation (US — value on the lower factory price, cutting MFN AND 301 proportionally); and TARIFF ENGINEERING (legally reclassify to a lower-duty HS line). Each lever shows the money saved, whether it's cash-back vs cash-flow-deferral vs a rate/base cut, and the catch — plus a clearance-workflow checklist. Reuses the real landed-cost engine so the duty base, 301/232/FTA stack and import VAT are genuine. ⚠️ Aduanas are complex: every figure is MODELED, INDICATIVE planning intelligence, NOT customs/legal/tax advice — confirm eligibility and obtain binding rulings with a licensed broker (regla 7). PREMIUM: pay per call with x402 (USDC on Base) or a prepaid key. Same UN/LOCODE port normalization as get_spot_rate.

ParametersJSON Schema
NameRequiredDescriptionDefault
flowNoThe goods flow: 'import-consume' (sell domestically, default), 'import-reexport', 'import-assemble' (components→assemble→re-export), or 'import-store'. Free text accepted.
hs_codeNoExplicit HS code (6+ digits). Provide this OR product.
productNoProduct description to classify (e.g. 'bluetooth earbuds'). Provide this OR hs_code.
dest_portYesDestination port — its country sets the customs bloc & regimes.
fob_valueYesMerchandise value (FOB) in USD. REQUIRED — it's the duty base.
origin_portYesOrigin port (city name, UN/LOCODE, or 'City, Country').
container_typeNoContainer '20ft'/'40ft'/'40HC'. Optional; default '40ft'.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It discloses that figures are modeled, indicative planning intelligence, not legal/tax advice, and that eligibility must be confirmed with a licensed broker. It also mentions premium payment and reuse of the landed-cost engine.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is relatively long but front-loaded with the core purpose and required inputs. Some details could be condensed, but the structure is logical and the warning about non-legal advice is appropriately placed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description thoroughly explains return values (ranked levers with savings, type, catch, and checklist). It also covers payment model and integration with the landed-cost engine, fully addressing the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds significant meaning: clarifies mutual exclusivity of hs_code and product, explains flow options in detail, describes dest_port's role in setting customs bloc, and emphasizes fob_value as the duty base.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool finds and quantifies duty-saving levers, given product/HS code, lane, FOB value, and trade flow. It lists specific levers (duty drawback, FTZ, etc.) and distinguishes from siblings like customs_valuation by focusing on optimization strategies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states required inputs (product/HS code, lane, FOB value, trade flow) and what the tool returns. While it doesn't explicitly state when not to use it or name alternatives, the context is clear enough for an agent to infer appropriate use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

customs_valuationAInspect

Compute the correct DUTIABLE BASE on which the duty is charged — it is NOT just the invoice. Under the WTO Customs Valuation Agreement, give the destination country + invoice price + Incoterm and it builds the TRANSACTION VALUE: it normalises the price to an FOB-origin base (stripping freight/insurance/destination/duty a CIF or DDP price already carries), then ADDS the statutory additions importers forget — ASSISTS (free tooling/moulds/design — inflate the base), royalties, SELLING commission, packing — while EXCLUDING buying commission and post-import costs, and applies the COUNTRY BASIS: CIF (EU & most — international freight+insurance IN the base) vs FOB (US — excluded). It returns the line-by-line base, the duty on the correct base vs the naive invoice (the over/under-payment), and the DEDUCTIVE (resale-back-calc) and COMPUTED (cost build-up) methods when there is no transaction value. Honest (regla 7): INDICATIVE model of the method hierarchy & adjustments; related-party tests, first-sale and assist apportionment are case-specific — NOT a customs ruling or legal advice. PREMIUM: pay per call with x402 (USDC on Base) or a prepaid key.

ParametersJSON Schema
NameRequiredDescriptionDefault
methodNo'transaction-value' (default), 'deductive' or 'computed'.
incotermNoIncoterm of the price (EXW/FOB/CIF/DDP…). Optional; default FOB.
per_unitNoIs invoice_price_usd a PER-UNIT figure? Optional; default false (total).
assists_usdNoAssists supplied free (tooling/moulds/materials/design), TOTAL USD — ADD to base. Optional.
packing_usdNoPacking & containers cost, TOTAL USD. Optional.
dest_countryYesDestination country ISO2 (US, DE, GB, …). REQUIRED — sets the CIF/FOB basis.
duty_rate_pctNoModeled duty rate (0.075 or 7.5) to value the over/under-payment vs the naive invoice. Optional.
insurance_usdNoInternational insurance, TOTAL USD (in base on CIF basis only). Optional.
royalties_usdNoRoyalties/licence fees that are a condition of sale, TOTAL USD. Optional.
quantity_unitsNoQuantity of units (for per-unit assists apportionment & per-unit output). Optional; default 1.
resale_price_usdNoDeductive method: destination unit resale price (USD).
invoice_price_usdNoThe price actually paid/payable (total, or per-unit if per_unit=true). REQUIRED for transaction value.
resale_margin_pctNoDeductive: resale gross margin to deduct (0.30). Optional; default 0.30.
baked_import_duty_usdNoImport duty/tax baked into a DDP price, TOTAL USD — stripped out. Optional.
buying_commission_usdNoBuying commission (to buyer's own agent), TOTAL USD — NOT dutiable (shown excluded). Optional.
deductible_inland_usdNoDeductive: per-unit post-import freight+duties to deduct (USD). Optional.
computed_unit_cost_usdNoComputed method: built-up unit cost (materials+fabrication+profit+expenses), USD.
selling_commission_usdNoSelling commission (to seller's agent), TOTAL USD — dutiable. Optional.
international_freight_usdNoInternational freight to the import port, TOTAL USD (in base on CIF basis only). Optional.
post_import_transport_usdNoPost-import transport/destination charges baked into a DAP/DDP price, TOTAL USD — stripped out. Optional.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, but description fully discloses behavior: normalizes to FOB origin, adds statutory additions, excludes non-dutiable items, applies country basis (CIF/FOB). Also mentions it is an indicative model and not legal advice. Premium payment method included.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is long but well-structured and informative. Front-loaded with core purpose. Every sentence adds value given the complexity of customs valuation. Could be slightly more concise, but no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite 20 parameters and no output schema, the description explains what outputs to expect (line-by-line base, over/under-payment, alternative methods). Covers methods, adjustments, disclaimers, and premium payment. Fully adequate for agent to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage, but description adds significant meaning beyond parameter descriptions, e.g., explains how destination country sets CIF/FOB basis, how assists and commissions affect the base, and the role of each parameter in the valuation logic.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it computes the dutiable base for customs duty, not just the invoice price. Mentions WTO Customs Valuation Agreement, multiple methods, and specific adjustments. Distinct from sibling tools like 'customs_optimization' or 'get_landed_cost'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context: requires destination country, invoice price, and Incoterm. Explicitly states it is not a legal ruling. However, does not name specific alternatives among siblings when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

decarbonization_roadmapAInspect

A PROGRAMME to cut the carbon of your transport network to a target. Give a lane (or an annual network footprint in tonnes CO2e) and a reduction TARGET %, and it walks the abatement levers cheapest-$/tCO2e first on a marginal-abatement-cost curve: MODAL SHIFT (air→ocean / →sea-air — the biggest lever, often NEGATIVE cost because it also saves freight), CONSOLIDATION, EFFICIENT CARRIER, SAF book-and-claim (sustainable aviation fuel), ALTERNATIVE MARINE FUEL (green-methanol book-and-claim), and — last — VERIFIED OFFSETS. It returns the ordered roadmap with each lever's tonnes abated, cost and running marginal cost, the total programme cost and blended $/tCO2e, an honest REDUCTION-vs-OFFSET split (insetting > offsetting), and the EU-ETS € SAVING from the lower in-scope footprint. Honest (regla 7): MODELED, indicative abatement costs/ceilings (SAF & offset prices are volatile and quality-dependent); offsets are flagged compensation, NOT reduction, and a target beyond what reduction levers reach is clearly labelled. PREMIUM: pay per call with x402 (USDC on Base) or a prepaid key.

ParametersJSON Schema
NameRequiredDescriptionDefault
cost_bandNoCost sensitivity: 'low' / 'typical' / 'high'. Optional; default typical.
dest_portNoDestination port. Optional if baseline_co2e_tonnes is given.
ship_dateNoShip date (YYYY-MM-DD) — drives the EU-ETS phase-in year. Optional.
weight_kgNoCargo weight for the lane emissions baseline (kg). Optional.
origin_portNoOrigin port (for a lane-based baseline). Optional if baseline_co2e_tonnes is given.
allowed_leversNoRestrict to specific lever ids (modal-shift-air-to-ocean, consolidation, saf-book-and-claim, alt-marine-fuel, verified-offsets, …). Optional; default all.
container_typeNoContainer '20ft'/'40ft'/'40HC'. Optional; default '40ft'.
reduction_targetNoReduction target as a fraction (0.30) or percent (30). Optional; default 0.30.
baseline_co2e_tonnesNoSupply an annual NETWORK footprint (tonnes CO2e) instead of deriving from a lane. Optional.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses behavioral traits: it uses a cost-ordered lever selection, returns detailed output (costs, reduction vs offset split, EU-ETS savings), and includes an honesty note about modeled indicative costs and offset flagging. This exceeds transparency expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is somewhat lengthy but front-loaded with the core purpose and process. Every sentence adds value, and the structure is logical (input, process, output, caveats). Could be slightly trimmed but remains efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 9 parameters, no output schema, and moderate complexity, the description is remarkably complete. It explains inputs, the algorithmic approach, output contents, and limitations. No output schema exists, but the description compensates fully by describing return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds meaning by explaining how parameters like cost_band, ship_date, and the relationship between port parameters and baseline_co2e_tonnes are used, enhancing understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a decarbonization roadmap for a transport network, specifying required inputs (lane or annual footprint, target %) and detailing the process (marginal abatement cost curve with specific levers). This distinguishes it from siblings like carbon_footprint, which likely only calculates footprint.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use the tool: when you have a lane or network footprint and a reduction target. It does not explicitly state when not to use or list alternatives, but the purpose is clear enough for an agent to decide. Could be improved with exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dnd_strategyAInspect

Optimize the DEMURRAGE & DETENTION free-time strategy for a destination — beyond the simple D&D line: how many FREE DAYS should you negotiate, and what is the EXPECTED D&D cost of accepting fewer, given how long the box will actually DWELL at this (possibly congested) port? It reads the destination port's CONGESTION on your ship date and builds a DWELL DISTRIBUTION (mean + the right tail that a busy port fattens), then for a ladder of candidate free-day grants computes the PROBABILITY of breaching free time (incurring any D&D), the EXPECTED chargeable days, the EXPECTED D&D cost (on the destination region's tiered, escalating per-day schedule — US West-Coast steep, North-Europe gentler) and the p90 bad-case cost. It finds the marginal value of each extra free day and recommends a free-day TARGET — 'in this congested port the dwell tail is fat, so the default 4-5 free days carries $X expected D&D; negotiate 7+'. Demurrage (box sits FULL in the terminal) and detention (box held OUTSIDE past the empty-return grace) are modeled together as combined free time. Pass a carrier to refine the default grant, or your own mean dwell if you know your unpack speed. Modeled from industry-typical regional free days + a congestion-driven dwell distribution — NOT a carrier's filed free-time tariff (regla 7). PREMIUM: pay per call with x402 (USDC on Base) or set a prepaid key (FREIGHT_PULSE_KEY). Same UN/LOCODE port normalization as get_spot_rate.

ParametersJSON Schema
NameRequiredDescriptionDefault
carrierNoOptional carrier — refines the default free-day grant (mega lines often grant a touch more).
dest_portYesDestination port — its congestion drives the dwell distribution and the regional D&D schedule.
ship_dateNoIntended ship date (ISO 'YYYY-MM-DD'). The destination congestion (peak windows, disruptions) is evaluated for THIS date. Optional; defaults to today.
origin_portYesOrigin port (city, UN/LOCODE, or 'City, Country').
max_free_daysNoHighest free-day grant to evaluate (default 10 or default+4).
min_free_daysNoLowest free-day grant to evaluate (default 3).
container_typeNoContainer size '20ft'/'40ft'/'40HC' (drives the per-day D&D rate). Optional; defaults to '40ft'.
mean_dwell_daysNoOverride the modeled mean dwell (days) with your own unpack/return speed. Optional.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description fully carries the burden. It reveals the model's inputs (congestion, dwell distribution), outputs (probability, expected costs, recommendation), limitations (NOT carrier's filed tariff), and payment method. This is comprehensive and clear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is detailed but front-loaded with the main purpose. It contains all necessary information, though some sections (e.g., payment options) are less critical for tool invocation. Overall well-structured with minimal redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite lacking an output schema, the description clearly states the expected outputs (probability, expected chargeable days, expected D&D cost, p90, marginal value, target recommendation). Given the tool's complexity, this provides sufficient context for an agent to use it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with each parameter already having a detailed description in the input schema. The tool description adds overall context but does not significantly improve per-parameter understanding. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'Optimize the DEMURRAGE & DETENTION free-time strategy for a destination', with specific verb ('optimize') and resource ('free-time strategy'). It clearly distinguishes this from sibling tools by focusing on D&D cost calculation and free-day negotiation advice.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use: to determine negotiated free days and expected D&D costs considering port congestion. It mentions optional refinements (carrier, mean dwell) but does not explicitly list alternative tools or when not to use. Still, the guidance is substantial.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

door_to_doorAInspect

Get the TRUE DOOR-TO-DOOR cost and time of an import move, not the port-to-port figure importers usually quote. The ocean tools price PORT-TO-PORT; this layers the INLAND legs at BOTH ends onto the all-in ocean move: origin drayage (the short truck move factory/CY → load port), destination drayage (discharge port → DC), the US CHASSIS rental (a separate daily charge + a chassis-split fee that exists in the US but is bundled elsewhere), terminal GATE-congestion fees and turn-time days, and — when the cargo's real destination is INLAND — the interior haul with a RAIL-vs-TRUCK decision (US IPI intermodal to Chicago/Dallas/Memphis; the Rotterdam/Antwerp barge-rail hinterland to Duisburg/Basel/Milan), choosing the cheaper mode by distance (deadline-aware). Inland routinely adds 15-40% over the port-to-port cost and several days — both of which this returns folded into a door-to-door total and a door p50/p90 transit. Every inland figure is a modeled market-typical band (regla 7), not a trucker quote. PREMIUM: x402 (USDC on Base) or a prepaid key. Same UN/LOCODE port normalization as get_spot_rate.

ParametersJSON Schema
NameRequiredDescriptionDefault
bandNoInland cost band: 'low', 'typical' (default) or 'high'.
urgentNoHard deadline → biases the interior haul to truck for door-speed. Optional.
dest_portYesDestination (discharge) port — city, UN/LOCODE, or 'City, Country'.
ship_dateNoIntended ship date (ISO). Drives ocean seasonality & transit. Optional; defaults to today.
origin_portYesOrigin (load) port — city, UN/LOCODE, or 'City, Country'.
interior_modeNoForce the interior haul mode: 'rail' or 'truck'. Optional; default = cheaper of the two (deadline-aware).
container_typeNoContainer size '20ft'/'40ft'/'40HC'. Optional; defaults to '40ft'.
inland_destinationNoOptional inland point the cargo really goes to (e.g. 'Chicago', 'Dallas', 'Duisburg', 'Milan', 'Basel') → adds the interior rail-vs-truck haul from the discharge port.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries full burden. It discloses that inland figures are modeled market-typical bands, not actual quotes, and mentions PREMIUM pricing and UN/LOCODE normalization. It explains the various cost components and decision logic.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is thorough but slightly lengthy. It front-loads the key purpose. Every sentence adds value, but could be more concise while retaining all information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description explains what the tool returns (door-to-door total, p50/p90 transit, model bands). It covers the main features and limitations, though additional details on error handling or data sources could enhance completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description adds meaning beyond the schema by explaining the logic behind interior_mode (cheaper mode by distance, deadline-aware) and band (low/typical/high). It also provides context for inland_destination and container_type.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool calculates door-to-door cost and time, including inland legs, and explicitly distinguishes from port-to-port tools like get_spot_rate. It uses specific terms like 'TRUE DOOR-TO-DOOR' and contrasts with sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use (for true door-to-door cost) and contrasts with port-to-port tools. It implies usage scenarios by mentioning importers usually quoting port-to-port, but does not explicitly state when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

equipment_availabilityAInspect

Check whether the shipper can even GET A CONTAINER on a lane — and what the equipment imbalance costs — BEFORE pricing the move. The rate tools assume a box exists; this answers the constraint that often binds first: in a deficit origin you can have a rate and a sailing and still not secure a box. Returns a 0-100 AVAILABILITY INDEX for the empty box at the origin and a SHORTAGE-RISK score, driven by the structural EQUIPMENT IMBALANCE of container trade: trade is directional, so empties PILE UP at net-importer ports (LA/Long Beach, Rotterdam, Hamburg) and run SHORT at net-exporter hubs (north/central China, Vietnam) — carriers must reposition empties back against the loaded headhaul. It models the balance per TYPE: 40HC (the deep-sea workhorse) is the tightest dry type in a crunch, 20DV is structurally easier to source (the classic alternative), and REEFER is a separate, far scarcer, plug-limited pool. It overlays the SEASONAL swing on the real lunar calendar: the acute PRE-CHINESE-NEW-YEAR crunch (every exporter loads before the factory shutdown — equipment, not space, becomes the binding constraint), the POST-CNY glut (the empties that surged out sit stranded at destinations while China demand collapses), Golden-Week front-loading, and peak-season tightening — evaluated for YOUR ship date. It prices the EQUIPMENT-IMBALANCE SURCHARGE (EIS) and reposition cost the deficit imposes, plus the soft +% it pushes onto the effective booked rate, and lists the reposition INCENTIVES (triangulation/street-turn, fast empty return) that relieve it. When the requested box is short it proposes ALTERNATIVES — split a scarce 40HC into 2×20DV, shift the ship window out of the crunch, triangulate an import empty, or book a mega-fleet carrier (Maersk/MSC/CMA CGM) whose deep own-box pool and local depots ease the SAME deficit (a thin niche line is more exposed). Pass a carrier to refine the numbers. The shortage risk also feeds the book-now timing — a worsening crunch means anticipate and lock equipment early. Everything is a MODELED structural + seasonal profile expressed as honest bands — NOT a live depot inventory; we never claim a specific box count is available at a depot today (regla 7). PREMIUM: pay per call with x402 (USDC on Base) or set a prepaid key (FREIGHT_PULSE_KEY). Same UN/LOCODE port normalization as get_spot_rate.

ParametersJSON Schema
NameRequiredDescriptionDefault
bandNoEIS / reposition-cost band to report: 'low', 'typical' or 'high'. Optional; default 'typical'.
reeferNoSet true for a REEFER (refrigerated) move — a separate, far scarcer, plug-limited pool than dry. Optional; default false.
carrierNoOptional carrier to refine availability by its own-box fleet & depot depth (e.g. 'Maersk', 'MSC', 'CMA CGM', 'ZIM'). A mega line eases the crunch; a thin niche line is more exposed.
dest_portYesDestination port (city name, UN/LOCODE, or 'City, Country'). The destination is where empties pile up (the reposition-from side).
ship_dateNoIntended ship date (ISO 'YYYY-MM-DD'). The seasonal equipment swing (pre-CNY crunch, post-CNY glut, Golden Week, peak tightening) is evaluated for THIS date. Optional; defaults to today.
origin_portYesOrigin port (city name, UN/LOCODE, or 'City, Country'). The origin REGION's net export/import role drives the equipment deficit/surplus.
container_typeNoContainer size '20ft'/'40ft'/'40HC' — maps to the 20DV / 40DV / 40HC equipment pool. Optional; defaults to '40ft'. Use 'reefer' for refrigerated.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries full burden. It transparently describes the modeled structural+seasonal profile, returns (availability index, shortage-risk, EIS), limitations (no live depot count), and premium/payment details. It even mentions regulatory note (regla 7).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but front-loaded with core purpose. While lengthy, every sentence adds value (explaining trade imbalances, seasonal effects, alternatives). Slightly long but not wasteful; a clearer structure could improve scannability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters, no output schema, and no annotations, the description is remarkably complete. It explains return values (availability index, shortage-risk, EIS), modeling approach, limitations, premium, and even trade mechanics. It fully compensates for missing structured fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but description adds significant context: e.g., carrier 'refine availability by its own-box fleet & depot depth', ship_date 'seasonal equipment swing evaluated for THIS date', container_type 'maps to 20DV/40DV/40HC equipment pool'. Each parameter's purpose is elaborated beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Check whether the shipper can even GET A CONTAINER on a lane' and distinguishes it from rate tools like get_spot_rate, which assume a box exists. It uses specific verbs and resources, and the context of 'before pricing the move' differentiates it from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells when to use: 'BEFORE pricing the move.' Also clarifies when not to expect live inventories: 'NOT a live depot inventory.' Provides alternatives when box is short and suggests passing a carrier to refine the numbers, giving clear usage boundaries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

evaluate_bidsAInspect

Evaluate carrier BIDS on a freight tender and pick the best award per lane. Pass your lanes (with annual volumes) and the bids each carrier submitted (carrier + all-in rate, optionally transit/sailings/free-days). For each lane it scores every bid on COST + RELIABILITY (the carrier's expected on-time performance from iter8 carrier matching) + COVERAGE (does it actually serve the corridor), DETECTS LOW-BALLS — a bid implausibly under the lane's modeled market band, the kind that gets rolled or surcharged back up and won't hold — by scoring them DOWN on credibility, and picks the best CREDIBLE award per lane. At the network level it shows the awarded annual cost vs the naive-cheapest cost (the cost of choosing credible over chasing a low-ball) and how many low-balls it flagged. Honest (regla 7): a modeled decision aid, not a procurement decision — verify rates & service commitments contractually. PREMIUM: pay per call with x402 (USDC on Base) or a prepaid key.

ParametersJSON Schema
NameRequiredDescriptionDefault
lanesYesLanes with bids. Each: { origin_port, dest_port, annual_volume, container_type?, bids: [ { carrier, rate, transit_days?, sailings_per_week?, free_days? } ] }.
priorityNoScoring weighting: 'cost', 'reliability' or 'balanced' (default).
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It fully discloses the scoring methodology (COST + RELIABILITY + COVERAGE), the low-ball detection mechanism, the output (awarded cost vs naive-cheapest cost, flagged low-balls), and its advisory nature ('modeled decision aid'). No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose, then provides necessary detail in a logical flow. While it is dense, every sentence adds value—from input format to scoring logic to output summary. It could be slightly tightened, but it remains efficient for the complexity it covers.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description explains what the tool returns at the network level (awarded cost vs naive-cheapest cost, number of low-balls flagged). It does not detail the exact output structure (e.g., JSON format), but the behavioral description is sufficient for an agent to understand what to expect. The payment info is ancillary but does not detract.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers both parameters thoroughly (lanes structure and priority options). The description adds significant meaning beyond the schema by explaining how the parameters influence scoring (e.g., 'DETECTS LOW-BALLS — a bid implausibly under the lane's modeled market band... scores them DOWN on credibility'). This enriches the agent's understanding of what each parameter does and how they interact.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a clear verb-resource pairing: 'Evaluate carrier BIDS on a freight tender and pick the best award per lane.' It details what it does (scores bids on cost, reliability, coverage, detects low-balls) and implies a niche distinct from siblings like carrier_recommendation by focusing on bid evaluation rather than carrier sourcing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells the user what to pass as input: 'Pass your lanes (with annual volumes) and the bids each carrier submitted (carrier + all-in rate, optionally transit/sailings/free-days).' It also provides a cautionary note about not treating it as a procurement decision without verification. However, it does not explicitly contrast with alternative tools or state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_complianceAInspect

Check whether it is LEGAL to EXPORT a given product to a destination, and whether it needs an export LICENCE — the goods-side trade-compliance question (NOT denied-party / sanctioned-person screening, which is a separate regulated process this tool does NOT perform). Pass a product description (reusing the same HS classifier as get_landed_cost) or an HS code + the lane. It classifies the goods against the DUAL-USE control lists (a modeled ECCN / EU Annex-I dual-use category: advanced electronics, encryption/information-security, sensors & lasers, navigation, aerospace, nuclear, special materials, machine tools, controlled telecom), reads the DESTINATION's embargo / restriction level (comprehensive embargo, arms/dual-use embargo, licence-required, partial, or permissive — modeled at a high level), and runs the decision tree: a dual-use good to an embargoed destination is BLOCKED; a dual-use good to a licence-required destination needs a LICENCE; an ordinary good to a permissive destination is likely PERMITTED; and anything ambiguous returns REVIEW-REQUIRED. ⚠️ THIS IS THE MOST LEGALLY SENSITIVE TOOL. The classification, the dual-use flag and the embargo list are a MODELED, SIMPLIFIED, NON-AUTHORITATIVE planning aid — NOT legal advice, NOT an official commodity classification (e.g. BIS CCATS), and NOT a current sanctions determination. Lists change; control hinges on exact technical parameters and end-use. You MUST verify with your government licensing authority (US BIS / the relevant EU member-state authority) and qualified trade-compliance counsel before exporting (regla 7). PREMIUM: pay per call with x402 (USDC on Base) or a prepaid key. Same UN/LOCODE port normalization as get_spot_rate.

ParametersJSON Schema
NameRequiredDescriptionDefault
hs_codeNoExplicit HS code (6+ digits). Provide this OR product.
productNoProduct description to classify, e.g. 'thermal imaging camera', 'encryption appliance', 'cotton t-shirts'. Provide this OR hs_code.
dest_portYesDestination port — its COUNTRY drives the embargo / licence-required check.
origin_portYesOrigin port — its COUNTRY is the exporter jurisdiction.
container_typeNoContainer size '20ft'/'40ft'/'40HC' (informational). Optional.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description fully discloses behavior: classification against dual-use lists, embargo check, decision tree outcomes (blocked, licence, permitted, review-required), and limitations (modeled, non-authoritative, must verify). Also mentions pricing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is long but each sentence adds value, covering purpose, usage, limitations, and warnings. Front-loaded with main purpose. Slightly verbose but justified by legal sensitivity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but description fully explains return outcomes and decision tree. Covers input options, classification, embargo, limitations, and verification requirement. Complete for a legally sensitive tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. Description adds meaning beyond schema by explaining how parameters are used (country-level checks, same classifier) and giving examples. Adds context about optional container_type.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it checks legality of exporting a product, focusing on goods-side trade compliance, and explicitly differentiates from denied-party screening. The verb 'check' and resource 'export compliance' are precise.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use (goods-side compliance) and when-not (denied-party screening). Instructs to pass product description or HS code + lane, and references same classifier as get_landed_cost. Includes legal sensitivity warnings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fx_exposureAInspect

Quantify and hedge the CURRENCY RISK of your ocean-freight spend. Freight is quoted and largely invoiced in USD, but a non-US shipper PAYS in its home currency (EUR/GBP/JPY/CNY/…) — so a large, recurring USD freight bill is a foreign-exchange exposure: if the home currency weakens, the same freight costs more locally. Pass your home currency + your annual USD freight spend, and it returns: the exposure in your local currency at a modeled spot, the annualised VOLATILITY band of the pair, the 95% adverse FX move on the spend (in money), and a HEDGE-RATIO recommendation — what % of the exposure to cover with forwards — using a media-variance objective analogous to the procurement engine: higher volatility and a lower risk tolerance push the hedge up, but a variable spend caps it (you can't lock forwards for volume you might not ship), so it never blindly recommends 100%. It also sketches the forward-points carry (so the hedge isn't assumed free) and a laddered hedging plan. Honest (regla 7): MODELED reference analysis, NOT live market quotes and NOT financial / hedging advice — consult a treasury/FX professional. PREMIUM: pay per call with x402 (USDC on Base) or a prepaid key.

ParametersJSON Schema
NameRequiredDescriptionDefault
spend_cvNoRelative std-dev of your freight spend itself (e.g. 0.2 = ±20% volume). Caps the hedge ratio. Optional; default 0.15.
horizon_monthsNoHedging horizon in months (1-36, default 12). The exposure & risk are pro-rated to it.
local_currencyYesYour home currency you pay freight in: EUR, GBP, JPY, CNY, INR, KRW, CAD, AUD, SGD, BRL, MXN (or a name). REQUIRED.
risk_toleranceNo'low' (hedge more), 'medium' (default) or 'high' (hedge less).
annual_freight_spend_usdYesYour yearly USD ocean-freight bill (the USD exposure). REQUIRED.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses that it is a modeled reference analysis, not financial advice, and explains limitations like capped hedge ratio due to variable spend. It also mentions premium payment and the analytical nature of recommendations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is relatively long but well-structured, front-loading the main purpose. It includes essential details without redundancy, though some minor trimming could improve conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description thoroughly explains all outputs (exposure, volatility, adverse move, hedge ratio, forward points, ladder plan). It covers inputs, limitations, pricing, and context, making it fully complete for an analytical tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining how optional parameters like spend_cv, horizon_months, and risk_tolerance affect the output, beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool quantifies and hedges currency risk for ocean-freight spend, specifying inputs (home currency, annual spend) and outputs (exposure, volatility, adverse move, hedge ratio). It is distinct from sibling logistics tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use (pass home currency and annual spend) and includes a disclaimer that it is not for live quotes or financial advice, implying when not to use. However, it does not explicitly list alternative tools for similar tasks.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_all_in_rateAInspect

Get the ALL-IN ocean freight cost for a lane — the TRUE landed cost of the move, not just the base spot rate. get_spot_rate returns the index-blended BASE; this returns base + every applicable carrier SURCHARGE & accessorial, which routinely inflates the real cost by +30-60%. Models the opaque thicket importers actually pay: Terminal Handling (origin+destination), BAF/LSS bunker fuel (modeled from a marine-fuel proxy and the corridor's burn), CAF currency adjustment, Peak-Season Surcharge (only inside the seasonal peak window), a damped GRI residual, port Congestion surcharge, ISPS security, Documentation/B-L fee, ECA emissions, War-Risk / Red-Sea–Suez DIVERSION surcharge (only on Suez-exposed Asia↔Europe / Asia↔US-East lanes, higher when Cape-of-Good-Hope diverted), Panama Canal low-water surcharge (only on Panama-routed lanes), optional Overweight, and expected Demurrage & Detention (tiered escalating per-day cost past your free days). The engine knows WHICH route each lane follows (transpacific vs Suez vs Panama vs transatlantic) and applies ONLY the surcharges that actually bite that lane and ship date — and lists the ones it deliberately EXCLUDED and why. Returns the full line-item breakdown, the all-in total, and a base-vs-all-in comparison. Every figure is tagged 'typical' (representative published value) or 'modeled' (estimate) — these are indicative modeling values, not a carrier tariff. PREMIUM: pay per call with x402 (USDC on Base) or set a prepaid key (FREIGHT_PULSE_KEY). Same UN/LOCODE port normalization as get_spot_rate.

ParametersJSON Schema
NameRequiredDescriptionDefault
dest_portYesDestination port (city name, UN/LOCODE, or 'City, Country').
free_daysNoCarrier free days at destination before Demurrage & Detention accrues (default 5 when an estimated dwell is supplied).
ship_dateNoIntended shipment date (ISO 'YYYY-MM-DD'). Drives Peak-Season Surcharge & GRI applicability. Optional; defaults to today.
fuel_proxyNoOptional live VLSFO marine-fuel price ($/tonne) to drive the BAF model. Omit to use a recent representative level (~$600/t, tagged modeled).
overweightNoFlag an overweight load to include the overweight surcharge. Optional; default false.
origin_portYesOrigin port (city name, UN/LOCODE, or 'City, Country'). Same resolution as get_spot_rate.
container_typeNoContainer size: '20ft', '40ft' or '40HC'. Optional; defaults to '40ft'.
estimated_days_at_portNoTotal days you expect the box to sit at the destination terminal. If it exceeds free_days, the engine adds the expected (tiered, escalating) Demurrage & Detention. Omit to skip D&D.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It extensively discloses behavioral traits: the tool models surcharges, tags values as 'typical' or 'modeled', states the output is indicative not a carrier tariff, explains route awareness, lists surcharges applied and excluded, and even mentions the premium payment model. This is comprehensive and transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but packed with essential information. It front-loads the core purpose and then details surcharges, route logic, and output. Every sentence adds value with no redundancy. While slightly lengthy for the complexity, it remains well-structured and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool complexity (8 parameters, no output schema, no annotations), the description is exceptionally complete. It covers the output structure, modeling methodology, route-specific surcharge application, tagging of values, and payment model. No significant gaps remain for an agent to understand what the tool does and how to use it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, so baseline is 3. The description adds value beyond schema by explaining how certain parameters drive specific surcharges (e.g., ship_date drives Peak-Season Surcharge, fuel_proxy drives BAF model) and providing context on defaults and usage. This elevates the score above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns the ALL-IN ocean freight cost (true landed cost) for a lane, explicitly distinguishing it from get_spot_rate which returns the base spot rate. The verb 'Get' plus resource 'all-in rate' is specific, and the differentiation from the sibling tool is explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly names the alternative (get_spot_rate) and explains when to use this tool: when the true landed cost is needed, not just the base spot rate. It provides context on the surcharges modeled and route awareness. However, it does not explicitly state when not to use the tool, missing a clear 'when-not' clause.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_landed_costAInspect

Get the full LANDED COST (cost puesto en destino) of an import — the number the importer's margin actually depends on, not just the freight. Returns merchandise value (FOB) + all-in ocean freight (base + every surcharge) + insurance (CIF) + CUSTOMS DUTY + import VAT/consumption tax, as a line-item breakdown, plus the % of landed cost that is freight vs duties vs taxes. Includes an HS-CODE CLASSIFIER: pass a product description ('bluetooth earbuds', 'office chairs', 'cotton t-shirts') and it proposes the most likely HS6 heading with a confidence score (and 2-3 candidates when the text is ambiguous), or pass an explicit hs_code. Duty is modeled per destination bloc (US HTS, EU TARIC, UK Global Tariff, Canada, Australia, Japan) with the right MFN rate for the product family, then the ORIGIN-SENSITIVE trade remedies: US Section 301 applied ONLY to China-origin goods, Section 232 on steel/aluminium, an ANTIDUMPING/CVD flag on high-risk family×origin combos (it warns, it does not invent a rate), and FTA PREFERENCE (EVFTA, USMCA, CETA, EU-Japan EPA, RCEP, …) when origin↔destination share an agreement — subject to rules of origin. De-minimis is handled (US $800, EU €150, …): below threshold → no duty/tax. Import VAT is computed on the correct CIF+duty base (EU VAT by country; the US has no federal import VAT). Every figure is tagged typical/modeled; this is an INDICATIVE landed-cost estimate and HS-classification aid, NOT a binding customs ruling. PREMIUM: pay per call with x402 (USDC on Base) or set a prepaid key (FREIGHT_PULSE_KEY). Same UN/LOCODE port normalization as get_spot_rate.

ParametersJSON Schema
NameRequiredDescriptionDefault
hs_codeNoExplicit HS code (6+ digits, e.g. '851830'). Overrides the text classifier. Provide this OR product.
productNoProduct description to classify, e.g. 'bluetooth earbuds', 'office chairs', 'cotton t-shirts', 'car tyres'. The classifier maps it to an HS6 heading. Provide this OR hs_code.
dest_portYesDestination port (city name, UN/LOCODE). The destination COUNTRY drives the duty bloc (US/EU/UK/CA/AU/JP) and import VAT.
fob_valueYesMerchandise value (FOB) in USD — the goods value at origin. REQUIRED: duties & taxes are computed on this (via CIF).
free_daysNoCarrier free days before D&D (default 5 if a dwell is given).
ship_dateNoIntended ship date (ISO). Drives seasonal freight surcharges. Optional; defaults to today.
fuel_proxyNoOptional VLSFO $/tonne for the BAF model. Optional.
overweightNoFlag an overweight load (freight surcharge). Optional.
origin_portYesOrigin port (city name, UN/LOCODE, or 'City, Country'). The origin COUNTRY drives Section 301 / FTA / antidumping.
container_typeNoContainer size '20ft'/'40ft'/'40HC' for the freight leg. Optional; defaults to '40ft'.
insurance_rate_pctNoMarine insurance as a fraction of FOB+freight for the CIF model (default 0.005 = 0.5%). Optional.
estimated_days_at_portNoDays the box will dwell at destination (adds Demurrage & Detention to the freight leg). Optional.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses that estimates are indicative, not binding, explains duty modeling per country, origin-sensitive remedies, de-minimis handling, and premium payment. This is thorough and honest about limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is lengthy but well-structured with clear sections and bullet points. It contains valuable information, though some minor trimming (e.g., payment details) could improve conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (12 parameters, no output schema), the description is exceptionally complete. It covers duty calculation, HS classifier, origin sensitivity, de-minimis, VAT, and output format expectations. The agent has enough information to correctly invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with good parameter descriptions. The tool description adds overall context but does not provide additional per-parameter semantics beyond what the schema already offers. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it calculates the full landed cost breakdown (FOB, freight, insurance, duty, VAT) and includes an HS-code classifier. It distinguishes from sibling tools like get_spot_rate which only provides spot rates, not the complete cost picture.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides detailed context on when to use the tool (for importing, HS classification, duty estimation). It does not explicitly state when not to use it or name alternatives, but the context is clear enough for an agent to decide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_lane_trendAInspect

Forecast the ocean spot rate for a lane (origin → destination) and get a grounded BOOK-NOW-OR-WAIT call for a given ship date. Returns: a weeks-long cross-validated time series; a STATISTICAL FORECAST several weeks ahead (Holt-Winters / ETS triple exponential smoothing) with prediction intervals that widen with the horizon, plus naïve/drift/seasonal-naïve baselines and an honest BACKTEST (MAPE/RMSE/MASE) of the forecast's accuracy; the ocean-freight SEASONALITY CALENDAR overlaid on your ship date (Chinese New Year pre-rush & post-slump, Golden Week, transpacific/Asia peak season, likely GRIs and blank-sailing pressure); ANOMALY detection (is today's rate an out-of-pattern spike or collapse vs its seasonal norm?); and a concrete book-now/book-soon/wait/split/monitor recommendation with the drivers shown. All of this runs server-side on freight-pulse's OWN accumulating per-lane history plus a curated freight-seasonality model — your own agent can't reproduce the forecast or the calendar from a single snapshot. Same port normalization as get_spot_rate (UN/LOCODE). PREMIUM: pay per call with x402 (USDC on Base) or set a prepaid key (FREIGHT_PULSE_KEY). Without one you'll get unlock instructions. Tip: call get_spot_rate (free) on a lane first — it seeds the history. Indicative market intelligence, not a carrier quote.

ParametersJSON Schema
NameRequiredDescriptionDefault
weeksNoHow many weeks of history to analyze (2–52, default 8). The window is capped by how much history we've accumulated for the lane.
dest_portYesDestination port (city name, UN/LOCODE, or 'City, Country').
ship_dateNoThe intended shipment date (ISO 'YYYY-MM-DD' or any parseable date). The seasonality calendar (CNY, peak season, GRIs, blank sailings) is evaluated for THIS date. Optional; defaults to today.
origin_portYesOrigin port (city name, UN/LOCODE, or 'City, Country'). Same resolution as get_spot_rate.
forecast_weeksNoHow many weeks ahead to forecast the rate (1–26, default 6). Prediction intervals widen with the horizon.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses the statistical method (Holt-Winters), that it runs on server-side history, returns indicative market intelligence not a carrier quote, and has a payment model. No annotations exist, so description carries full burden and does so well.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is comprehensive but verbose, containing marketing language and technical details. The first sentence clearly states purpose, but subsequent paragraphs could be more concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, but description fully explains all returned components (time series, forecast, seasonality, anomaly, recommendation), plus pricing and prerequisite tips. Highly complete for a complex tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all parameters (100% coverage). Description adds extra context for ship_date (seasonality evaluation) and forecast_weeks (widening intervals), going beyond schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool forecasts ocean spot rates for a lane and provides a book-now-or-wait recommendation. It distinguishes itself from sibling get_spot_rate by mentioning it seeds history and is a separate premium call.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides guidance to call get_spot_rate first to seed history and mentions premium payment requirement. Does not explicitly state when not to use, but the use case is well-defined.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_port_intelAInspect

Get the PORT-CONGESTION & DISRUPTION intelligence for a lane — the OPERATIONAL state of the origin and destination ports and the live disruption events that move your transit time and your price. The rate tools tell you what a move costs; this tells you whether the PORTS can actually clear it on schedule. Returns a 0-100 CONGESTION INDEX for both the origin and destination ports on your ship date (structural berth/anchorage pressure + seasonal peak + active disruptions), the extra WAITING DAYS that congestion tacks onto your p90 transit, a 0-100 lane OPERATIONAL-RISK score with a building / steady / easing trend, and the upward RATE PRESSURE it implies. It surfaces the ACTIVE DISRUPTIONS that bite THIS lane on THIS date — the Red-Sea / Bab-el-Mandeb diversion around the Cape of Good Hope, the Panama Canal drought (draft & transit-slot restrictions on Panama-routed lanes), US West-Coast ILWU and US East/Gulf ILA dockworker labour cycles, the Asia typhoon season (Jun-Oct) and Atlantic hurricane season (Jun-Nov), and peak-season demand congestion — each with its time window, day-impact and rate pressure, and a flag for whether it's in its ACUTE window or only a recurring-season risk. A disruption OUTSIDE its window is not applied. Built on ~35 curated major-port congestion profiles (Shanghai, Ningbo, Yantian, Singapore, Busan, LA/Long Beach, NY/NJ, Savannah, Houston, Rotterdam, Hamburg, Antwerp, Felixstowe, Jebel Ali, …) and a dated catalogue of real disruption events — so a congestion wave that's BUILDING into your wait window can nudge you to anticipate and book. Every figure is a MODELED structural typical + a dated disruption overlay; it is INDICATIVE, NOT a live waiting-time feed for a specific port today (regla 7). PREMIUM: pay per call with x402 (USDC on Base) or set a prepaid key (FREIGHT_PULSE_KEY). Same UN/LOCODE port normalization as get_spot_rate.

ParametersJSON Schema
NameRequiredDescriptionDefault
dest_portYesDestination port (city name, UN/LOCODE, or 'City, Country').
ship_dateNoIntended ship date (ISO 'YYYY-MM-DD'). The congestion peak windows and dated disruptions (Panama drought, ILA strike, typhoon/hurricane season, Red-Sea diversion) are evaluated for THIS date. Optional; defaults to today.
origin_portYesOrigin port (city name, UN/LOCODE, or 'City, Country'). Same resolution as get_spot_rate.
container_typeNoContainer size '20ft'/'40ft'/'40HC' (informational for the lane label). Optional; defaults to '40ft'.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully bears the burden of disclosure. It clearly states the tool returns modeled, indicative data ('Every figure is a MODELED structural typical + a dated disruption overlay; it is INDICATIVE, NOT a live waiting-time feed'), describes its construction (35 curated profiles, dated catalogue), and outlines behavioral traits such as disruption window evaluation and premium payment requirements. No contradictions are present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is detailed but quite verbose, containing multiple clauses and run-on sentences. While it is front-loaded with the core purpose, the length and lack of bullet points or structured formatting reduce conciseness. It could be more succinct without losing key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of the tool, no output schema, and 4 parameters, the description thoroughly explains all outputs (congestion index, waiting days, operational-risk score, active disruptions) and provides context on data sources, limitations, and premium access. It covers what an agent needs to invoke and interpret results correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all 4 parameters. The description adds valuable context beyond the schema: it explains how 'ship_date' is used to evaluate congestion and disruption windows, connects 'origin_port' resolution to get_spot_rate, and clarifies 'container_type' as informational. This extra meaning justifies a score above the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool gets port congestion and disruption intelligence for a lane, operational state of ports, and live disruption events. It clearly distinguishes from rate tools and lists specific outputs (congestion index, waiting days, operational-risk score, rate pressure, active disruptions).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use this tool (to check if ports can clear on schedule) and contrasts with rate tools ('The rate tools tell you what a move costs; this tells you whether the PORTS can actually clear it on schedule'). It also notes limitations (indicative, not live feed) and premium access. However, it does not explicitly compare to sibling tools or mention when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_scorecardAInspect

Read your accumulating supplier/carrier/lane SCORECARD — the KPIs you've fed with record_performance. Returns, per subject, on-time %, average delay, damage/discrepancy/rollover rates, a 0-100 reliability score and an improving/declining/stable TREND, ranked best-OTP-first, with the best & worst performer. Omit 'subject' for the whole network or pass one to drill in. The standing performance history that turns freight-pulse into a recurring decision tool (who do I award next year's volume to?). Honest (regla 7): your own empirical log, small samples flagged. PREMIUM: pay per call with x402 (USDC on Base) or a prepaid key.

ParametersJSON Schema
NameRequiredDescriptionDefault
subjectNoDrill into one carrier/supplier/lane. Optional — omit for the whole scorecard.
subject_typeNo'carrier' (default), 'supplier' or 'lane' — disambiguates the subject.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses behavioral traits such as 'returns... per subject, on-time %... trend' and flags 'Honest (regla 7): your own empirical log, small samples flagged,' indicating data reliability. It also mentions premium pricing, adding transparency about cost.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is lengthy and includes marketing language ('turns freight-pulse into a recurring decision tool') and pricing details. While it front-loads the main purpose, it could be more concise by trimming extraneous phrases.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite lacking an output schema, the description thoroughly lists the return fields (on-time %, average delay, damage rates, reliability score, trend, ranking) and constraints (optional subjects, small sample flagging). It is complete for a read tool with two optional parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description reinforces the schema's parameter explanations (e.g., 'Drill into one carrier/supplier/lane') but adds minimal new semantic value beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool 'Read[s] your accumulating supplier/carrier/lane SCORECARD' and lists specific KPIs returned, making the verb and resource explicit. It distinguishes from siblings by focusing on scorecard reading, which is unique among given sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance: 'Omit 'subject' for the whole network or pass one to drill in,' clarifying when to use each parameter. It implies a use case for decision-making ('who do I award next year's volume to?') but does not explicitly state when not to use it or compare to alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_spot_rateAInspect

Get the CURRENT ocean container spot rate for a lane (origin port → destination port) so you can answer 'should I book this shipment now or wait?'. Returns ONE normalized USD figure for the requested container size, a CONFIDENCE SCORE, and the MARKET DIRECTION (rising / falling / stable). Unlike calling a single freight API, this CROSS-VALIDATES multiple live indices — Drewry's World Container Index (WCI) and the Freightos Baltic Index (FBX), read server-side, plus your own SeaRates key if you supply one — and reconciles them into a single number with an agreement/confidence read, so you know how much to trust it. Port names are normalized via UN/LOCODE: 'Shanghai', 'CNSHA' and 'Shanghai, China' all resolve to the same lane. Container types: 20ft, 40ft, 40HC (defaults to 40ft, the size the indices quote). FREE. Use it for transpacific (Shanghai/Ningbo/Yantian → Los Angeles/Long Beach/New York), Asia→Europe (→ Rotterdam/Hamburg/Genoa) and the other major deep-sea container lanes. For the weeks-long trend and a book-now-or-wait recommendation, use get_lane_trend. Indicative market intelligence, not a carrier quote.

ParametersJSON Schema
NameRequiredDescriptionDefault
dest_portYesDestination port: a city name ('Los Angeles', 'New York', 'Hamburg'), a UN/LOCODE ('USLAX'), or 'City, Country'.
origin_portYesOrigin port: a city name ('Shanghai', 'Ningbo', 'Rotterdam'), a UN/LOCODE ('CNSHA', 'NLRTM') or 'City, Country'.
container_typeNoContainer size: '20ft', '40ft' or '40HC' (high-cube). Optional; defaults to '40ft' (the size the public indices quote). Synonyms like TEU/FEU/40HQ are accepted.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description provides substantial behavioral context: cross-validates multiple indices, reconciles into a single number, handles port normalization via UN/LOCODE. It does not mention data freshness or error handling, but overall it is transparent about its internal process.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is comprehensive yet structured: it front-loads the purpose, then explains return values, data sources, normalization, examples, and sibling differentiation. Every sentence adds value without unnecessary verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description explains return values (USD figure, confidence, market direction). It covers supported lanes, input formats, and limitations. Minor omissions like error handling do not detract significantly from completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and already includes details like defaults and synonyms for container_type. The description adds extra value by explaining port normalization via UN/LOCODE, which goes beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: getting the current ocean container spot rate for a lane, with specific details on outputs (USD figure, confidence score, market direction). It distinguishes itself from the sibling tool get_lane_trend, which handles trends and recommendations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use (to decide whether to book now or wait) and when not to (for weeks-long trends, use get_lane_trend). Also clarifies it is free and indicative, not a carrier quote.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

incoterm_responsibilityAInspect

Explain the EXACT cost & risk split between the SELLER (exporter) and the BUYER (importer) for an Incoterms® 2020 rule on a lane — the decision an importer makes when they agree 'FOB Shanghai' vs 'DDP my-warehouse', which a thin agent routinely gets wrong. Returns the precise POINT at which risk of loss/damage transfers (EXW at the seller's works; FCA/CPT/CIP at the first-carrier hand-over; FAS alongside the ship; FOB/CFR/CIF once ON BOARD; DAP/DDP at destination ready; DPU once unloaded), who pays each step (export clearance, origin haulage, the main international freight, destination terminal handling, on-carriage, import clearance, and the destination DUTY + import VAT/tax), and whether the rule MANDATES cargo insurance and at what level (CIF mandates only ICC C minimum; CIP mandates ICC A all-risk). It flags the classic traps: FOB/CFR/CPT put the TRANSIT RISK on the buyer (CFR/CPT even though the seller pays the freight); DDP loads the seller with destination customs and import VAT; EXW puts export clearance on the buyer; and FOB on CONTAINERS is the wrong rule (the ICC recommends FCA for terminal hand-over) — with a container-appropriateness warning. Indicative summary of the ICC rules — NOT legal, contractual or customs advice (regla 7). PREMIUM: pay per call with x402 (USDC on Base) or set a prepaid key (FREIGHT_PULSE_KEY). Same UN/LOCODE port normalization as get_spot_rate.

ParametersJSON Schema
NameRequiredDescriptionDefault
productNoOptional product description (informational context only).
incotermYesThe Incoterms 2020 rule to analyse: one of EXW, FCA, FAS, FOB, CFR, CIF, CPT, CIP, DAP, DPU, DDP. REQUIRED.
dest_portYesDestination/delivery port (city, UN/LOCODE, or 'City, Country').
origin_portYesOrigin/load port (city, UN/LOCODE, or 'City, Country').
container_typeNoContainer size '20ft'/'40ft'/'40HC' (drives the container-appropriateness check). Optional; defaults to '40ft'.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully carries the burden. It comprehensively discloses behavioral traits: what is returned (risk transfer point, cost breakdown, insurance mandates, classic traps, container warning), payment details, and a legal disclaimer. This is exceptionally transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose and packed into a single paragraph. While it is front-loaded with the main purpose, it contains extraneous details (e.g., premium payment info) that could be moved to an output schema or separate section. It is not optimally concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of an output schema, the description fully covers what the tool returns: risk transfer point, cost split for each step, insurance requirements, common traps, container appropriateness, and a disclaimer. This is complete for a tool of moderate complexity with 5 parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so a baseline of 3 is appropriate. The description adds value by explaining the incoterm parameter (list of rules) and how container_type drives a container-appropriateness check, providing context beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it explains the exact cost and risk split between seller and buyer for an Incoterms 2020 rule. It provides specific examples like 'FOB Shanghai' vs 'DDP my-warehouse' and lists what is returned, making the purpose highly specific and distinct from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context (importer decision-making) and includes a disclaimer that it is not legal advice. However, it does not explicitly state when to use this tool versus alternatives among the many sibling tools, nor does it provide when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

insurance_recommendationAInspect

Recommend cost-effective MARINE CARGO INSURANCE for a shipment — the cover an importer needs but often under-buys. It prices the three Institute Cargo Clauses side by side: ICC (A) ALL-RISK (covers everything bar named exclusions — for valuable/fragile/theft-prone cargo), ICC (B) named-perils-broad (adds water-ingress but NOT theft), and ICC (C) MINIMUM (only major vessel casualties — no water, no theft) — showing what each COVERS and EXCLUDES. The premium = INSURED VALUE (CIF + 10% customary markup, the freight pulled server-side so the base is real) × the cargo's LOSS PROFILE (electronics/batteries load the rate; robust steel discounts it) × the MODE risk (air has a structurally lower loss rate than ocean — links to compare_modes) × the ROUTE risk (a Red-Sea/Cape-diverted lane spikes the separate WAR-RISK additional premium — links to the disruptions engine) × the deductible. It recommends the cost-effective cover level for your cargo and clarifies the Incoterms tie: CIF obliges the seller to buy only ICC (C) minimum, CIP obliges ICC (A) all-risk, and a FOB/CFR/CPT buyer gets NO seller insurance at all (must self-arrange). Modeled market-typical bands — NOT a broker's quote (regla 7). PREMIUM: pay per call with x402 (USDC on Base) or set a prepaid key (FREIGHT_PULSE_KEY). Same UN/LOCODE port normalization as get_spot_rate.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoTransport mode for the loss profile: 'ocean' (default), 'air' (lower loss rate) or 'sea-air'. Optional.
hs_codeNoExplicit HS code (alternative to product). Optional.
productNoProduct description to classify the cargo loss profile (e.g. 'bluetooth earbuds', 'steel coils'). Optional but improves the rate.
dest_portYesDestination port (city, UN/LOCODE, or 'City, Country').
ship_dateNoIntended ship date (ISO). Optional; defaults to today.
markup_pctNoInsured-value markup over CIF (default 0.10 = the customary +10%). Optional.
cargo_valueYesMerchandise value (USD) — REQUIRED. The insured value is CIF (cargo + freight) + 10%.
origin_portYesOrigin port (city, UN/LOCODE, or 'City, Country'). The route (incl. Red-Sea diversion) drives the war-risk premium.
container_typeNoContainer size '20ft'/'40ft'/'40HC' (for the freight leg). Optional; defaults to '40ft'.
deductible_fractionNoPolicy deductible as a fraction of insured value (0 = nil, 0.005 = 0.5% typical, 0.01, 0.02). A higher excess lowers the premium. Optional.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, but the description openly states it provides modeled market-typical bands (not a broker's quote) and mentions payment methods (pay per call or prepaid key). It implies a read-only computation with no destructive side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single paragraph but is well-structured, front-loading the purpose. Every sentence adds essential context, though it could be broken into shorter sections for easier scanning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (10 parameters, no output schema, no annotations), the description is remarkably complete: it covers purpose, pricing logic, Incoterms implications, payment, and port normalization, leaving little ambiguity about tool behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with parameter descriptions, but the description adds significant value by explaining the premium calculation formula (insured value vs loss profile vs mode vs route vs deductible) and the role of each parameter in that formula.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool recommends cost-effective marine cargo insurance for a shipment, specifying it compares three Institute Cargo Clauses. This distinguishes it from sibling tools like carrier_recommendation or compare_modes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides context on when to use (for cargo insurance needs, especially under-buying importers) and includes Incoterms tie-in but does not explicitly list when not to use or compare with all alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inventory_optimizationAInspect

Size the INVENTORY a freight decision forces you to hold. The freight choice (mode, reliability, transit time) DETERMINES your safety stock — this computes it. Give the lane + your annual demand (units) + unit value, and it returns, per mode (ocean baseline vs a faster/more-reliable air option): the SAFETY STOCK = z(service level) × σ of lead-time-demand (σ_LTD = sqrt(L·σ_demand² + demand²·σ_lead²), reusing the lane's modeled transit time AND its variability from the transit engine), the REORDER POINT, the Wilson EOQ, and the TOTAL inventory cost (ordering + cycle holding + safety-stock holding). It proves THE trade-off: a faster, more reliable mode shrinks the lead time and its variability → a SMALLER safety stock → released working capital + lower holding — so the 'expensive' freight can pay for itself in less immobilised inventory. Honest (regla 7): textbook OR (normal-approx safety stock, Wilson EOQ) with indicative default cost parameters you should override. PREMIUM: pay per call with x402 (USDC on Base) or a prepaid key.

ParametersJSON Schema
NameRequiredDescriptionDefault
demand_cvNoDemand coefficient of variation (σ_demand/mean). Optional; default 0.30.
dest_portYesDestination port.
ship_dateNoShip date (YYYY-MM-DD). Optional; default today.
origin_portYesOrigin port (city name, UN/LOCODE, or 'City, Country').
air_volume_m3NoAir shipment volume per consignment (m³). Optional.
air_weight_kgNoAir shipment weight per consignment (kg) to price the air freight side of the trade-off. Optional.
service_levelNoTarget cycle service level (in-stock probability, e.g. 0.95). Optional; default 0.95.
container_typeNoContainer '20ft'/'40ft'/'40HC'. Optional; default '40ft'.
unit_value_usdYesPer-unit value (USD). REQUIRED — drives holding cost and immobilised capital.
ordering_cost_usdNoFixed cost per purchase order (USD). Optional; default 250.
annual_demand_unitsYesAnnual demand in UNITS. REQUIRED — inventory policy is sized off it.
units_per_containerNoUnits per ocean container (for the annual freight trade-off). Optional.
annual_holding_rate_pctNoAnnual holding cost as a fraction of unit value (e.g. 0.25). Optional; default 0.25.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses the tool's behavior: it computes safety stock, reorder point, EOQ, and total cost using textbook formulas, and relies on a transit engine for lead time variability. It mentions the trade-off between modes and that results are indicative. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is comprehensive but slightly verbose. It front-loads the main purpose effectively. Each sentence adds information, though some detail (like the formula) could be shortened. Overall, it is well-structured for an AI agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (13 parameters, no output schema, no annotations), the description covers the main return values (safety stock, reorder point, EOQ, total cost) and explains the trade-off. It does not specify output format, but the formula and context are sufficient for understanding the tool's results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds value by explaining key parameters like 'unit_value_usd' (drives holding cost) and highlighting defaults. It also provides context beyond the schema, such as the output metrics and formula, earning a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: sizing inventory based on freight decisions. It uses specific verbs and resources ('size the INVENTORY', 'computes safety stock'), and distinguishes itself from sibling tools like 'ship_decision' or 'total_cost_ownership' by focusing on the inventory impact of mode choice.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use the tool: provide lane, demand, and value to get inventory metrics. It mentions overriding default cost parameters and premium payment, but does not explicitly state when not to use it versus alternatives. However, the context is clear enough for an agent to decide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lane_risk_indexAInspect

How FRAGILE is this route? The 0-100 lane-risk score a supply-chain director needs for their risk map. Give the lane and it COMPOSES the risk dimensions every other freight-pulse engine already models: CHOKEPOINT criticality (Suez / Red-Sea / Bab-el-Mandeb / Panama / Malacca, reusing the routing engine), GEOPOLITICAL risk per origin/destination/transit country (modeled bands), CONCENTRATION (single-port & single-carrier dependence), LABOUR risk (active strikes), CLIMATE risk (typhoon/hurricane/drought windows), CONGESTION (port-intel operational risk) and EQUIPMENT risk (box imbalance). It returns the composite score + the per-driver breakdown (which factor dominates) + ranked MITIGATIONS (alternate routings, add a second carrier/port, pre-position inventory, nearshore a second source). Honest (regla 7): MODELED, indicative — geopolitical risk is judgemental and time-varying; not a live threat feed or insurance-grade rating. PREMIUM: pay per call with x402 (USDC on Base) or a prepaid key.

ParametersJSON Schema
NameRequiredDescriptionDefault
dest_portYesDestination port.
ship_dateNoShip date (YYYY-MM-DD) — overlays seasonal labour/climate windows. Optional; default today.
port_countNoHow many distinct origin ports you use for this flow. Default 1.
origin_portYesOrigin port (city name, UN/LOCODE, or 'City, Country').
carrier_countNoHow many distinct carriers you use on this lane (concentration). Default 1.
container_typeNoContainer '20ft'/'40ft'/'40HC'. Optional; default '40ft'.
transit_countryNoA transit-country ISO2 to fold into geopolitical risk (e.g. 'EG' for Suez). Optional.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It clearly states the tool returns a modeled, indicative score (not a live threat feed or insurance-grade), includes pricing details, and does not hide limitations. The honesty disclaimer adds transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose and includes extraneous details like pricing and legal disclaimers, which could be shortened. However, it is front-loaded with the core purpose and structured in sections. Some sentences earn their place, others could be trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters, no output schema, and no annotations, the description covers inputs (with contextual meaning), outputs (composite score, breakdown, mitigations), limitations, and pricing. It adequately informs the agent about what to expect, though a bit more structure would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds meaningful context by explaining how each parameter contributes to risk dimensions (e.g., ship_date overlays seasonal windows, port_count affects concentration). This goes beyond the bare schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description begins with a clear, specific verb+resource ('How FRAGILE is this route?') and explains that it computes a composite lane-risk score from multiple dimensions. It distinguishes itself from siblings by being a composite of risk factors modeled elsewhere, clearly stating its unique value proposition.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for risk mapping by supply-chain directors and provides parameter guidance, but it does not explicitly state when to use this tool versus alternatives like get_lane_trend or get_port_intel. No 'when not to use' or explicit alternative recommendations are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

load_planAInspect

Optimize how a product LOADS into a container — the stowage/cube-and-weight question every importer faces. Give the CARTON dimensions (cm) and gross weight (kg) and optionally a target quantity, and it computes: how many units fit BY VOLUME and BY WEIGHT and which constraint BINDS FIRST (the crux — dense cargo like tiles/stone tops out by WEIGHT at low cube, while light cargo like apparel/foam fills the CUBE with payload to spare); the utilization on BOTH axes (% volume AND % payload) so you see the wasted constraint; the 40HC-vs-2×20DV head-to-head for the cargo's density (two 20ft give ~2× the payload for ~the same cube — the right answer for heavy cargo, which a naïve volume-only divide gets wrong); an OVERWEIGHT warning when a box that's 'full' by cube would be ILLEGAL to truck because the destination ROAD/axle weight limit (e.g. US ~38-44k lb cargo on a standard chassis) is far below the ISO 26.7t container plate; and a recommended container MIX for a target quantity with the last box right-sized. Uses real interior dimensions and max payloads of 20DV/40DV/40HC (and reefers) plus per-country road weight caps. Indicative stowage PLANNING (practical-cube loadability, not 3D bin-packing), not a load-securing certification (regla 7). PREMIUM: x402 (USDC on Base) or a prepaid key.

ParametersJSON Schema
NameRequiredDescriptionDefault
reeferNoEvaluate reefer containers (20RF/40RF) instead of dry. Optional.
width_cmYesCarton width in cm. REQUIRED.
height_cmYesCarton height in cm. REQUIRED.
length_cmYesCarton length in cm. REQUIRED.
weight_kgYesGross weight per carton in kg. REQUIRED — it drives the weight-binding & overweight logic.
target_unitsNoTotal units to ship (converted via units_per_carton) → produces a container mix. Optional.
heavy_chassisNoUse the heavy/tri-axle road limit instead of the standard chassis cap. Optional.
target_cartonsNoTotal cartons to ship → produces a container MIX. Optional.
units_per_cartonNoUnits (pieces) per carton, for unit-level totals. Optional; default 1.
destination_countryNoDestination ISO-2 country (e.g. 'US', 'DE') → enables the road-weight overweight check. Optional.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries the full burden. It discloses that the output is 'indicative stowage PLANNING' and not a certification, and mentions the PREMIUM payment requirement (x402 USDC or prepaid key). It also warns about road weight limits and overweight scenarios. There is no contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is thorough but verbose, containing many details in a single block. It is front-loaded with the main purpose and uses bullet points in spirit, but could be more concise. Every sentence adds value, but the length may reduce readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 10 parameters, no output schema, and no annotations, the description is highly comprehensive. It explains the key outputs (units fit, binding constraint, utilization, container comparison, overweight warning, mix) and covers important edge cases (dense vs. light cargo, road weight limits).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with each parameter having a description. The tool description goes beyond the schema by explaining how parameters are used (e.g., weight drives weight-binding logic, target_units produces container mix). It adds contextual meaning without contradicting the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Optimize how a product LOADS into a container' and lists specific computations (units fit by volume/weight, binding constraint, utilization, container comparison). It distinguishes from sibling 'pallet_plan' by focusing on container stowage rather than pallet optimization.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description specifies inputs ('Give the CARTON dimensions and gross weight') and optional parameters, and explains when to use (stowage/cube-and-weight question). It also notes what it does not do ('not a load-securing certification'). However, it does not explicitly contrast with sibling tools like 'pallet_plan'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

market_reportAInspect

Compose freight-pulse's whole engine stack into ONE executive market-intelligence report for a lane — the committee-ready brief a head of logistics presents. Give the lane (and optionally a product + merchandise value to deepen it) and it returns a structured, sectioned report: 1) MARKET STATE & OUTLOOK — today's cross-validated spot + direction, the Holt-Winters forecast with intervals, the seasonality calendar overlaid on your ship date (CNY / Golden Week / peak / GRIs / blank sailings), and an anomaly read; 2) COST — all-in freight and, with product+value, the full landed cost (duty / 301 / FTA / import VAT); 3) TRANSIT, RELIABILITY & PORT CONGESTION — operational risk, added delay, active disruptions; 4) RECOMMENDATIONS — the unified mode + carrier + book-now/wait timing; 5) RISKS & MITIGATIONS; 6) ESG — ocean CO2e and EU-ETS carbon cost; plus an EXECUTIVE SUMMARY, a HEADLINE call, and a Monday-morning ACTION LIST. Every section is sourced from a real modeled engine and tagged; the report names which engines contributed and which weren't available for the lane. Honest (regla 7): indicative decision support, not a quote/booking/legal advice. PREMIUM: pay per call with x402 (USDC on Base) or a prepaid key.

ParametersJSON Schema
NameRequiredDescriptionDefault
valueNoMerchandise value (USD) — unlocks landed cost + the unified mode/carrier/timing decision. Optional but recommended.
hs_codeNoExplicit HS code. Optional.
productNoProduct / HS to unlock the landed-cost & decision sections. Optional.
dest_portYesDestination port.
ship_dateNoPlanned ship date (YYYY-MM-DD). Optional; default today. Overlays the seasonality calendar.
volume_m3NoCargo volume (m3). Optional.
weight_kgNoCargo weight (kg) — sharpens emissions & decisioning. Optional.
origin_portYesOrigin port (city name, UN/LOCODE, or 'City, Country').
container_typeNoContainer '20ft'/'40ft'/'40HC'. Optional; default '40ft'.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It details the report contents, that it's sourced from modeled engines, includes an honesty disclaimer, and mentions payment. It does not cover rate limits or authentication, but for an insight tool this is reasonable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is relatively long but well-structured with numbered sections and bullet points. It front-loads the purpose. Some details like payment instructions could be considered extra, but overall it efficiently conveys the tool's capabilities.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (9 parameters, no output schema), the description thoroughly explains the output report structure, data sources, and usage context. It covers all necessary aspects for an agent to invoke the tool correctly and understand the return value.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds value by explaining which optional parameters unlock specific sections (e.g., merchandise value unlocks landed cost). However, parameter semantics are mainly covered by schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool composes a comprehensive executive market-intelligence report for a lane, listing all sections. It distinguishes from sibling tools that focus on specific aspects (e.g., spot rates, landed cost, carrier recommendations).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates the tool is for generating a committee-ready brief for a head of logistics, implying a comprehensive overview. It does not explicitly state when not to use it or list alternatives, but the context of sibling tools provides differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

optimize_networkAInspect

Optimize a shipper's ENTIRE annual lane PORTFOLIO at once — the question the single-lane tools can't answer. Give a SET of lanes with their annual volumes (an importer's network) and the engine optimizes globally: it procures each lane (contract / spot / optimal mix) and costs it, scores its schedule reliability and its CO2, then enforces NETWORK CONSTRAINTS — a total freight BUDGET (shifts soft-market lanes to locked contracts to fit), a minimum SERVICE level (won't cut a lane's reliability below the floor to save money), and an ESG CO2 ceiling (targets the carbon-heaviest lanes). It surfaces the TOP SAVING lanes (spot-vs-contract spread × volume), where to CONSOLIDATE volume under one alliance contract for a better tier, and the network coste/servicio/CO2 trade-off. Reuses the same modeled engines as the per-lane tools, so the portfolio answer is coherent with each lane. Indicative portfolio guidance, not a tendered rate or committed allocation (regla 7). PREMIUM: x402 (USDC on Base) or a prepaid key.

ParametersJSON Schema
NameRequiredDescriptionDefault
lanesYesThe lane portfolio. Each item: { origin_port, dest_port, annual_volume, container_type?, contract_rate_offered? }. REQUIRED, max 30.
budgetNoTotal annual freight budget (USD). If exceeded, the engine recommends shifting lanes toward locked contracts. Optional.
ship_dateNoReference ship date (ISO) for the seasonal/market context. Optional.
max_co2_tonnesNoNetwork CO2 ceiling (tonnes/yr). If exceeded, the engine targets the carbon-heaviest lanes. Optional.
risk_toleranceNo'low', 'medium' (default) or 'high' — the portfolio's appetite for spot exposure.
min_reliabilityNoMinimum acceptable schedule reliability (0-100) on any lane. Lanes below it are flagged; cost is not cut at the expense of service. Optional.
consolidation_thresholdNoVolume (containers/yr) at which a lane earns a consolidated-contract tier. Optional; default 500.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries full burden. It reveals key behavioral traits: global optimization, network constraints enforcement (budget, service level, CO2 ceiling), output of top saving lanes, consolidation opportunities, and trade-offs. It also includes a disclaimer that output is indicative, not committed. Missing details on error handling or permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well-structured, with key terms capitalized for emphasis. It front-loads the main purpose and then details constraints and outputs. It could be slightly more concise, but every sentence provides relevant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (7 parameters, no output schema, no annotations), the description is quite complete. It explains the high-level process, constraints, and expected outputs (savings, consolidation, trade-offs). It lacks a structured return value description, but given no output schema, it provides enough context for an agent to form expectations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, baseline 3. The description adds value by explaining how parameters interact (e.g., budget shifts lanes to locked contracts, CO2 ceiling targets heaviest lanes) and provides context beyond the schema definitions. This helps an agent understand the optimization logic.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Optimize a shipper's ENTIRE annual lane PORTFOLIO at once'. It specifies the verb 'optimize' and the resource 'annual lane portfolio', and distinguishes it from single-lane tools by stating it answers the question they can't. The scope is explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool (for a portfolio of lanes) by noting that single-lane tools can't answer this question. It also mentions it reuses engines from per-lane tools for coherence. However, it does not explicitly state when not to use it or compare to sibling tools like procurement_strategy or simulate_scenario.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pallet_planAInspect

Optimize PALLETIZATION across the full chain product → case → pallet → container (distinct from the box→container load optimizer). Give a case (carton) size & weight, a pallet standard (EUR 1200×800, EUR2 1200×1000, US/GMA 48×40, AU 1165) and a container, and it computes: cases per pallet (best layer pattern from both case orientations + pinwheel × layers, capped by the pallet weight AND the container height), pallets per container (floor footprint × single-vs-double-stack under the ceiling, capped by payload), and the % container CUBE UTILISATION. It then contrasts PALLETIZED vs FLOOR-LOADED: floor-loading reclaims the ~12–18% cube a pallet wastes (deck + top-air + footprint rounding) but is ~4× slower to handle and bruises more cargo — the real trade-off, quantified in extra cases and cube points. Pass a total case count for the pallets/containers your shipment needs. Honest (regla 7): INDICATIVE rectangular-packing geometry capped by weight/height — not a stow guarantee; real patterns depend on crush strength, interlocking and overhang. PREMIUM: pay per call with x402 (USDC on Base) or a prepaid key.

ParametersJSON Schema
NameRequiredDescriptionDefault
palletNoPallet standard: 'EUR' (1200×800), 'EUR2' (1200×1000), 'US' (48×40), 'AU' (1165). Optional; default EUR.
reeferNoReefer container. Optional; default false.
total_casesNoTotal shipment case count → pallets & containers needed. Optional.
case_width_mmNoCase width in mm. Optional; default 300.
case_height_mmNoCase height in mm. Optional; default 250.
case_length_mmNoCase (carton) length in mm. Optional; default 400.
case_weight_kgNoCase weight in kg. Optional; default 12.
container_typeNoContainer '20ft'/'40ft'/'40HC'/reefer. Optional; default 40HC.
allow_double_stackNoAllow double-stacking pallets if height permits. Optional; default true.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses that results are indicative rectangular-packing geometry capped by weight/height, not a stow guarantee. Also mentions the premium payment model, providing complete behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is fairly long but well-structured, starting with the main purpose and then detailing outputs and trade-offs. Every sentence adds value, though it could be more concise without losing substance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (9 parameters, no output schema, no annotations), the description is remarkably complete: it explains inputs, outputs, constraints, limitations, and even the premium model, enabling an agent to understand and use the tool effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline 3. The description does not add additional meaning beyond what the schema provides for individual parameters, though it gives context on how parameters are used (e.g., 'total case count' for shipment needs).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool optimizes palletization across the chain (product→case→pallet→container) and distinguishes it from a box→container load optimizer, with specific verbs like 'computes' and 'contrasts'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context: tells user to pass a total case count, contrasts palletized vs floor-loaded, and mentions when to use. However, lacks explicit 'when not to use' or alternative tool names besides the vague sibling reference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

payment_termsAInspect

Recommend the TRADE-FINANCE / PAYMENT TERMS for an import deal — the other half of the transaction the freight tools ignore. Give the lane (→ exporter country at origin, importer country at destination), the invoice value and the counterparty RELATIONSHIP, and it scores the payment-instrument spectrum — CASH-IN-ADVANCE / LETTER OF CREDIT (irrevocable, possibly CONFIRMED) / DOCUMENTARY COLLECTION D/P (documents against payment) / D/A (documents against acceptance) / OPEN ACCOUNT — on its RISK ALLOCATION (CIA = all risk on the buyer … open account = all risk on the seller) and arrange cost, then recommends one by the relationship × COUNTRY-RISK matrix: a new counterparty in a high-risk importer country → an irrevocable, confirmed LC; an established relationship in a safe country → cheaper open account; in between → documentary collection. It PRICES the LC commission for the deal (issuing rises with importer-country risk; confirmation — a bank in the seller's country adding its guarantee — adds a country-risk-scaled premium), and ties to Incoterms (CIF/CIP put insurance on the seller; an LC pairs with the FOB/CFR document set). Country-risk and LC-commission bands are MODELED market-typical figures; this is not financial, legal or banking advice (regla 7). PREMIUM: x402 (USDC on Base) or a prepaid key.

ParametersJSON Schema
NameRequiredDescriptionDefault
incotermNoOptional Incoterms 2020 rule (CIF, FOB, CIP…) for the document-set tie-in note.
confirmedNoForce the LC pricing confirmed/unconfirmed. Optional; default = auto by importer-country risk.
dest_portYesDestination port — its COUNTRY is taken as the importer/buyer country (drives the country-risk band).
origin_portYesOrigin port — its COUNTRY is taken as the exporter/seller country.
relationshipNoCounterparty relationship strength: 'new', 'developing' (default), 'established' or 'long-term'. The single biggest driver of the recommendation.
invoice_valueYesCommercial invoice value in USD. REQUIRED — finance costs are priced on it.
container_typeNoContainer size '20ft'/'40ft'/'40HC'. Optional; defaults to '40ft'.
exporter_countryNoOverride the exporter ISO-2 country (else taken from the origin port).
importer_countryNoOverride the importer ISO-2 country (else taken from the destination port).
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden and does well. It discloses that it scores instruments, recommends based on a matrix, prices LC commissions, ties to Incoterms, and notes that figures are modeled and not financial advice. This provides clear behavioral expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is lengthy but well-structured with logical progression: inputs, scoring, recommendation logic, pricing, and disclaimers. Every sentence adds value, though some condensation might improve readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 9 parameters, no output schema, and medium complexity, the description is quite complete. It explains the decision logic, inputs, pricing, and tie-ins to Incoterms and premium payment. It lacks explicit output format but is sufficient for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds meaningful context beyond schema: e.g., relationship as the biggest driver, invoice value as basis for pricing, and how origin/dest ports map to countries. This enriches understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool recommends trade finance payment terms for import deals, specifically calling out it is 'the other half the transaction the freight tools ignore.' It lists the payment instruments and the decision matrix, making purpose very specific and differentiating from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use the tool (for import deals) and provides guidance on required inputs (lane, invoice value, relationship). It gives examples of recommendations based on relationship and country risk. While not explicitly stating when not to use it, the context is sufficient for correct invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

procurement_strategyAInspect

Decide the OCEAN SOURCING STRATEGY for a lane over a YEAR — lock an annual/quarterly CONTRACT rate, stay on SPOT, or SPLIT — and in what proportion. This is the procurement/CFO decision the other tools don't touch: not 'book this box now' but 'how do I source my whole volume?'. It costs THREE strategies over your expected annual volume: 100% SPOT, 100% CONTRACT, and the OPTIMAL MIX. The spot side is a real DISTRIBUTION, not a mean: it builds a 52-week expected-spot path from our own forecast (Holt-Winters), the corridor's spot volatility and the seasonal calendar, so a peak-season spike shows up as a fat P95 TAIL. It reads the MARKET REGIME (soft / balanced / tight / extreme) — because the contract↔spot relationship FLIPS with the cycle: in a soft market a contract sits ABOVE cheap spot (you'd overpay), in a tight market spot spikes above contract (the contract PROTECTS you). It computes the BREAK-EVEN contract rate (where 100% contract beats expected 100% spot), optimizes the contract/spot MIX on a mean-variance objective for your risk tolerance (contract the steady base, leave the peak on spot), models MQC shortfall penalties (the cost of over-committing in a light year) and the loading-PRIORITY a contract buys (less peak rollover), and quantifies the VALUE OF PROTECTION in dollars. Honest by design (regla 7): the contract↔spot relationship is regime-dependent and uncertain, so contract rates are MODELED BANDS anchored to the lane's mid-cycle — NOT a filed carrier tariff. Pass your own offered contract rate to score it against break-even. PREMIUM: pay per call with x402 (USDC on Base) or set a prepaid key (FREIGHT_PULSE_KEY). Same UN/LOCODE port normalization as get_spot_rate.

ParametersJSON Schema
NameRequiredDescriptionDefault
weeksNoWeeks of lane history to analyze for the forecast & mid-cycle reference (4–52, default 16). Optional.
dest_portYesDestination port (city name, UN/LOCODE, or 'City, Country').
ship_dateNoShip-date / contract-start anchor (ISO 'YYYY-MM-DD') for the seasonal & forecast overlay. Optional; defaults to today.
volume_cvNoRelative std-dev of YOUR annual volume (e.g. 0.2 = ±20%), driving MQC shortfall risk. Optional; default 0.20.
origin_portYesOrigin port (city name, UN/LOCODE, or 'City, Country'). Same resolution as get_spot_rate.
annual_volumeYesExpected ANNUAL volume in containers of this type (TEU-equivalent ok) — REQUIRED. It is the basis of the contract-vs-spot trade-off.
container_typeNoContainer size '20ft'/'40ft'/'40HC'. Optional; defaults to '40ft'.
risk_toleranceNo'low' (pay to avoid the tail → favors contract), 'medium' (default), or 'high' (chase the mean → favors spot). Sets the mean-variance λ.
contract_rate_offeredNoAn actual contract rate you've been offered (USD/container). If given, it is scored against break-even instead of using the modeled band. Optional.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully discloses behavioral traits: it costs three strategies, uses Holt-Winters forecast, reads market regime, computes break-even, optimizes mix, models MQC penalties and loading priority, and mentions pricing. This is comprehensive without omitting critical behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and front-loads the main purpose but contains very long sentences and extensive technical detail. While informative, it lacks brevity and could be structured more concisely for quick comprehension by an AI agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (9 params, no output schema), the description covers the model, assumptions, and expected outputs (break-even, optimal mix, etc.) quite well. However, the lack of an output schema means the agent may not fully anticipate the response structure, reducing completeness slightly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides 100% coverage with descriptions. The description adds beyond the schema by explaining the role of annual_volume as the basis, risk_tolerance's effect, and contract_rate_offered's scoring purpose. This adds meaningful context, going beyond the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool decides ocean sourcing strategy (contract, spot, or split) over a year, distinguishing it from operational booking tools: 'not 'book this box now' but 'how do I source my whole volume?'. The verb 'decide' and specific resource 'OCEAN SOURCING STRATEGY' make the purpose highly specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for strategic annual volume decisions and distinguishes from tactical tools. It mentions prerequisites like annual volume and optional contract rate. However, it does not explicitly state when not to use or provide clear alternatives among siblings, though the context suggests a distinct role.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

qualify_fta_originAInspect

Does your product actually QUALIFY for the FTA preference? The expensive detail iter14's sourcing/landed-cost silently assumes away: the USMCA / EVFTA / CETA / RCEP / KORUS preferential (usually 0%) duty applies ONLY if the good MEETS the agreement's RULE OF ORIGIN — and a huge share of would-be-preferential imports FAIL it (Chinese fabric cut in Vietnam misses EVFTA's yarn-forward rule; a Mexican assembly that's 60% imported misses USMCA's RVC). Give the product (or HS), the country of MANUFACTURE, the destination market, and the bill of MATERIALS (each input's value + origin + optional HS), and it computes against the resolved FTA's product rule: REGIONAL VALUE CONTENT (both transaction-value and net-cost methods vs the threshold), TARIFF SHIFT / change in tariff classification (CC chapter / CTH heading / CTSH subheading), DE-MINIMIS tolerance, and agreement-specific rules (USMCA autos 75% RVC + steel/aluminium; EVFTA apparel yarn-forward). It returns the VERDICT — QUALIFIES or NOT, WHY, exactly how many RVC points (and how much $) you're short, and the concrete paths to qualify. Links to iter4 (HS) and iter14 (sourcing/duty). ⚠️ Rules of origin are among the most complex parts of trade law — MODELED, INDICATIVE qualification aid, NOT a legal origin determination; the agreement's PSR annex + a licensed broker govern the binding answer, and a wrong preference claim carries duty + penalty exposure (regla 7). PREMIUM: pay per call with x402 (USDC on Base) or a prepaid key.

ParametersJSON Schema
NameRequiredDescriptionDefault
hs_codeNoExplicit HS code (6+ digits) of the finished good. Provide this OR product.
productNoProduct description to classify (e.g. 'cotton t-shirt'). Provide this OR hs_code.
materialsYesBill of materials: each { description, value (USD), origin (ISO2/name), hs_code? }. REQUIRED.
destinationYesDestination market — country (ISO2/name) or a port. Its bloc sets the FTA. REQUIRED.
net_cost_fractionNoNet cost as a fraction of transaction value for the net-cost RVC method (default 0.85). Optional.
transaction_valueYesFOB value of the FINISHED good in USD (the RVC denominator). REQUIRED.
manufacture_countryYesCountry where the finished good is MADE (ISO2 like 'VN' or a name). REQUIRED.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears full burden. It discloses the tool is a modeled, indicative aid, explains the underlying rules, and warns about legal exposure. It mentions pricing but does not explicitly state read-only or destructive behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is informative but verbose, including detailed examples and warnings. It is front-loaded with the core question, but could be more concise by trimming less essential examples and separating pricing info.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (7 parameters, no output schema, no annotations), the description is highly complete. It explains inputs, logic, output format (verdict, reasons, RVC points, paths to qualify), limitations, and links to related tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds meaningful context beyond schema descriptions, e.g., explaining transaction_value as 'FOB value of the finished good in USD (the RVC denominator)' and detailing the materials structure.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: checking if a product qualifies for FTA preference. It specifies the verb 'compute' and resource 'FTA origin qualification', and distinguishes itself from siblings by referencing iter4 and iter14.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use the tool, listing required inputs. It warns that it's an indicative aid, not a legal determination. However, it does not explicitly state when not to use it or compare to sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rate_benchmarkAInspect

Benchmark a rate you ALREADY PAY against the market — the 'am I being clamped?' check every shipper wants. Give the lane + the rate you pay (paid_rate_usd) and it places that rate in the MARKET BAND of the corridor (percentile against p20 / median / p80), built from the cross-validated index mid (Drewry WCI + Freightos FBX) and the corridor's modeled rate dispersion. It returns where you sit (p20 = a strong price, median = fair, p80 = over-paying), how much you OVER- or UNDER-pay vs the market mid in $/container and per YEAR at your volume, and the LEVER to correct it — renegotiate to the median, tender the lane, switch carrier/alliance, or lock a good price. A contract rate sitting above the median in a soft/falling market is flagged for renegotiation, not just labelled expensive. Proves: a rate at the p80 → 'you over-pay $X/ctr; renegotiate toward the median to save $X×volume/yr'; a rate at the p20 → 'good price, hold it'. The SAME rate is placed differently as the live band moves. Honest (regla 7): the band is a MODELED dispersion around the index mid, NOT a panel of real quotes — a true benchmark needs a rate panel (Xeneta/SeaRates). PREMIUM: pay per call with x402 (USDC on Base) or a prepaid key.

ParametersJSON Schema
NameRequiredDescriptionDefault
basisNo'spot' (default — bare ocean freight) or 'all-in' (base + surcharges) — match it to what your paid rate INCLUDES. Optional.
dest_portYesDestination port.
ship_dateNoShip date (YYYY-MM-DD) for the market read. Optional; default today.
is_contractNoIs the paid rate a CONTRACT rate? Flags a high contract in a soft/falling market. Optional.
origin_portYesOrigin port (city name, UN/LOCODE, or 'City, Country').
paid_rate_usdYesThe rate you currently PAY for this lane (USD per container). REQUIRED — this is what gets benchmarked.
container_typeNoContainer '20ft'/'40ft'/'40HC'. Optional; default '40ft'.
annual_containersNoAnnual containers on this lane — to annualise the over/under-payment & savings. Optional.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, but description fully discloses data sources (Drewry WCI + Freightos FBX), method (modeled dispersion), and limitations. Payment model (pay per call) is also mentioned, which is helpful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is verbose but well-structured with front-loaded purpose. Each sentence adds value, though could be slightly more concise. For a complex tool with 8 parameters, length is justified.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given complexity, no output schema, description covers return values (percentile, over/under payment, leverage) with examples. Also explains model limitations and payment, making it fairly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 8 parameters have schema descriptions, and description adds context: explains is_contract flag for contract rates, default values for ship_date and container_type, and annual_containers for annualizing savings.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool benchmarks a rate against market, providing percentile position and savings. It distinguishes from siblings like get_spot_rate and market_report by focusing on 'am I being clamped?' check for rates already paid.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance: use when you have a paid rate and want to know if it's fair. Also warns about limitations (modeled dispersion, not real quotes) and suggests alternative for true benchmark, using honest (regla 7) caveat.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

record_performanceAInspect

Log a shipment's REAL outcome into your private supplier/carrier/lane SCORECARD — the tool that makes freight-pulse RECURRING (you feed it, it accumulates a history no single source hands you). Give the SUBJECT (a carrier like 'Maersk', a supplier, or a lane) and the outcome — promised vs actual transit days, on-time, damage, documentary discrepancy, rollover — and it appends the event to your log, PERSISTED SERVER-SIDE per your key, then returns the subject's running KPIs (OTP %, reliability score, damage/discrepancy/roll rates). Pair with get_scorecard to rank and trend your network over time. Links to iter8 (structural carrier intel) — this is the EMPIRICAL counterpart. Honest (regla 7): it's YOUR own log — KPIs reflect only what you record, small samples flagged. PREMIUM: pay per call with x402 (USDC on Base) or a prepaid key.

ParametersJSON Schema
NameRequiredDescriptionDefault
laneNoLane label for context (e.g. 'Shanghai → Los Angeles'). Optional.
noteNoFree-text note. Optional.
rolledNoWas the container rolled / shut out?
damagedNoWere goods damaged?
on_timeNoExplicit on-time flag (else derived from promised+actual).
subjectYesCarrier / supplier / lane name to record against. REQUIRED.
actual_daysNoActual transit/delivery in days.
discrepancyNoWas there a documentary discrepancy?
subject_typeNo'carrier' (default), 'supplier' or 'lane'.
promised_daysNoPromised transit/delivery in days.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden and thoroughly discloses behavior: records data server-side, returns running KPIs, notes that KPIs reflect only recorded data and flags small samples, and mentions PREMIUM pay-per-call pricing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose and uses marketing language, which detracts from conciseness. Although the key purpose is front-loaded, several sentences could be condensed without losing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (10 parameters) and lack of output schema, the description adequately covers the tool's complete behavior: what it logs, what metrics it returns, and how it integrates with other tools like 'get_scorecard'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

While schema coverage is 100%, the description adds value by grouping parameters conceptually (e.g., 'promised vs actual transit days', 'on-time, damage, documentary discrepancy, rollover') and explaining their role in the tool's purpose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Log') and resource ('supplier/carrier/lane SCORECARD'), and distinguishes from sibling tool 'get_scorecard' by labeling this as the empirical counterpart for recording individual events.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly pairs with 'get_scorecard' for ranking and trending and mentions it as the empirical counterpart to 'iter8', providing clear context for when to use. However, it does not explicitly state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

required_documentsAInspect

Produce the CHECKLIST of trade documents a shipment of THESE goods to THIS destination commonly needs — the paperwork that, if missed, gets the box fined, held or the duty overpaid. Returns the always-on commercial set (commercial invoice, packing list, Bill of Lading or Sea Waybill), the GOODS-TRIGGERED specials (lithium-battery Dangerous-Goods declaration for electronics/batteries, Safety Data Sheet + DG for chemicals, ISPM-15 wood treatment / phytosanitary for furniture/wood, textile & origin declarations for apparel/footwear), the DESTINATION import-regime filings (US Importer Security Filing ISF 10+2 — filed ≥24h before loading, $5,000 penalty if late; EU Entry Summary Declaration ENS via ICS2; UK Safety & Security), and the Certificate of Origin (recommended, and REQUIRED in preferential form to claim a reduced FTA duty rate). Pass a product description (it's classified to an HS family to trigger the right specials) or an explicit hs_code; without it you still get the core + destination set. Pass an Incoterm to tag each document with WHO is responsible under it (e.g. under DDP the seller files the import-side ISF). Indicative common-case checklist — NOT a customs broker's binding filing list (regla 7). PREMIUM: pay per call with x402 (USDC on Base) or set a prepaid key (FREIGHT_PULSE_KEY). Same UN/LOCODE port normalization as get_spot_rate.

ParametersJSON Schema
NameRequiredDescriptionDefault
hs_codeNoExplicit HS code (overrides the text classifier). Provide this OR product.
productNoProduct description, e.g. 'bluetooth earbuds', 'office chairs', 'cotton t-shirts' — classified to trigger goods-specific docs (DG, ISPM-15, textile). Provide this OR hs_code.
incotermNoOptional Incoterms 2020 rule to tag responsibilities (EXW…DDP).
dest_portYesDestination port (city, UN/LOCODE). The destination country drives which advance filing applies (US ISF, EU ENS, UK S&S).
origin_portYesOrigin port (city, UN/LOCODE, or 'City, Country'). The origin country drives the certificate-of-origin / FTA note.
container_typeNoContainer size '20ft'/'40ft'/'40HC' (informational). Optional; defaults to '40ft'.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It describes the output and mentions pricing and port normalization, but does not declare side effects (likely none). It is transparent about limitations (not binding) and scope.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but well-structured: purpose first, then content breakdown, parameter guidance, caveats, and pricing. Each sentence adds value, though some details (e.g., specific penalty amounts) could be trimmed without loss.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 6 parameters, 2 required, no output schema, the description adequately describes the return value (a checklist covering commercial, specials, destination filings, COO). It also mentions responsibilities with incoterm and includes disclaimers. Some might want more on output format, but it's sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description adds significant value beyond parameter names: e.g., hs_code 'overrides text classifier', product triggers specific docs, incoterm tags responsibilities, dest_port drives filing type. Every parameter is enriched with examples and usage context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it produces a checklist of trade documents for a specific goods-destination pair. It distinguishes itself from sibling tools like get_spot_rate or customs_optimization by focusing on documentary requirements.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use (to avoid fines, holds, overpaid duty), what it includes (commercial set, goods-triggered specials, destination filings), and caveats (indicative, not binding). It lacks explicit 'use this instead of X' but provides sufficient context among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reverse_logisticsAInspect

The reverse flow almost nobody models: goods have to come BACK from the destination market — what do you do with them? Give the lane + how many units + their value + condition (defective / RMA / over-stock / surplus), and it prices the three dispositions per unit and picks the best NET RECOVERY: RETURN (reverse freight ≈1.6× forward + recondition/handling, reclaiming the re-export DUTY DRAWBACK already paid — 99% recovery, but Section-301 duty is carved out), DESTROY in destination (cheap, zero product value, still drawback-eligible) or LIQUIDATE into the destination secondary market (some cash back, no reverse freight, no drawback). It proves the rule: high unit value + recoverable duty + cheap reverse freight → RETURN; reverse freight per unit above the recoverable value → never ship it home (destroy for the drawback, or liquidate locally — whichever nets more). Flags the storage bleed that forces the decision window. Honest (regla 7): INDICATIVE recovery fractions, freight multipliers & handling defaults you should override; drawback eligibility and the §301 carve-out are real but filing-specific — NOT customs/legal advice. PREMIUM: pay per call with x402 (USDC on Base) or a prepaid key.

ParametersJSON Schema
NameRequiredDescriptionDefault
conditionNo'defective' / 'rma' / 'overstock' / 'surplus' — sets recovery & recondition. Optional; default rma.
dest_portYesDestination port (where the goods currently are).
ship_dateNoShip date (YYYY-MM-DD) for the freight anchor. Optional.
origin_portYesOrigin port (where the goods would RETURN to). City name, UN/LOCODE, or 'City, Country'.
pending_daysNoDays the goods sit pending a decision (storage bleed). Optional; default 0.
container_typeNoContainer '20ft'/'40ft'/'40HC'. Optional; default '40ft'.
quantity_unitsYesHow many units are coming back. REQUIRED.
unit_value_usdYesPer-unit value (USD). REQUIRED — drives recovery, handling and the decision.
recondition_hubNoReturn to a reconditioning HUB instead of origin (shorter, cheaper return leg). Optional.
drawback_eligibleNoIs re-export/destruction drawback available to you? Optional; default true.
units_per_containerNoUnits per container — to spread container freight over units. Optional.
duty_paid_per_unit_usdNoDuty already paid per unit on the original import (USD) — drives the drawback reclaim. Optional; default 0.
section301_per_unit_usdNoOf that duty, the Section-301 slice per unit (USD) — NOT drawback-eligible. Optional; default 0.
forward_freight_per_unit_usdNoOverride the forward per-unit freight (USD) instead of deriving it from the lane. Optional.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears full burden. It discloses the tool's behavior: it calculates three dispositions, picks best net recovery, uses default multipliers and recovery fractions, flags storage bleed, and notes it's indicative and not legal advice. It also mentions pricing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well-organized, starting with the purpose and then detailing inputs, logic, and caveats. It is slightly long but every sentence adds value, so it earns its length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema is provided, so the description explains that the tool prices three dispositions and picks the best net recovery. It also covers extras like storage bleed and honesty disclaimers. While not specifying exact output format, it gives sufficient context for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, but the description adds value by explaining how parameters like unit_value_usd drive recovery and decision logic. It goes beyond schema descriptions to show how inputs are used in the model.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool models reverse logistics, takes inputs (lane, units, value, condition), and outputs the best disposition (return, destroy, liquidate) based on net recovery. It is distinct from all sibling tools, which focus on forward logistics or other areas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use (goods returning from destination) and provides decision rules (e.g., high unit value + recoverable duty + cheap reverse freight → RETURN). It does not explicitly list when not to use, but the context makes it clear for reverse logistics scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

select_providerAInspect

Choose the right freight INTERMEDIARY — freight forwarder, 3PL/4PL, customs broker, NVOCC or carrier-direct — and know how to grade them. Give a NEED profile (priority cost vs service, cargo specialisation reefer/dangerous-goods/project/e-commerce/high-value, annual volume, corridor count, whether you need warehousing, whether customs is the hard part) and it scores every provider archetype on weighted criteria (corridor coverage, specialisation, technology/visibility, customs depth, cost, service, financial stability), RANKS them, recommends the provider TYPE (+ a pairing, e.g. niche forwarder + customs broker), and emits a weighted SCORECARD you fill in for real candidates. Proves: a reefer-heavy, low-volume, service-led need → a niche cold-chain forwarder tops the rank (NOT a generic mega-3PL); a high-volume cost-led need on a few lanes → carrier-direct / NVOCC; a customs-heavy need pulls in a customs-broker pairing. The criterion weights shift with the need, so the recommendation changes when the profile changes. Honest (regla 7): INDICATIVE archetypes & weights — NOT an endorsement of, or performance claim about, any named provider; run your own RFI/references. PREMIUM: pay per call with x402 (USDC on Base) or a prepaid key.

ParametersJSON Schema
NameRequiredDescriptionDefault
priorityNo'cost' | 'service' | 'balanced' — the primary driver. Optional; default balanced.
cargo_typeNoAlias for 'specialisation' — a free-text cargo description is parsed into a specialisation. Optional.
customs_heavyNoIs customs the hard part (high-duty, regulated, FTA-heavy)? Pulls in a customs broker. Optional.
corridor_countNoNumber of distinct corridors/regions you ship. Optional; default 1.
specialisationNoCargo specialisation needed: 'reefer' / 'dangerous-goods' / 'project' / 'ecommerce' / 'high-value' / 'none'. Optional; default none.
annual_containersNoAnnual container volume (rough) — sets the volume band (low <50, mid, high ≥500). Optional.
needs_warehousingNoDo you need warehousing/fulfilment, not just transport? Pulls toward 3PL/4PL. Optional.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description fully covers behavioral traits. It discloses that recommendations are indicative, not endorsements, mentions honesty (regla 7), and explains the shifting weights and output. It also notes premium payment options.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but structured with clear sections: purpose, examples, honesty, premium. Every sentence adds value, though some redundancy could be trimmed. It remains focused on the tool's functionality.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters, no output schema, the description fully explains the tool's output (scores, ranks, recommendation, scorecard) and how weights shift with need. It is complete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description adds meaning beyond the schema by explaining how parameters affect the tool's logic (e.g., cargo_type as alias for specialisation, needs_warehousing pulling toward 3PL/4PL). This enriches the semantic understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool selects the right freight intermediary type, scores provider archetypes, ranks them, and recommends a type with pairing. It distinguishes from siblings like carrier_recommendation by focusing on intermediary roles rather than specific carriers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the use case (giving a need profile to get ranked archetypes) but does not explicitly address when to use this versus sibling tools like carrier_recommendation or evaluate_bids. No when-not-to-use guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ship_decisionAInspect

The UNIFIED decision tool — integrates EVERY freight-pulse layer (rate/forecast, all-in cost, transit & reliability, mode-choice, procurement, port congestion, carrier/alliance, emissions, equipment availability, Incoterms, demurrage & detention, and cargo insurance) into ONE actionable answer for a CONCRETE shipment. This is the tool that makes freight-pulse insustituible: it doesn't just price one layer, it WEIGHS them all coherently. Give the lane + merchandise value (+ optional weight/volume, ship date, urgency, deadline, product, Incoterm, carrier) and it returns: the recommended MODE (urgency-aware — a critical deadline can override the economic optimum toward air/sea-air), the recommended CARRIER for the corridor, the book-now / book-soon / wait / monitor TIMING (the forecast call, overlaid with a building congestion/equipment crunch), the total COST PUESTO EN DESTINO (landed: goods + freight + duty + import tax, when a product is given), and the KEY RISKS with concrete MITIGATIONS (Red-Sea diversion, port congestion, equipment scarcity, D&D exposure, transit-risk insurance). Every component is computed by its own modeled engine and folded in transparently (the breakdown is shown). Indicative decision support — not a booking or a quote (regla 7). PREMIUM: pay per call with x402 (USDC on Base) or set a prepaid key (FREIGHT_PULSE_KEY). Same UN/LOCODE port normalization as get_spot_rate.

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYesMerchandise value (USD) — REQUIRED. Drives mode-choice (capital in transit), insurance and (with a product) landed cost.
carrierNoOptional preferred carrier (refines equipment & D&D).
hs_codeNoExplicit HS code (alternative to product). Optional.
productNoProduct description or HS context — enables the landed-cost (duty) component. Optional.
urgencyNo'relaxed', 'normal' (default), 'urgent' or 'critical'. A critical/urgent shipment shifts the recommendation toward speed (air/sea-air) and a reliability-led carrier.
deadlineNoHard arrival deadline (ISO 'YYYY-MM-DD') — adds an expected-stockout cost to the mode decision. Optional.
incotermNoOptional Incoterms 2020 rule (EXW…DDP) — sets who carries transit risk in the risk assessment.
dest_portYesDestination port (city, UN/LOCODE, or 'City, Country').
ship_dateNoIntended ship date (ISO). Drives seasonality, congestion and the book-now call. Optional; defaults to today.
volume_m3NoShipment volume (m³) — drives the air volumetric weight. Optional.
weight_kgNoShipment gross weight (kg) — sharpens mode-choice (air chargeable weight) and emissions. Optional.
origin_portYesOrigin port (city, UN/LOCODE, or 'City, Country').
annual_volumeNoOptional annual volume (containers) — informational for the decision context.
container_typeNoContainer size '20ft'/'40ft'/'40HC'. Optional; defaults to '40ft'.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral transparency. It discloses that the tool is indicative, not a binding booking or quote, and mentions payment per call via crypto or prepaid key. It also states that each component is computed by its own engine and the breakdown is shown. This provides adequate transparency about the tool's nature and limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is thorough but slightly lengthy. It front-loads the core purpose and then lists outputs and inputs. Each sentence adds value, though some sections (like payment info) could be condensed. Overall, it is well-structured for a complex tool, balancing detail with clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's substantial complexity (14 parameters, no output schema), the description is remarkably complete. It explains the tool's role as a unified decision maker, covers all key input effects, describes the output components (mode, carrier, timing, cost, risks), and sets proper expectations (indicative, not a quote). No critical aspect is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite 100% schema description coverage, the description adds substantial meaning beyond the schema. It explains how optional parameters like urgency can override mode choice towards speed, how deadline adds stockout cost, how volume_m3 affects air volumetric weight, and how product enables landed-cost calculation. This richly contextualizes the parameters for the agent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is a unified decision tool that integrates multiple freight-pulse layers to provide a single actionable answer for a concrete shipment. It lists specific outputs (recommended mode, carrier, timing, total cost, risks) and distinguishes itself from specialized sibling tools like get_spot_rate or carrier_recommendation by being comprehensive.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use the tool: for a concrete shipment decision by providing lane and merchandise value. It explicitly states it is 'indicative decision support — not a booking or a quote,' setting clear expectations. However, it does not explicitly contrast with alternatives like get_all_in_rate or compare_modes, leaving some usage guidance implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

simulate_scenarioAInspect

Run a WHAT-IF on a lane: recompute the COST and TIME impact of a structural change to the freight market, on top of freight-pulse's engines. Scenarios: 'red-sea-reopen' (Suez/Bab-el-Mandeb reopens and Asia-Europe / the Suez share of Asia-US-East services return from the Cape-of-Good-Hope diversion → shorter transit, war-risk & diversion surcharges fall — only material on Suez-exposed lanes); 'fuel-spike' (bunker VLSFO up X% → the BAF/bunker portion of the all-in rises; pass fuel_spike_pct); 'cny' (Chinese New Year front-loading: the pre-CNY rush spikes the spot rate and the equipment crunch and dips schedule reliability — material on China-origin lanes); 'tariff-change' (destination duty changes by X percentage points — e.g. a new Section-301 tranche or an FTA change — raising/lowering the landed cost while freight is UNCHANGED; pass tariff_delta_pp and value). It recomputes the affected engine outputs under the perturbed inputs it can thread (fuel proxy, ship date) and models the structural ones (the Red-Sea routing flag, a tariff delta) as explicit, transparent adjustments — never silently — and reports the baseline, the scenario and the deltas. A what-if is a MODELED counterfactual, not a prediction the event will occur (regla 7). PREMIUM: pay per call with x402 (USDC on Base) or set a prepaid key (FREIGHT_PULSE_KEY). Same UN/LOCODE port normalization as get_spot_rate.

ParametersJSON Schema
NameRequiredDescriptionDefault
valueNoFor 'tariff-change': merchandise value (USD) to size the duty/landed impact. Default 50000.
scenarioYesThe what-if: 'red-sea-reopen', 'fuel-spike', 'cny' or 'tariff-change'. REQUIRED.
dest_portYesDestination port (city, UN/LOCODE, or 'City, Country').
ship_dateNoIntended ship date (ISO). Drives the CNY-year and the baseline all-in. Optional; defaults to today.
origin_portYesOrigin port (city, UN/LOCODE, or 'City, Country').
container_typeNoContainer size '20ft'/'40ft'/'40HC'. Optional; defaults to '40ft'.
fuel_spike_pctNoFor 'fuel-spike': percent increase in VLSFO bunker (e.g. 30 = +30%). Default 30.
tariff_delta_ppNoFor 'tariff-change': change in duty in PERCENTAGE POINTS (e.g. 10 = +10pp, -5 = a cut). Default 10.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that the tool recomputes engine outputs with perturbed inputs, models adjustments as 'explicit, transparent adjustments — never silently', and reports baseline, scenario, and deltas. It also mentions port normalization consistent with get_spot_rate. The description is thorough and honest.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but front-loaded with the core purpose ('Run a WHAT-IF on a lane'). It contains some repetition (e.g., 'recomputes' appears twice) and is longer than necessary, but every sentence adds value. Minor redundancy prevents a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (8 parameters, 4 scenarios, no output schema), the description is complete. It covers all scenarios, parameter usage, behavioral details (transparent adjustments), payment methods, and port normalization. It provides sufficient context for an AI agent to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds significant value by pairing parameters with scenarios (e.g., fuel_spike_pct for 'fuel-spike', tariff_delta_pp for 'tariff-change'), explaining defaults, and providing context (e.g., 'ship_date drives the CNY-year and baseline all-in'). This goes beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it runs a WHAT-IF on a lane, recomputing COST and TIME impact under structural changes. It lists specific scenarios ('red-sea-reopen', 'fuel-spike', 'cny', 'tariff-change') with brief explanations, making the tool's purpose distinct from the 48 sibling tools which cover various logistics operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when each scenario is material (e.g., 'red-sea-reopen' only on Suez-exposed lanes) and notes premium payment requirements (x402 or FREIGHT_PULSE_KEY). It clarifies that the what-if is a modeled counterfactual, not a prediction. However, it does not explicitly contrast with sibling tools or state when this tool should not be used.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sourcing_analysisAInspect

The strategic CHINA+1 / NEARSHORING decision, quantified. Give the SAME product (or HS code) + a destination market + the China-equivalent FOB cost, and it compares making it in China vs Vietnam / India / Mexico / Turkey (and Thailand / Indonesia / Malaysia) on the three axes that actually decide it: TOTAL LANDED COST per origin — manufactured cost (relative labour/productivity index) + the real freight from each origin's export gateway + the real DUTY, so Section 301 penalises China→US, USMCA makes Mexico→US duty-free, and EVFTA makes Vietnam→EU duty-free (all through the genuine duty tables, not a fudge); LEAD TIME — the real ocean transit plus each origin's structural adder (Mexico/Turkey nearshore shortens the chain dramatically); and RISK — a geopolitical/concentration score, with a penalty that marks DOWN a China-only answer for single-country dependence (the whole point of China+1). It ranks the origins on a weightable blend (cost / lead-time / risk priority), names the recommended origin, and proposes a de-risking dual-source MIX. The highest-value strategic question in global sourcing right now. Honest (regla 7): cost indices, risk scores and lead adders are MODELED, product-specific and directional — frame the trade-off, then get factory quotes + a rules-of-origin check. PREMIUM: pay per call with x402 (USDC on Base) or a prepaid key.

ParametersJSON Schema
NameRequiredDescriptionDefault
hs_codeNoExplicit HS code. Provide this OR product.
productYesProduct to source, e.g. 'cotton t-shirts', 'lithium batteries'. Provide this OR hs_code.
priorityNoWeighting: 'cost', 'lead-time'/'speed', 'risk'/'resilience', or 'balanced' (default).
dest_portYesDestination market port (its country drives the duty/FTA treatment). REQUIRED.
fob_valueYesThe China-equivalent manufactured (FOB) cost in USD — other origins are scaled by their cost index. REQUIRED.
candidatesNoCandidate origin countries (ISO2 or name): CN, VN, IN, MX, TR, TH, ID, MY. Optional; default = CN, VN, IN, MX, TR.
container_typeNoContainer '20ft'/'40ft'/'40HC'. Optional; default '40ft'.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses that cost indices, risk scores, and lead adders are modeled and directional, and that users should follow up with quotes and rules-of-origin checks. It mentions premium pricing. However, it does not detail error handling or edge cases.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and contains multiple ideas in one long paragraph. While informative, it lacks clear structure and is verbose. For a complex tool, some verbosity is acceptable, but it could be more concise and organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters and no output schema, the description effectively covers the tool's inputs, outputs (ranking, recommendation, dual-source mix), and limitations. It provides enough context for an agent to understand the strategic value and what results to expect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers all 7 parameters with descriptions (100% coverage). The description adds context beyond the schema, such as that 'fob_value' is the China-equivalent cost and other origins are scaled, and that 'priority' options include explicit weightings. This enriches understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly defines the tool's purpose: strategic CHINA+1/NEARSHORING analysis comparing multiple origins on cost, lead time, and risk. It explicitly distinguishes from sibling tools like get_landed_cost or total_cost_ownership by focusing on multi-dimensional, origin-comparison with a de-risking recommendation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit guidance on when to use: provide the same product, destination market, and China-equivalent FOB cost. It outlines the context (strategic sourcing decision) but does not explicitly state when not to use or mention alternative tools. The 'Honest' note provides caveats.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

special_cargoAInspect

Assess SPECIAL / NON-STANDARD CARGO for a lane — dangerous goods, refrigerated (reefer), and out-of-gauge — the moves a plain 'dry box' rate model can't price or clear. DANGEROUS GOODS (IMDG): give a hazard class ('3', '2.1', 'class 9') or a commodity that classifies to one (e.g. 'paint' → Class 3 flammable liquid, 'lithium batteries' → Class 9), and it returns the IMDG hazard family, the STOWAGE category (on/under deck), the SEGREGATION requirements against any other classes you list in the same booking, the documentation burden (the shipper's Dangerous Goods Declaration + class-specific papers), the per-class DG SURCHARGE, and — the decision that matters — whether that class is ACCEPTED on a standard liner service, needs prior approval, or is commonly REFUSED (Class 1 explosives, 6.2 infectious, 7 radioactive). REEFER: give a commodity ('frozen shrimp', 'bananas', 'pharma 2-8') and it returns the carrying SETPOINT + tolerance band, the regime (frozen/chilled/pharma/ambient-controlled), the cold-chain RISK (a pharma GDP breach can total the cargo; a banana below 12°C is chilling injury), and the reefer plug + pharma cold-chain + controlled-atmosphere PREMIUMS. OUT-OF-GAUGE (OOG): give over-dimensions (length/width/height in cm + weight) or request a flat-rack/open-top, and it picks the equipment, computes how many neighbouring SLOTS the protrusion sterilises, the OOG surcharge (equipment + slots + lashing/survey), and the BREAKBULK fallback when nothing fits a box. Every figure is MODELED planning data — NOT the IMDG Code, a carrier DG acceptance ruling, or a certified declaration (regla 7). PREMIUM: pay per call with x402 (USDC on Base) or a prepaid key. Same UN/LOCODE port normalization as get_spot_rate.

ParametersJSON Schema
NameRequiredDescriptionDefault
reeferNoForce a reefer assessment even without a recognised product. Optional.
productNoFree-text commodity. Drives the reefer lookup ('frozen shrimp', 'bananas', 'pharma 2-8') OR infers a DG class for some families ('lithium batteries' → 9, 'paint' → 3).
dg_classNoIMDG hazard class for a dangerous-goods check: '1','2.1','2.2','2.3','3','4.1','4.2','4.3','5.1','5.2','6.1','6.2','7','8','9' (also 'class 3' etc). Provide this OR a 'product' that classifies to a class.
width_cmNoOver-dimension piece width in cm. Optional.
dest_portYesDestination port (city name, UN/LOCODE, or 'City, Country').
height_cmNoOver-dimension piece height in cm. Optional.
length_cmNoOver-dimension piece length in cm (triggers an OOG assessment). Optional.
weight_kgNoPiece weight in kg (drives flat-rack vs breakbulk). Optional.
origin_portYesOrigin port (city name, UN/LOCODE, or 'City, Country').
oog_equipmentNoExplicit out-of-gauge equipment: 'flat-rack-40','flat-rack-20','open-top-40','open-top-20','breakbulk'. Optional.
other_classesNoOther IMDG classes in the same booking / on board, to evaluate SEGREGATION against. Optional.
container_typeNoContainer size '20ft'/'40ft'/'40HC'. Optional; defaults to '40ft'.
controlled_atmosphereNoAdd the controlled-atmosphere (CA) reefer premium. Optional.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It thoroughly discloses that all figures are modeled planning data, not certified declarations. It details what is returned for each assessment (DG, reefer, OOG) and mentions the premium payment model. No contradictions with annotations since none exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is informative and front-loaded with the main purpose, but it is verbose (around 500 words). While every sentence adds value, it could be more structured (e.g., bullet points) to improve readability. It balances detail with clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (13 parameters, no output schema, no annotations), the description is remarkably complete. It explains all three assessment types, edge cases (e.g., breakbulk fallback), and port normalization. The agent has sufficient context to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. However, the description adds substantial meaning: it explains how 'product' can infer DG class, that 'length_cm' triggers OOG assessment, how 'other_classes' affects segregation, and defaults for 'container_type'. This goes well beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool assesses special/non-standard cargo (dangerous goods, reefer, out-of-gauge) for a lane, contrasting with plain dry box rate models. The verb 'assess' plus the specific resource types provides a clear purpose, and the mention of 'Same UN/LOCODE port normalization as get_spot_rate' helps distinguish it from a sibling tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says use for special cargo 'a plain dry box rate model can't price' and includes a disclaimer that figures are modeled planning data, not authoritative rulings. It mentions premium payment but does not explicitly compare to sibling tools like cold_chain, though the context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

total_cost_ownershipAInspect

The CFO / supply-chain-director cumbre tool: ONE comparable number per strategy that ties the WHOLE chain together. Give a product + destination + per-unit baseline FOB + annual demand, and it composes, PER STRATEGY (origin × mode): PRODUCT cost (origin cost index), all-in FREIGHT (door-to-door), DUTY/landed (Section 301 / FTA preference), INVENTORY cost (safety stock + cycle holding driven by the lead time & its variability), CAPITAL-IN-TRANSIT (pipeline value × cost of capital), and a RISK premium (lane-risk score × inventory value). It ranks the strategies by TOTAL TCO and shows WHY the ranking flips: nearshore (Mexico) can BEAT China on TCO even with a pricier product (no Section 301, shorter lead → less inventory+capital, lower risk); AIR can win for HIGH-VALUE goods (the capital+inventory saving dwarfs the freight premium); and the ranking shifts with volume and unit value. This is the tool that ties the entire freight-pulse stack into one decision. Honest (regla 7): composes the indicative outputs of the sourcing/landed/transit/inventory/lane-risk engines; not an audited cost or a binding tariff classification. PREMIUM: pay per call with x402 (USDC on Base) or a prepaid key.

ParametersJSON Schema
NameRequiredDescriptionDefault
hs_codeNoExplicit HS code (alternative to product).
productYesProduct text ('bluetooth earbuds') or an HS code. REQUIRED.
demand_cvNoDemand CV. Optional; default 0.30.
dest_portYesDestination port. REQUIRED.
fob_valueYesPer-unit baseline FOB (the China-equivalent manufactured cost) in USD. REQUIRED — other origins scale from it.
ship_dateNoShip date (YYYY-MM-DD). Optional.
candidatesNoCandidate origin ISO2 codes (CN, VN, IN, MX, TR, TH, ID, MY). Optional; default the China+1 set.
include_airNoAlso evaluate AIR per origin. Optional; default true.
air_weight_kgNoAir weight per container-equivalent (kg) to price air. Optional.
service_levelNoService level. Optional; default 0.95.
container_typeNoContainer '20ft'/'40ft'/'40HC'. Optional; default '40ft'.
risk_cost_factorNoFraction of avg inventory value charged as expected-disruption cost (scaled by lane-risk/100). Optional; default 0.5.
ordering_cost_usdNoOrdering cost per PO. Optional; default 250.
annual_demand_unitsYesAnnual demand in UNITS. REQUIRED.
units_per_containerNoUnits per container. Optional; default a value-density proxy.
annual_capital_rate_pctNoCost of capital. Optional; default 0.12.
annual_holding_rate_pctNoHolding rate. Optional; default 0.25.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that the tool composes indicative outputs from other engines, is not audited or binding, and includes a premium pay-per-call model. Since no annotations are provided, it fully carries the behavioral burden and is transparent about its limitations and cost structure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but each sentence provides necessary information: function, inputs, outputs, ranking insight, and honesty clause. It could be slightly more concise, but the structure is clear and front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (17 parameters, no output schema), the description thoroughly explains what the tool returns (ranked strategies with cost components and reasoning). It covers the main use case, edge cases (e.g., air winning for high-value goods), and indicates the scope of the output without an explicit schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers all 17 parameters with descriptions (100% coverage). The description adds meaningful context about how parameters like fob_value serve as a baseline and how the tool composes costs from the given inputs. It adds moderate value beyond the schema by explaining the overall logic.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: it composes total cost of ownership per strategy (origin x mode) and ranks them, for a given product, destination, FOB, and demand. The verb 'composes' and resource 'total TCO per strategy' are specific, and the explanation of how it ties the supply chain together distinguishes it from more narrow sibling tools like get_landed_cost or sourcing_analysis.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this is the comprehensive decision tool ("ties the entire freight-pulse stack into one decision") and gives examples of when nearshore or air modes win. However, it does not explicitly state when not to use it or directly compare to alternative tools. The context is clear but lacks explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources