freight-pulse
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@freight-pulsewhat's the spot rate from Shanghai to LA?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
freight-pulse 🚢
Ocean & multimodal freight intelligence suite for AI agents. One MCP server that answers any shipping question an importer, CFO, or supply-chain agent actually asks — from "what's the spot rate Shanghai → LA?" to "what's my total landed cost with duty?" to "should I book this lane now or wait?" — across 47 tools covering rates, total landed cost, transit reliability, customs, risk, emissions, and a unified ship decision.
Give it a lane, an HS code, a value — get back one trustworthy, cross-validated answer with a confidence read, not one vendor's quote. The rate engine, port normalization, customs logic, and the accumulating per-lane history all run server-side (the moat); the npm package is a thin client.
Hosted endpoint: https://freight-pulse-mcp.vercel.app/mcp · streamable-HTTP, no signup for the free tier.
Why an agent picks this
A single freight API returns one vendor's number with no second opinion and stops at the rate. freight-pulse goes the whole distance an importer needs:
Cross-validated rates. Reads Drewry's World Container Index (WCI) and the Freightos Baltic Index (FBX) server-side (plus your own SeaRates key if you supply one) and reconciles them into one normalized USD figure with a confidence score (do the sources agree?) and a market direction (rising / falling / stable).
The whole decision, not just the price. Landed cost with HS-code duty, all-in door-to-door, transit time + reliability (p90), air-vs-ocean trade-off, customs, risk, CO₂ — folded into a single
ship_decisionverdict: BOOK NOW / WAIT / SWITCH MODE.Its own accumulating history. Every lane queried is cached with a timestamp; trend tools serve a weeks-long normalized series no single index hands an agent for free.
Public, non-sensitive inputs. Ports, HS codes, declared values — nothing secret. Safe for an agent to call without handing over credentials.
Related MCP server: SupplyMaven API Pro
Worked example — Shanghai → Los Angeles, 40ft, $180k of cargo
💲 get_spot_rate → $5,442 / 40ft · confidence 🟢 80/100 · cross-validated from Drewry + FBX (spread 11%)
🧾 get_all_in_rate → $6,910 all-in (BAF, THC, doc, ISF, drayage folded in)
📦 get_landed_cost → $193,180 delivered (rate + 3.4% duty on HS 8516 + MPF/HMF + insurance)
🚢 ship_decision → BOOK NOW · rate stable-to-rising, equipment available, transit p90 within SLAOne agent call chain, one verdict. That's the difference between a freight API and a freight agent.
What's inside — 47 tools
Area | Tools |
Rates & trend |
|
Total cost |
|
Decision |
|
Transit & risk |
|
Procurement |
|
Customs & docs |
|
Carriers & equipment |
|
Inland & load |
|
Finance & risk |
|
Sustainability |
|
Monitoring |
|
get_spot_rate is free (the hook). The deep analytical tools are premium.
Quickstart (MCP)
{
"mcpServers": {
"freight-pulse": {
"command": "npx",
"args": ["-y", "freight-pulse-mcp"],
"env": {
// optional: unlock premium tools with a prepaid key
"FREIGHT_PULSE_KEY": "fp_…",
// optional: your own SeaRates key — cross-validated as a THIRD source, RAISES confidence
"SEARATES_API_KEY": "…"
}
}
}
}Or connect over HTTP at POST https://freight-pulse-mcp.vercel.app/mcp (streamable).
Free vs Pro
Free | Pro | |
| ✅ | ✅ |
All 40+ analytical tools (landed cost, ship_decision, customs, risk, trend, …) | upsell preview | ✅ full result |
Accumulating per-lane trend history | — | ✅ |
Pay how | — | 🪙 x402 (USDC on Base) per call — agents pay automatically, no signup · or 💳 card via Stripe checkout for a prepaid key |
Two ways to pay a premium call:
🪙 x402 (USDC on Base) — an x402-aware agent pays per call automatically, zero signup.
💳 Card (Stripe) — buy a prepaid API key, send it as
Authorization: Bearer <key>(or setFREIGHT_PULSE_KEY).
On the data
freight-pulse is indicative market intelligence cross-validated from public freight indices and customs references — not a carrier quote or a booking. Always verify with your forwarder before committing. Drewry WCI and Freightos FBX publish weekly assessments; the optional SeaRates source is bring-your-own-key (it only raises confidence, never required).
The analysis engine — index fetching, port/HS normalization, cross-validation, the confidence model, customs/duty logic, and the per-lane history cache — runs server-side. The npm package is a thin client that forwards to the hosted service.
MIT · github.com/Baneado98/freight-pulse · Hosted at freight-pulse-mcp.vercel.app
Available Tools
47 toolsappointment_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.
| Name | Required | Description | Default |
|---|---|---|---|
| origin_port | Yes | Origin port (city name, UN/LOCODE, or 'City, Country'). | |
| dest_port | Yes | Destination port — where the box is picked up & the empty returned. | |
| container_type | No | Container '20ft'/'40ft'/'40HC'. Optional; default '40ft'. | |
| ship_date | No | Ship date (YYYY-MM-DD) — sets the arrival window & congestion. Optional; default today. | |
| discharge_clear_days | No | Days to discharge + customs-clear before the box is available for pickup. Optional; default 2. | |
| import_free_days | No | Your contract's import (demurrage) free days. Optional — a regional default is used. | |
| empty_return_free_days | No | Your contract's empty-return (detention) free days. Optional — a regional default is used. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description fully covers behavioral traits. It honestly discloses that the tool uses a model, not live terminal feeds (eModal/Voyage/TideWorks), is indicative, and mentions premium pricing (pay per call with USDC). This level of transparency is exemplary.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is detailed and well-structured, front-loading the core purpose and process. While every sentence adds value, it is somewhat lengthy (including examples and pricing). A slightly more concise version would earn a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 complete: it explains inputs, the modeling approach, outputs (optimal pickup window, sequence, D&D savings), caveats, and pricing. No gaps remain for an agent to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter is already described. The tool description adds overall context but does not significantly enhance parameter meanings beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: planning terminal appointments and box sequence to avoid demurrage & detention. It explains the inputs and outputs in detail. However, it does not explicitly distinguish from sibling tools like dnd_strategy, which may overlap, so it misses the highest marks for differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage contexts (congested vs. fluid ports) and sets expectations that it is indicative, not a live feed. However, it does not provide explicit guidance on when to use this tool versus alternatives (e.g., dnd_strategy) or 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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| origin_port | Yes | Origin port (city name, UN/LOCODE, or 'City, Country'). | |
| dest_port | Yes | Destination port. | |
| container_type | No | Container '20ft'/'40ft'/'40HC'. Optional; default '40ft'. | |
| ship_date | No | Ship date (YYYY-MM-DD) — selects the seasonal/equipment pressure. Optional; default today. | |
| criticality | No | 'low' / 'normal' / 'high' / 'critical' — how badly a rollover delay hurts. Optional; default normal. | |
| base_freight_per_container_usd | No | Base ocean freight per container (USD) to price the premium & delay cost. Optional — derived if omitted. | |
| annual_containers | No | Annual committed volume on this lane (containers/yr) — triggers the named-account allocation call. Optional. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description thoroughly discloses behavioral traits: it reads demand pressure from seasonality and equipment calendars, returns indicative recommendations (not guarantees), and mentions payment method (USDC or prepaid key). Without annotations, this fully informs the agent of the tool's read-only, analytical nature and its limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is comprehensive and well-structured, starting with the core purpose and then detailing the inputs, outputs, and behavioral caveats. While not extremely concise, the length is justified by the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides a complete picture: inputs, internal logic, output structure (booking window, rollover probabilities, trade-off), and behavioral caveats. Without an output schema, this fully equips the agent to understand what the tool returns and how to use the results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although the input schema already describes all parameters (100% coverage), the description adds value by explaining how parameters like criticality and annual_containers influence the recommendation (e.g., criticality buffer, named-account trigger). This goes beyond the schema's basic descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 advise on booking strategy for space reservation, including recommendations for spot vs guaranteed vs named-account. It distinguishes from sibling tools like get_spot_rate (which likely just provides rates) and carrier_recommendation by focusing on the strategic booking decision with criticality and volume inputs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 (for space reservation decisions given lane, ship date, criticality) and what inputs are needed. However, it does not explicitly state when not to use or compare to sibling tools like get_spot_rate or carrier_recommendation.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| lanes | Yes | The lanes to tender. Each: { origin_port, dest_port, annual_volume, container_type? }. | |
| priority | No | Award weighting: 'cost', 'reliability' or 'balanced' (default). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It transparently explains return values (market-rate bands, model limitations with 'Honest (regla 7)'), the process timeline, and pricing model. It does not cover auth needs or rate limits but sufficiently discloses behavioral traits for a read-like build operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is verbose yet well-structured, front-loading the core purpose and then detailing outputs. Every sentence adds value, justifying the length. Minor reduction for not being as tight as possible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and two straightforward parameters, the description fully explains return values (per-lane details, criteria, bid sheet, timeline, total spend) and even links to evaluate_bids. It is complete for an agent to understand tool usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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: lanes are explained as 'your lanes with annual volumes' and priority as 'cost, reliability, balanced'. It also hints at optional container_type, enhancing schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a clear verb+resource: 'Build the structure of a freight RFP / TENDER to put your ocean network out to bid.' It distinctly defines the tool's purpose and differentiates it from siblings like evaluate_bids, which scores answers rather than constructing the framework.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: provide lanes and volumes to get a tender structure. The description mentions pairing with evaluate_bids but lacks explicit when-to-use vs alternatives or when-not-to-use guidance. Sibling context shows many related tools, but no comparative advice is given.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| origin_port | Yes | Origin port (city name, UN/LOCODE, or 'City, Country'). Same resolution as get_spot_rate. The origin COUNTRY drives EU-ETS scope. | |
| dest_port | Yes | Destination port (city name, UN/LOCODE, or 'City, Country'). The destination COUNTRY drives EU-ETS scope (touching the EU/EEA brings the voyage into scope). | |
| container_type | No | Container size '20ft'/'40ft'/'40HC'. Optional; defaults to '40ft'. Drives the modeled typical laden cargo mass when no weight is given. | |
| ship_date | No | Intended ship date (ISO 'YYYY-MM-DD'). The YEAR drives the EU-ETS phase-in (2024 40%, 2025 70%, 2026+ 100%). Optional; defaults to today. | |
| weight_kg | No | Actual 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. | |
| volume_m3 | No | Shipment volume in m³. Used for the AIR mode's IATA chargeable mass (max of actual and volumetric @167 kg/m³). Optional. | |
| band | No | Emission-factor band to report: 'low', 'typical' or 'high'. Optional; default 'typical' (factors are honest bands, not a single audited number). | |
| eua_price_eur | No | Override 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. | |
| air_role | No | Air emission factor role: 'freighter' (default, higher intensity) or 'belly' (passenger-jet hold, lower allocation). Optional. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses behavioral traits: results are modeled/indicative, not audited; emission factors are bands (low/typical/high); EU-ETS cost computation details (scope, phase-in, EUA price); default assumptions (mass, container type); and premium pricing. No contradictions or hidden behaviors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is verbose but efficiently packed with essential information. It front-loads the core outputs (WTW kg CO2e, EU-ETS cost, per-leg breakdown) and then elaborates on methodology, assumptions, and limitations. A minor deduction for length, but every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 covers what the tool returns (kg CO2e, per-leg breakdown, WTT/TW split, EU-ETS cost, mode comparison), explains methodology and assumptions, clarifies exclusions (CBAM), and provides usage context (premium pricing, port normalization). No gaps for an agent to misinterpret.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the description adds significant meaning beyond the schema: it explains that origin/dest COUNTRY drives EU-ETS scope, ship_date YEAR drives phase-in, weight_kg is recommended for accuracy, band defines reporting range, eua_price_eur overrides modeled price, and air_role distinguishes freighter vs belly. Each parameter's role in the computation is clarified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description precisely states the tool computes CO2e carbon footprint and EU-ETS carbon cost for a shipment lane. It distinguishes from siblings like compare_modes and get_spot_rate by focusing on carbon metrics rather than rates or mode comparison, and uses specific terms like 'Scope-3', 'GLEC Framework / ISO 14083', and 'WELL-TO-WAKE'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates when to use this tool: for ESG reporting, EU-ETS cost calculation, and mode comparison. It also clarifies what it does not cover (CBAM taxes product, not freight) and references sibling tool 'compare_modes'. However, it does not explicitly state when to avoid using it or provide alternatives beyond the one mention.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| origin_port | Yes | Origin port (city name, UN/LOCODE, or 'City, Country'). Same resolution as get_spot_rate. | |
| dest_port | Yes | Destination port (city name, UN/LOCODE, or 'City, Country'). | |
| priority | No | What the shipper optimizes for: 'reliability' (on-time, favours Gemini), 'frequency' (sailings/week, favours Ocean/MSC), 'cost' (cheapest-leaning), or 'balanced' (default). Synonyms accepted. | |
| container_type | No | Container size '20ft'/'40ft'/'40HC' (informational for the lane label). Optional; defaults to '40ft'. | |
| ship_date | No | Intended 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that figures are modeled indicative bands, not quotes or tariffs, explains the alliance realignment and how priority affects ranking, and notes that results refine lane OTP for the top pick. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but well-organized, front-loaded with purpose. Each sentence adds value, covering nuances of alliance models and priority logic. Could be more concise, but the detail is justified by complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, no output schema, the description explains parameter semantics, result computation, and limitations. It lacks explicit return format but is otherwise thorough for a complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds meaning: explains port normalization, priority synonyms, container_type as informational, and ship_date's role. It goes beyond the schema to clarify usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool recommends which carrier or alliance to sail with on a lane, positioning it as a decision aid after booking time and mode. It distinguishes from siblings by focusing on carrier selection rather than rates or routes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains when to use (third decision in booking process) and how priority flips ranking, but does not explicitly state when not to use or list alternative tools. Context is clear but exclusions are absent.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| creditAmount | No | The credit (LC) amount. | |
| creditCurrency | No | Credit currency (e.g. USD). | |
| amountTolerance | No | Amount tolerance fraction (e.g. 0.05 = ±5%). Default 0. | |
| creditGoodsDescription | No | Goods description as written in the credit. | |
| portOfLoading | No | Credit's required port of loading. | |
| portOfDischarge | No | Credit's required port of discharge. | |
| beneficiary | No | Credit beneficiary (the seller). | |
| latestShipmentDate | No | Latest shipment date (YYYY-MM-DD). | |
| expiryDate | No | Credit expiry date (YYYY-MM-DD). | |
| presentationPeriodDays | No | Presentation period in days (UCP default 21). | |
| incoterm | No | Credit incoterm (CIF/CIP trigger the insurance check). | |
| insuranceRequired | No | Does the credit require an insurance document? | |
| invoiceAmount | No | Commercial invoice amount. | |
| invoiceCurrency | No | Invoice currency. | |
| invoiceGoodsDescription | No | Goods description on the invoice. | |
| invoiceBeneficiary | No | Who issued the invoice. | |
| blPortOfLoading | No | Port of loading on the B/L. | |
| blPortOfDischarge | No | Port of discharge on the B/L. | |
| shipmentDate | No | On-board / shipment date on the B/L (YYYY-MM-DD). | |
| presentationDate | No | Date documents are presented to the bank (YYYY-MM-DD). | |
| blClean | No | Is the B/L clean (no defect clause)? | |
| insuredAmount | No | Insured amount on the insurance document. | |
| insuredCurrency | No | Insurance currency. | |
| insuranceDate | No | Insurance document date (YYYY-MM-DD). | |
| packingListGoodsDescription | No | Goods description on the packing list. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It details the rule-based checking process, lists specific discrepancy checks, warns against treating it as a bank determination or legal advice, and mentions it returns severity mix and what couldn't be checked.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is lengthy but front-loaded with a compelling question and key statistics. Every sentence adds relevant detail about capabilities, limitations, and pricing. Minor redundancy could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 25 parameters, no output schema, and no annotations, the description fully explains input requirements, the process, and output (discrepancies with UCP articles/remedies, clean/rejected status, severity mix). It even provides a legal disclaimer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 25 parameters. The description adds value by explaining how parameters are used in specific checks (e.g., invoice amount over credit, currency mismatch), tying them to UCP articles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it checks letter-of-credit documents under UCP 600 for discrepancies, listing specific rules checked and outputting discrepancies with remedies. It uniquely identifies this tool among siblings as specialized for LC document checking.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for pre-checking LC presentations before submission to a bank, mentioning premium pricing. It does not explicitly state when not to use or provide alternatives, but the specialized domain makes usage clear.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| watch_id | No | Evaluate only this watch id. Optional — omit to evaluate all your watches. |
TDQS
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 internal process but does not explicitly disclose whether the tool is read-only, destructive, or requires authentication. The honesty note and pricing info are present but do not replace behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is informative and front-loaded with the main purpose. Each sentence adds value, though the pricing note could be considered extraneous. Overall structure is clear and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and only one optional parameter, the description thoroughly explains the return value (alerts with observed value, reason, severity) and the internal process. It also includes a caveat about model reliability, making it complete for an agent to use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers both parameters with 100% description coverage. The description repeats the schema's info about watch_id without adding new meaning, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 against live modeled market and returns alerts that fired. It specifies the resource (watches) and action (check), and distinguishes from sibling tools like create_watch.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool: to check one watch by passing watch_id or all watches by omitting it. It also implies it's a daily poll. It does not explicitly state when not to use or alternatives, but usage is clear for a single-purpose tool.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| origin_port | Yes | Origin port (city name, UN/LOCODE, or 'City, Country'). | |
| dest_port | Yes | Destination port. | |
| container_type | No | Container '20ft'/'40ft'/'40HC'. Optional; default '40ft'. | |
| ship_date | No | Ship date (YYYY-MM-DD) — selects the transit/diversion state. Optional; default today. | |
| product | No | Product description — 'pharma vaccines 2-8°C', 'frozen seafood', 'bananas', 'fresh produce', 'insulin'. Sets the temperature requirement & sensitivity. | |
| sensitivity | No | Explicit sensitivity class — ambient | cool | chilled | frozen | pharma | pharma-critical. Overrides the product match. Provide this OR 'product'. | |
| cargo_value_usd | No | Total cargo value (USD) — drives the expected-loss economics. Optional; a class default is used if omitted. | |
| unit_value_usd | No | Per-unit value (USD) — with 'units', an alternative to cargo_value_usd. Optional. | |
| units | No | Number of units (with unit_value_usd). Optional. | |
| ocean_freight_usd | No | Override the ocean all-in freight per container (USD). Optional — derived if omitted. | |
| air_freight_multiple | No | Air freight as a multiple of ocean (default ~6-7×). Optional. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It is highly transparent: explains the survival model, expected total cost calculations, assumptions, and includes a disclaimer about the indicative nature. Even mentions payment method.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but well-structured: purpose first, then details, then disclaimer. It is packed with information but could be slightly more concise. Front-loads key purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 11 parameters, no output schema, and no annotations, the description is very complete. It explains the model, economics, inputs, outputs, and limitations. No obvious gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 11 parameters. The description adds value by explaining how parameters like cargo_value and product are used in economic analysis, beyond basic schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it provides cold-chain/pharma compliance for temperature-controlled shipments, returning specific outputs like temperature requirement, excursion risk, recommended mode and packaging. It is distinct from sibling tools which cover other logistics functions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to use: for temperature-controlled shipments beyond a reefer setpoint, and gives examples of products and sensitivity. It does not explicitly state when not to use, but the context implies it is specialized for cold chain.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| origin_port | Yes | Origin port (city name, UN/LOCODE, or 'City, Country'). Same resolution as get_spot_rate. | |
| dest_port | Yes | Destination port (city name, UN/LOCODE, or 'City, Country'). | |
| container_type | No | Container size '20ft'/'40ft'/'40HC' for the ocean leg. Optional; defaults to '40ft'. | |
| value | Yes | Merchandise value in USD — REQUIRED. It is the capital tied up in transit and the basis of the whole mode trade-off. | |
| weight_kg | No | Shipment gross weight in kg. Provide this and/or volume_m3 — air is billed on the chargeable weight (max of actual and volumetric). | |
| volume_m3 | No | Shipment volume in cubic metres. Drives the IATA volumetric weight (m³ × 167 kg). Provide this and/or weight_kg. | |
| deadline | No | Optional hard arrival deadline (ISO 'YYYY-MM-DD'). If given, the engine adds an expected-stockout cost from each mode's probability of arriving late. | |
| stockout_penalty | No | USD 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. | |
| annual_capital_rate_pct | No | Annual cost-of-capital as a fraction (e.g. 0.12 = 12%/yr) for goods in transit. Optional; default 0.12. | |
| annual_holding_rate_pct | No | Annual inventory holding/carrying rate as a fraction (e.g. 0.25 = 25%/yr) for the p90 safety-stock buffer. Optional; default 0.25. | |
| band | No | Air/sea-air rate band to use: 'low', 'typical' or 'high'. Optional; default 'typical'. | |
| jet_fuel_proxy | No | Optional jet-fuel proxy to drive the air FSC. Omit for a modeled reference level. | |
| ship_date | No | Intended ship date (ISO). Drives the ocean seasonal surcharges & transit window. Optional; defaults to today. | |
| estimated_days_at_port | No | Days the box dwells at destination (adds D&D to the ocean freight leg). Optional. | |
| free_days | No | Carrier free days before D&D on the ocean leg (default 5 if a dwell is given). Optional. | |
| overweight | No | Flag an overweight ocean load (freight surcharge). Optional. | |
| fuel_proxy | No | Optional VLSFO $/tonne for the ocean BAF model. Optional. |
TDQS
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 cost model (capital, holding, stockout), IATA chargeable weight calculation, sea-air hub routing, and that air rates are bands. It also mentions premium payment via x402 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is somewhat lengthy but well-structured: purpose first, model details, return format, payment info. Every sentence adds value, though some detail could be streamlined. It is front-loaded with the primary decision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 17 parameters and no output schema, the description thoroughly explains the return value (table with freight, transit times, cost components, recommendation) and the decision model. It covers all necessary context for an agent to understand when and how to invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions already provide 100% coverage with clear explanations of each parameter. The tool description adds context on how parameters like 'value' and 'deadline' drive the trade-off, but the main value comes from the schema descriptions themselves.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool decides the transport mode (OCEAN vs AIR vs SEA-AIR) based on total economic cost, distinguishing it from sibling tools that price the ocean move. It uses specific verbs ('Decide the TRANSPORT MODE') and identifies the resource ('shipment').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use this tool ('answers the importer's prior question: should these goods even go by sea?') and contrasts with alternatives ('The other tools price the ocean move'). Provides context for when air/sea-air wins over ocean based on value and deadlines.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| origin_port | Yes | Origin port (city name, UN/LOCODE, or 'City, Country'). | |
| dest_port | Yes | Destination port. | |
| container_type | No | Container '20ft'/'40ft'/'40HC'. Optional; default '40ft'. | |
| ship_date | No | Ship date (YYYY-MM-DD) — selects which seasonal/dated disruptions are active. Optional; default today. | |
| disruption_type | No | Force 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. | |
| urgency | No | 'cost' (minimise spend), 'time' (minimise delay) or 'balanced'. Optional; default balanced. |
TDQS
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 results are MODELED, indicative, and not a guarantee; mentions pricing (pay per call with x402); and explains the output structure (plays ranked by urgency). This is transparent about limitations and behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is lengthy but concise for the amount of information it conveys. It starts with a clear use case, lists actions, pricing, and limitations. It could be slightly more structured, but every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description compensates by explaining the return: playbook with cost and time deltas, ranking by urgency. It also advises to validate with carrier/forwarder. This is complete enough for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with descriptions for each parameter. The description adds useful context like the effect of 'disruption_type' (force a specific what-if) and 'urgency' parameter, but these are already mentioned in the schema. Baseline 3 applies as the schema is already thorough.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: given a lane, it detects active disruptions and generates an actionable playbook with routing, modal shift, port swap, pre-positioning, and re-prioritization options. It distinguishes itself from sibling tools like 'simulate_scenario' or 'booking_strategy' by focusing on disruption contingency.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use it ('My route just broke — what do I do AHEAD of the next sailing?') and lists required and optional parameters. It doesn't explicitly state when not to use it or provide alternatives, but the context of sibling tools implies it's for immediate disruption response.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| origin_port | Yes | Origin port to watch. | |
| dest_port | Yes | Destination port to watch. | |
| container_type | No | Container '20ft'/'40ft'/'40HC'. Optional; default '40ft'. | |
| thresholds | Yes | Conditions 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' }]. | |
| label | No | Optional name for the watch. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden and discloses server-side persistence, return values, alert nature (signal, not trigger), and premium pricing thoroughly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose and each sentence adds value, though slightly verbose. Still efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (5 params, no output schema, no annotations), the description is complete: covers purpose, usage, parameters, behavior, and integration with sibling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds significant value by explaining each threshold metric in detail and providing examples, far beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 freight-pulse alerts, using specific verbs and distinguishing it from siblings like check_watches.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains when to use (for recurring alerts) and how to pair with check_watches for polling. While it doesn't explicitly say when not to use, 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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| origin_port | Yes | Origin port (city name, UN/LOCODE, or 'City, Country'). | |
| dest_port | Yes | Destination port — its country sets the customs bloc & regimes. | |
| container_type | No | Container '20ft'/'40ft'/'40HC'. Optional; default '40ft'. | |
| product | No | Product description to classify (e.g. 'bluetooth earbuds'). Provide this OR hs_code. | |
| hs_code | No | Explicit HS code (6+ digits). Provide this OR product. | |
| fob_value | Yes | Merchandise value (FOB) in USD. REQUIRED — it's the duty base. | |
| flow | No | The goods flow: 'import-consume' (sell domestically, default), 'import-reexport', 'import-assemble' (components→assemble→re-export), or 'import-store'. Free text accepted. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully discloses behavioral traits: it states that figures are modeled and indicative, not legal advice, and requires confirmation with a licensed broker. It also notes specific limitations like Section 301 ineligibility for drawback and that the engine reuses the landed-cost calculation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is lengthy but well-structured and front-loaded with the purpose. Every sentence adds value, providing detailed information about the levers, outputs, and caveats. However, some redundancy could be trimmed for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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), the description is fully complete. It explains inputs, outputs (ranked levers with savings and catch), the underlying engine, and important disclaimers, leaving no major gaps for the agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with descriptions for all 7 parameters. The description adds significant value by explaining the meaning of each parameter (e.g., flow examples, required fields) and providing context beyond the schema, such as the trade flow options and the requirement for FOB value as duty base.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: finding duty-saving levers for importers. It specifies the exact inputs (product/HS code, lane, FOB value, trade flow) and outputs (ranked savings with details). It distinguishes from sibling tools like 'customs_valuation' and 'get_landed_cost' 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit instructions on what to provide (product or HS code, lane, FOB value, trade flow) and what the tool returns. It mentions the context of use (importer seeking duty savings) but does not explicitly state when not to use or compare with alternatives, though it is clear enough.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| dest_country | Yes | Destination country ISO2 (US, DE, GB, …). REQUIRED — sets the CIF/FOB basis. | |
| invoice_price_usd | No | The price actually paid/payable (total, or per-unit if per_unit=true). REQUIRED for transaction value. | |
| quantity_units | No | Quantity of units (for per-unit assists apportionment & per-unit output). Optional; default 1. | |
| per_unit | No | Is invoice_price_usd a PER-UNIT figure? Optional; default false (total). | |
| incoterm | No | Incoterm of the price (EXW/FOB/CIF/DDP…). Optional; default FOB. | |
| method | No | 'transaction-value' (default), 'deductive' or 'computed'. | |
| assists_usd | No | Assists supplied free (tooling/moulds/materials/design), TOTAL USD — ADD to base. Optional. | |
| royalties_usd | No | Royalties/licence fees that are a condition of sale, TOTAL USD. Optional. | |
| selling_commission_usd | No | Selling commission (to seller's agent), TOTAL USD — dutiable. Optional. | |
| buying_commission_usd | No | Buying commission (to buyer's own agent), TOTAL USD — NOT dutiable (shown excluded). Optional. | |
| packing_usd | No | Packing & containers cost, TOTAL USD. Optional. | |
| international_freight_usd | No | International freight to the import port, TOTAL USD (in base on CIF basis only). Optional. | |
| insurance_usd | No | International insurance, TOTAL USD (in base on CIF basis only). Optional. | |
| post_import_transport_usd | No | Post-import transport/destination charges baked into a DAP/DDP price, TOTAL USD — stripped out. Optional. | |
| baked_import_duty_usd | No | Import duty/tax baked into a DDP price, TOTAL USD — stripped out. Optional. | |
| duty_rate_pct | No | Modeled duty rate (0.075 or 7.5) to value the over/under-payment vs the naive invoice. Optional. | |
| resale_price_usd | No | Deductive method: destination unit resale price (USD). | |
| resale_margin_pct | No | Deductive: resale gross margin to deduct (0.30). Optional; default 0.30. | |
| deductible_inland_usd | No | Deductive: per-unit post-import freight+duties to deduct (USD). Optional. | |
| computed_unit_cost_usd | No | Computed method: built-up unit cost (materials+fabrication+profit+expenses), USD. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so description fully covers behavior: normalizes to FOB base, adds assists, excludes buying commission, applies country basis. Discloses it's an indicative model, not legal advice.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Long but information-dense. Front-loaded with purpose. Every sentence adds value given complexity. Slightly verbose but acceptable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Describes return values (line-by-line base, duty comparison, deductive/computed methods). With 20 parameters and no output schema, description adequately covers what the tool does and outputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage 100% but description adds context beyond, e.g., which parameters required for each method, how they affect calculation. Provides practical usage guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool computes the dutiable base for customs valuation, not just invoice price, using WTO methods. Distinguishes from siblings like customs_optimization by focusing on valuation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Describes when to use: provide destination country, invoice price, and Incoterm. Hints at alternatives (deductive, computed) and notes limitations (not legal advice). Lacks explicit when-not-to-use but informative.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| origin_port | No | Origin port (for a lane-based baseline). Optional if baseline_co2e_tonnes is given. | |
| dest_port | No | Destination port. Optional if baseline_co2e_tonnes is given. | |
| container_type | No | Container '20ft'/'40ft'/'40HC'. Optional; default '40ft'. | |
| reduction_target | No | Reduction target as a fraction (0.30) or percent (30). Optional; default 0.30. | |
| baseline_co2e_tonnes | No | Supply an annual NETWORK footprint (tonnes CO2e) instead of deriving from a lane. Optional. | |
| weight_kg | No | Cargo weight for the lane emissions baseline (kg). Optional. | |
| allowed_levers | No | Restrict to specific lever ids (modal-shift-air-to-ocean, consolidation, saf-book-and-claim, alt-marine-fuel, verified-offsets, …). Optional; default all. | |
| cost_band | No | Cost sensitivity: 'low' / 'typical' / 'high'. Optional; default typical. | |
| ship_date | No | Ship date (YYYY-MM-DD) — drives the EU-ETS phase-in year. Optional. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It honestly discloses that abatement costs are modeled and indicative, that offsets are flagged as compensation not reduction, and that targets beyond reduction levers are labeled. It also mentions pricing model (PREMIUM: pay per call). No contradictions 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively long but well-structured, starting with the main purpose then detailing levers and outputs. While each sentence adds value, it could be slightly more concise; however, it remains clear and informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity and lack of output schema, the description covers inputs, levers, return values (ordered roadmap with tonnes abated, cost, etc.), limitations, and pricing. It is thorough and leaves minimal gaps for an agent to understand usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema coverage is 100%, the description adds meaning beyond the schema by explaining the role of parameters (e.g., origin_port/dest_port for lane-based baseline, baseline_co2e_tonnes for network footprint, allowed_levers for restriction, cost_band for sensitivity). It provides context that the schema alone does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 create a decarbonization roadmap for a transport network. It uses specific verbs like 'cut the carbon' and 'walks the abatement levers', and lists the exact levers involved. It distinguishes from sibling tools like carbon_footprint (which only measures) and optimize_network (which is broader).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit conditions for use: 'Give a lane (or an annual network footprint in tonnes CO2e) and a reduction TARGET %'. It explains what the tool does with the inputs. However, it does not explicitly state when not to use this tool or mention alternatives, though the context implies it.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| origin_port | Yes | Origin port (city, UN/LOCODE, or 'City, Country'). | |
| dest_port | Yes | Destination port — its congestion drives the dwell distribution and the regional D&D schedule. | |
| container_type | No | Container size '20ft'/'40ft'/'40HC' (drives the per-day D&D rate). Optional; defaults to '40ft'. | |
| ship_date | No | Intended ship date (ISO 'YYYY-MM-DD'). The destination congestion (peak windows, disruptions) is evaluated for THIS date. Optional; defaults to today. | |
| carrier | No | Optional carrier — refines the default free-day grant (mega lines often grant a touch more). | |
| mean_dwell_days | No | Override the modeled mean dwell (days) with your own unpack/return speed. Optional. | |
| min_free_days | No | Lowest free-day grant to evaluate (default 3). | |
| max_free_days | No | Highest free-day grant to evaluate (default 10 or default+4). |
TDQS
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 the tool reads congestion data, builds dwell distributions, and computes probabilistic costs. It does not mention side effects (likely read-only). The methodology is transparent, including modeled assumptions and payment methods.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is comprehensive but well-structured. It starts with the main purpose, explains methodology, then lists parameters with their roles. It includes necessary caveats and payment info without being verbose. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the return values: dwell distribution, probability of breach, expected chargeable days, expected D&D cost, p90 cost, and a recommended free-day target. It covers inputs and outputs completely for this complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 beyond the schema by explaining how each parameter influences the analysis (e.g., dest_port drives congestion, ship_date sets evaluation date, carrier refines free days). It enriches understanding of parameter relationships.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it optimizes demurrage & detention free-time strategy for a destination, using specific verbs like 'optimize' and reference to 'beyond the simple D&D line'. It distinguishes itself from sibling tools like 'booking_strategy' or 'carrier_recommendation' by focusing on free-day negotiation and expected cost modeling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use (to negotiate free days, evaluate expected D&D costs) and provides context on destination congestion and dwell distribution. It mentions options like passing a carrier or mean dwell. It lacks explicit negative usage guidance but includes a caveat that it's not a carrier's filed tariff.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| origin_port | Yes | Origin (load) port — city, UN/LOCODE, or 'City, Country'. | |
| dest_port | Yes | Destination (discharge) port — city, UN/LOCODE, or 'City, Country'. | |
| container_type | No | Container size '20ft'/'40ft'/'40HC'. Optional; defaults to '40ft'. | |
| ship_date | No | Intended ship date (ISO). Drives ocean seasonality & transit. Optional; defaults to today. | |
| band | No | Inland cost band: 'low', 'typical' (default) or 'high'. | |
| inland_destination | No | Optional 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. | |
| interior_mode | No | Force the interior haul mode: 'rail' or 'truck'. Optional; default = cheaper of the two (deadline-aware). | |
| urgent | No | Hard deadline → biases the interior haul to truck for door-speed. Optional. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that inland figures are modeled market-typical bands (regla 7), not trucker quotes, and mentions PREMIUM costing (x402 on Base or prepaid key). It also notes UN/LOCODE normalization. However, it does not explain error handling, data freshness, or default behaviors for optional parameters beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence adds value. It front-loads the core purpose and then systematically details components and special cases. There is no wasted text; the length is justified by the complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters, no output schema, and no annotations, the description covers the tool's behavior well, including output (door-to-door total, p50/p90 transit). It also notes that inland adds 15-40%. However, it does not specify the exact output format (e.g., JSON structure) or handling of missing optional parameters, leaving minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds substantial meaning beyond the schema: it explains the role of each parameter in the door-to-door calculation (e.g., inland_destination triggers interior haul with rail-vs-truck decision, urgent biases to truck). It provides examples and clarifies defaults (e.g., inland cost band default 'typical', interior mode default cheaper of the two).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns the true door-to-door cost and time, distinguishing it from port-to-port tools. It explicitly contrasts with sibling tools like get_spot_rate, and details the components covered (inland legs, chassis, gate fees). This meets the highest standard of specificity and differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use this tool versus alternatives: 'The ocean tools price PORT-TO-PORT; this layers the INLAND legs.' It also mentions PREMIUM pricing and that inland figures are modeled bands, guiding agents on appropriate context. No exclusions are needed.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| origin_port | Yes | Origin port (city name, UN/LOCODE, or 'City, Country'). The origin REGION's net export/import role drives the equipment deficit/surplus. | |
| dest_port | Yes | Destination port (city name, UN/LOCODE, or 'City, Country'). The destination is where empties pile up (the reposition-from side). | |
| container_type | No | Container size '20ft'/'40ft'/'40HC' — maps to the 20DV / 40DV / 40HC equipment pool. Optional; defaults to '40ft'. Use 'reefer' for refrigerated. | |
| reefer | No | Set true for a REEFER (refrigerated) move — a separate, far scarcer, plug-limited pool than dry. Optional; default false. | |
| ship_date | No | Intended 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. | |
| carrier | No | Optional 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. | |
| band | No | EIS / reposition-cost band to report: 'low', 'typical' or 'high'. Optional; default 'typical'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses behavioral traits: it is a modeled structural and seasonal profile, not a live depot inventory ('we never claim a specific box count is available'). It explains the underlying mechanism (equipment imbalance, seasonal swings) and pricing model (pay per call with x402 or prepaid key). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is thorough but somewhat long. It opens with a clear purpose sentence but then includes explanatory paragraphs that could be more concise. Some repetition exists (pre-CNY explained twice). However, the structure is logical (purpose → methodology → parameters → payment → alternatives), and every sentence adds value. Could be tightened slightly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the complexity of a modeled tool, the description is remarkably complete. It explains what is returned (availability index, shortage-risk score, EIS, reposition incentives, alternatives), how to use parameters (carrier, band, ship_date), and covers edge cases (reefer pool, carrier differences, payment). No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema coverage is 100%, the description adds significant meaning beyond the schema: e.g., why origin region drives deficit (net export/import role), how container_type maps to equipment pools (40HC is tightest, 20DV easier), how ship_date affects seasonal evaluation (pre-CNY crunch, post-CNY glut), and how carrier affects availability (mega lines ease crunch). This enriches parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 what the equipment imbalance costs — BEFORE pricing the move.' It identifies the specific verb ('check'), the resource ('equipment availability on a lane'), and explicitly distinguishes from sibling rate tools like get_spot_rate, which assume a box exists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises using this tool 'BEFORE pricing the move' and contrasts with rate tools that assume box availability. It also provides guidance on when not to use it (e.g., when live inventory is needed) and suggests alternatives within the tool (e.g., splitting container type, shifting ship window). Context for carrier and seasonal effects is given.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| lanes | Yes | Lanes with bids. Each: { origin_port, dest_port, annual_volume, container_type?, bids: [ { carrier, rate, transit_days?, sailings_per_week?, free_days? } ] }. | |
| priority | No | Scoring weighting: 'cost', 'reliability' or 'balanced' (default). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses behavioral traits: scoring on cost, reliability, and coverage; detecting and penalizing low-balls; selecting credible awards; and providing network-level cost comparisons. It also clarifies it is a modeled decision aid, not a procurement decision.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is lengthy and includes extraneous details like 'Honest (regla 7)' and payment information, which add clutter. It front-loads the main purpose but could be trimmed for better conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately explains the output (best credible award per lane, network cost comparison, low-ball flags) and addresses the tool's limitations. It is sufficiently complete for a tool with two parameters, though a note on pagination or result format could enhance completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage with property descriptions for 'lanes' and 'priority'. The description adds operational context (e.g., annual volumes, carrier bids) but does not significantly augment the schema's parameter meaning beyond what is already described.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool evaluates carrier bids on a freight tender to pick the best award per lane. It provides specific details on inputs (lanes with bids) and outputs (scored awards, network cost comparison, low-ball flags), effectively distinguishing it from sibling tools like 'select_provider' or 'carrier_recommendation'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates when to use the tool (when evaluating bids on a tender) and notes it is a decision aid, not a procurement decision. It advises verifying rates contractually but does not explicitly state when not to use it or mention alternatives among siblings.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| origin_port | Yes | Origin port — its COUNTRY is the exporter jurisdiction. | |
| dest_port | Yes | Destination port — its COUNTRY drives the embargo / licence-required check. | |
| container_type | No | Container size '20ft'/'40ft'/'40HC' (informational). Optional. | |
| product | No | Product description to classify, e.g. 'thermal imaging camera', 'encryption appliance', 'cotton t-shirts'. Provide this OR hs_code. | |
| hs_code | No | Explicit HS code (6+ digits). Provide this OR product. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses behavioral traits: it is modeled, simplified, non-authoritative, not legal advice, and includes payment details. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is lengthy but all sentences are meaningful and well-structured. Front-loaded with core purpose, then details, then warnings. Could be slightly tighter but still effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 possible outcomes (BLOCKED, LICENCE, PERMITTED, REVIEW-REQUIRED) and the decision logic, making it 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. Description adds significant meaning by explaining how parameters like product or HS code are used in the decision tree, and the classification logic.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it checks legality of export and license requirements, distinguishing it from denied-party screening. It uses specific verbs and resources, and the sibling tools list confirms uniqueness.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly defines when to use (goods-side trade compliance) and when not to use (not for denied-party screening). Also advises verification with authorities, providing clear usage boundaries.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| local_currency | Yes | Your home currency you pay freight in: EUR, GBP, JPY, CNY, INR, KRW, CAD, AUD, SGD, BRL, MXN (or a name). REQUIRED. | |
| annual_freight_spend_usd | Yes | Your yearly USD ocean-freight bill (the USD exposure). REQUIRED. | |
| horizon_months | No | Hedging horizon in months (1-36, default 12). The exposure & risk are pro-rated to it. | |
| risk_tolerance | No | 'low' (hedge more), 'medium' (default) or 'high' (hedge less). | |
| spend_cv | No | Relative std-dev of your freight spend itself (e.g. 0.2 = ±20% volume). Caps the hedge ratio. Optional; default 0.15. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully bears the transparency burden. It discloses that the tool provides modeled estimates (not live), details the calculations (volatility, 95% adverse move, hedge ratio using media-variance), and states it does not give financial advice. It also mentions premium cost.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: purpose first, then explanation, outputs, caveats, and cost. It is front-loaded and informative, though somewhat verbose with phrases like 'Honest (regla 7)' that could be trimmed without losing value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity, no output schema, and no annotations, the description is thorough. It explains all return values (exposure in local currency, volatility, 95% move, hedge ratio, forward points, laddered plan) and limitations, leaving no major gaps for an agent to understand its behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 restates the purpose of parameters like local_currency and annual_freight_spend_usd but does not add significant new information beyond what the schema descriptions already provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Quantify and hedge the CURRENCY RISK of your ocean-freight spend.' It specifies inputs and outputs, and distinguishes itself from other tools by focusing on ocean-freight FX exposure, not live quotes or financial advice.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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: for non-US shippers with USD freight bills. It includes a caveat that it is a modeled reference analysis, not live quotes or advice, and advises consulting a professional. However, it lacks explicit comparison to sibling tools or a 'when not to use' section.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| origin_port | Yes | Origin port (city name, UN/LOCODE, or 'City, Country'). Same resolution as get_spot_rate. | |
| dest_port | Yes | Destination port (city name, UN/LOCODE, or 'City, Country'). | |
| container_type | No | Container size: '20ft', '40ft' or '40HC'. Optional; defaults to '40ft'. | |
| ship_date | No | Intended shipment date (ISO 'YYYY-MM-DD'). Drives Peak-Season Surcharge & GRI applicability. Optional; defaults to today. | |
| free_days | No | Carrier free days at destination before Demurrage & Detention accrues (default 5 when an estimated dwell is supplied). | |
| estimated_days_at_port | No | Total 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. | |
| overweight | No | Flag an overweight load to include the overweight surcharge. Optional; default false. | |
| fuel_proxy | No | Optional live VLSFO marine-fuel price ($/tonne) to drive the BAF model. Omit to use a recent representative level (~$600/t, tagged modeled). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses the tool's behavior: models multiple surcharges, indicates which are included/excluded, tags values as 'typical' or 'modeled', and notes the indicative nature. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is somewhat lengthy but well-structured, front-loading the core purpose. Every sentence provides value without redundancy. Minor room for tighter phrasing but overall efficient for the complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters, no output schema, and high complexity, the description is remarkably complete. It explains the return composition (line-item breakdown, all-in total, comparison) and model behavior, leaving no critical gap for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers all 8 parameters with 100% description, so baseline is 3. The description adds value by explaining how parameters affect cost (e.g., ship_date drives peak season surcharge, free_days/estimated_days_at_port for D&D), justifying above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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' as the true landed cost, distinguishing it from get_spot_rate which returns only the base rate. It uses specific verbs and resources, and effectively differentiates from its sibling tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs when to use this tool (for true landed cost) vs get_spot_rate (for base rate). Provides detailed context on surcharge applicability based on routes and ship dates, and mentions alternative tools implicitly.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| origin_port | Yes | Origin port (city name, UN/LOCODE, or 'City, Country'). The origin COUNTRY drives Section 301 / FTA / antidumping. | |
| dest_port | Yes | Destination port (city name, UN/LOCODE). The destination COUNTRY drives the duty bloc (US/EU/UK/CA/AU/JP) and import VAT. | |
| product | No | Product 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. | |
| hs_code | No | Explicit HS code (6+ digits, e.g. '851830'). Overrides the text classifier. Provide this OR product. | |
| fob_value | Yes | Merchandise value (FOB) in USD — the goods value at origin. REQUIRED: duties & taxes are computed on this (via CIF). | |
| container_type | No | Container size '20ft'/'40ft'/'40HC' for the freight leg. Optional; defaults to '40ft'. | |
| ship_date | No | Intended ship date (ISO). Drives seasonal freight surcharges. Optional; defaults to today. | |
| estimated_days_at_port | No | Days the box will dwell at destination (adds Demurrage & Detention to the freight leg). Optional. | |
| free_days | No | Carrier free days before D&D (default 5 if a dwell is given). | |
| overweight | No | Flag an overweight load (freight surcharge). Optional. | |
| fuel_proxy | No | Optional VLSFO $/tonne for the BAF model. Optional. | |
| insurance_rate_pct | No | Marine insurance as a fraction of FOB+freight for the CIF model (default 0.005 = 0.5%). Optional. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It thoroughly discloses the tool's behavior: returns indicative breakdown, HS classification, duty rules per destination/origin, de minimis thresholds, VAT computation, and caveats. This is comprehensive and sets accurate expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long and detailed, packing a lot of information. While it is well-structured with clear sections, it could be more concise. Every sentence earns its place, but brevity could improve agent parsing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 12 parameters, no output schema, and no annotations, the description is remarkably complete. It covers all major aspects: output breakdown, classification, duty rules, VAT, de minimis, caveats, and even payment. It meets the needs for a complex estimation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, but the tool description adds valuable context beyond field definitions, e.g., explaining that origin_port drives trade remedies and FTA logic. This helps the agent understand parameter significance in the broader computation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a landed cost breakdown with HS classification and duty modeling. It covers a specific domain (imports) and many related concepts, but does not explicitly differentiate from siblings like total_cost_ownership or get_all_in_rate, leaving some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool returns and the components involved, implying it is for estimating landed costs. However, it lacks explicit guidance on when to use this versus alternatives (e.g., get_spot_rate for freight only) and does not mention exclusions or prerequisites.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| origin_port | Yes | Origin port (city name, UN/LOCODE, or 'City, Country'). Same resolution as get_spot_rate. | |
| dest_port | Yes | Destination port (city name, UN/LOCODE, or 'City, Country'). | |
| weeks | No | How many weeks of history to analyze (2–52, default 8). The window is capped by how much history we've accumulated for the lane. | |
| ship_date | No | The 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. | |
| forecast_weeks | No | How many weeks ahead to forecast the rate (1–26, default 6). Prediction intervals widen with the horizon. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Describes server-side processing with accumulated history and freight-seasonality model. Details statistical method (Holt-Winters/ETS), output components including backtest metrics, and states 'Indicative market intelligence, not a carrier quote.' Clearly discloses premium nature and prerequisite call to get_spot_rate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is lengthy but front-loads the main purpose. Every sentence earns its place by adding value. Could be slightly trimmed, but given the tool's complexity and lack of output schema, the detail is justified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite 5 parameters and no output schema, the description thoroughly explains all outputs, methodology, limitations, and prerequisites. Covers what the tool returns, how it works, and how to use it effectively, making the agent fully informed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline 3. The description adds meaningful context: explains weeks cap on history, ship_date used for seasonality calendar, forecast_weeks with widening intervals. This aids understanding beyond schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 grounded recommendation. It lists specific outputs: time series, statistical forecast, seasonality calendar, anomaly detection, and a concrete book-now/wait call. It distinguishes from siblings by noting port normalization same as get_spot_rate and suggesting calling get_spot_rate first.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage guidance: 'Tip: call get_spot_rate (free) on a lane first — it seeds the history.' Also mentions premium payment and unlock instructions. Does not explicitly state when not to use or contrast with siblings, but the context of sibling tools (many different purposes) makes this acceptable.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| origin_port | Yes | Origin port (city name, UN/LOCODE, or 'City, Country'). Same resolution as get_spot_rate. | |
| dest_port | Yes | Destination port (city name, UN/LOCODE, or 'City, Country'). | |
| container_type | No | Container size '20ft'/'40ft'/'40HC' (informational for the lane label). Optional; defaults to '40ft'. | |
| ship_date | No | Intended 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility for disclosing behavioral traits. It clearly states the tool is 'INDICATIVE, NOT a live waiting-time feed' and 'MODELED structural typical + a dated disruption overlay.' It also mentions premium pricing and conversion details. This level of transparency is commendable, though it could mention if the tool is read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is verbose and dense, covering extensive detail in a single paragraph. While it front-loads the main purpose, it could benefit from bullet points or structured sections for readability. However, every sentence adds value, so it is not overly wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity and lack of output schema, the description provides comprehensive information about return values (congestion index, waiting days, operational-risk score, active disruptions) and data sources. It also clarifies limitations and pricing, ensuring the agent has enough context to invoke the tool appropriately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
100% schema coverage lowers the burden. The description provides additional context for the `ship_date` parameter, explaining how disruptions are evaluated relative to the date. For other parameters, it references the schema's descriptions (e.g., same normalization as get_spot_rate). This adds meaning beyond the schema for at least one parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 provide port congestion and disruption intelligence for a lane. It explicitly distinguishes itself from rate tools, indicating its unique role in assessing operational port status, not costs. This specificity helps the agent understand exactly what this tool offers versus siblings like get_spot_rate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description contrasts the tool with rate tools, guiding when to use it ('this tells you whether the PORTS can actually clear it on schedule'). It also mentions pricing details. However, it does not explicitly list alternative tools or scenarios to avoid using it, which would further enhance guidance.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| subject | No | Drill into one carrier/supplier/lane. Optional — omit for the whole scorecard. | |
| subject_type | No | 'carrier' (default), 'supplier' or 'lane' — disambiguates the subject. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description implies read-only via 'Read', discloses cost details, and mentions that data is based on own empirical logs with small samples flagged, adding transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description contains multiple sentences with some marketing language and could be more concise, though it front-loads the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Comprehensively describes the return fields (on-time %, delay, rates, reliability score, trend, ranking, best/worst performer), no output schema exists, and includes data source and cost context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds value beyond the schema by explaining how to use the 'subject' parameter (omit for whole network, pass one to drill in) and mentions disambiguation via 'subject_type'. Schema coverage is 100%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads a scorecard of KPIs for suppliers, carriers, or lanes, distinguishing it from other analytics tools by specifying it's based on data from record_performance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides guidance on using the optional 'subject' parameter to drill down into a specific entity or omit for the whole network, but does not explicitly mention alternatives or when not to use the tool.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| origin_port | Yes | Origin port: a city name ('Shanghai', 'Ningbo', 'Rotterdam'), a UN/LOCODE ('CNSHA', 'NLRTM') or 'City, Country'. | |
| dest_port | Yes | Destination port: a city name ('Los Angeles', 'New York', 'Hamburg'), a UN/LOCODE ('USLAX'), or 'City, Country'. | |
| container_type | No | Container size: '20ft', '40ft' or '40HC' (high-cube). Optional; defaults to '40ft' (the size the public indices quote). Synonyms like TEU/FEU/40HQ are accepted. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must cover behavioral traits. It explains cross-validation of indices, port normalization, container defaults, and return fields (confidence score, market direction). Lacks detail on error cases but is overall transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and covers many details in a structured way. Each sentence adds value, though it could be slightly shorter (e.g., 'Port names are normalized...' could be integrated). Still, it's well-organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description fully explains return values (normalized USD, confidence score, market direction) and data sources (WCI, FBX, SeaRates). It also notes it's free and indicative. 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds meaning: explains acceptable formats for ports (city, UN/LOCODE, City, Country), container type defaults to 40ft and accepts synonyms, and reasoning behind defaults. Adds value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get', the resource 'current ocean container spot rate for a lane', and the decision-making purpose 'should I book this shipment now or wait?'. It distinguishes from the sibling tool get_lane_trend.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (transpacific, Asia-Europe, major deep-sea lanes) and when to use alternative 'For the weeks-long trend... use get_lane_trend'. Also clarifies it's 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.
| Name | Required | Description | Default |
|---|---|---|---|
| origin_port | Yes | Origin/load port (city, UN/LOCODE, or 'City, Country'). | |
| dest_port | Yes | Destination/delivery port (city, UN/LOCODE, or 'City, Country'). | |
| incoterm | Yes | The Incoterms 2020 rule to analyse: one of EXW, FCA, FAS, FOB, CFR, CIF, CPT, CIP, DAP, DPU, DDP. REQUIRED. | |
| container_type | No | Container size '20ft'/'40ft'/'40HC' (drives the container-appropriateness check). Optional; defaults to '40ft'. | |
| product | No | Optional product description (informational context only). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It extensively discloses behavior: returns the precise point of risk transfer, who pays each step, insurance mandates, and classic traps. It also mentions it is not legal advice (regla 7), premium payment, and port normalization. No contradictions with annotations (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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is thorough and well-structured, front-loading the main purpose. However, it is slightly verbose, especially with the premium payment details, but every sentence contributes useful information. It could be more concise without losing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of incoterms and no output schema, the description is remarkably complete. It covers risk transfer, payment responsibilities, insurance mandates, common traps, and container appropriateness. It provides all necessary context for an AI agent to use this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 the 'incoterm' parameter values (list of rules), that 'container_type' drives a container-appropriateness check, and that 'product' is informational. This enriches the schema-provided descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool explains the exact cost and risk split for an Incoterms 2020 rule on a lane, using specific verbs and resource. It distinguishes itself from sibling tools by focusing on incoterm responsibilities, which is unique among the listed siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 this tool (when an importer makes incoterm decisions like 'FOB Shanghai' vs 'DDP my-warehouse'), and implies its value by noting that a thin agent routinely gets this wrong. It does not explicitly state when not to use or list alternatives, but the context is sufficient.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| origin_port | Yes | Origin port (city, UN/LOCODE, or 'City, Country'). The route (incl. Red-Sea diversion) drives the war-risk premium. | |
| dest_port | Yes | Destination port (city, UN/LOCODE, or 'City, Country'). | |
| cargo_value | Yes | Merchandise value (USD) — REQUIRED. The insured value is CIF (cargo + freight) + 10%. | |
| container_type | No | Container size '20ft'/'40ft'/'40HC' (for the freight leg). Optional; defaults to '40ft'. | |
| product | No | Product description to classify the cargo loss profile (e.g. 'bluetooth earbuds', 'steel coils'). Optional but improves the rate. | |
| hs_code | No | Explicit HS code (alternative to product). Optional. | |
| mode | No | Transport mode for the loss profile: 'ocean' (default), 'air' (lower loss rate) or 'sea-air'. Optional. | |
| deductible_fraction | No | Policy 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. | |
| ship_date | No | Intended ship date (ISO). Optional; defaults to today. | |
| markup_pct | No | Insured-value markup over CIF (default 0.10 = the customary +10%). Optional. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses behavioral traits: it is a recommendation tool using market-typical bands (not a broker's quote), details premium calculation components, payment per call or prepaid key, and UN/LOCODE normalization. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with the main purpose, then breaks down clauses, premium calculation, Incoterms, and payment. It is somewhat long but each sentence adds value; could be slightly more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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), the description is thorough, covering purpose, premium components, clauses, Incoterms, and payment. It lacks explicit output format but the premium computation details imply what is returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds extra context beyond schema descriptions, such as how origin port affects war-risk premium and how product classifies loss profile. This adds value without being redundant.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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, specifying the verb 'Recommend' and the resource 'marine cargo insurance'. It distinguishes from siblings by detailing the comparison of Institute Cargo Clauses, which is unique among the listed tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, including Incoterms implications (CIF, CIP, FOB/CFR/CPT) and payment model. It does not explicitly list alternatives among siblings, but the detailed Incoterms guidance helps decision-making.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| origin_port | Yes | Origin port (city name, UN/LOCODE, or 'City, Country'). | |
| dest_port | Yes | Destination port. | |
| container_type | No | Container '20ft'/'40ft'/'40HC'. Optional; default '40ft'. | |
| annual_demand_units | Yes | Annual demand in UNITS. REQUIRED — inventory policy is sized off it. | |
| unit_value_usd | Yes | Per-unit value (USD). REQUIRED — drives holding cost and immobilised capital. | |
| demand_cv | No | Demand coefficient of variation (σ_demand/mean). Optional; default 0.30. | |
| service_level | No | Target cycle service level (in-stock probability, e.g. 0.95). Optional; default 0.95. | |
| annual_holding_rate_pct | No | Annual holding cost as a fraction of unit value (e.g. 0.25). Optional; default 0.25. | |
| ordering_cost_usd | No | Fixed cost per purchase order (USD). Optional; default 250. | |
| units_per_container | No | Units per ocean container (for the annual freight trade-off). Optional. | |
| air_weight_kg | No | Air shipment weight per consignment (kg) to price the air freight side of the trade-off. Optional. | |
| air_volume_m3 | No | Air shipment volume per consignment (m³). Optional. | |
| ship_date | No | Ship date (YYYY-MM-DD). Optional; default today. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully bears the burden. It discloses the core formula (safety stock = z·σ_LTD, reorder point, Wilson EOQ), indicates it uses textbook OR models, and mentions 'premium pay per call.' It is transparent about the computational behavior and cost model.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single coherent paragraph that front-loads the primary purpose. At roughly 10 sentences, it is fairly concise for the complexity of the tool, though it could be slightly restructured for easier scanning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity and lack of output schema, the description adequately explains the return values (safety stock, reorder point, EOQ, total cost per mode) and the underlying trade-off logic. It covers the key parameters and behavior, though it omits potential error conditions or edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 annual_demand_units and unit_value_usd drive the inventory policy and trade-off, and it contextualizes optional params like service level and holding rate within the formula. This exceeds mere repetition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Size the INVENTORY a freight decision forces you to hold.' It specifies the resource (inventory) and action (size) and distinguishes from siblings like total_cost_ownership by focusing on safety stock and reorder point calculations driven by freight mode choices.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the user to 'Give the lane + your annual demand (units) + unit value' and explains the trade-off between ocean baseline and air option. While it provides clear context for use, it does not explicitly exclude alternatives or mention when not to use this tool relative to siblings like compare_modes.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| origin_port | Yes | Origin port (city name, UN/LOCODE, or 'City, Country'). | |
| dest_port | Yes | Destination port. | |
| container_type | No | Container '20ft'/'40ft'/'40HC'. Optional; default '40ft'. | |
| ship_date | No | Ship date (YYYY-MM-DD) — overlays seasonal labour/climate windows. Optional; default today. | |
| transit_country | No | A transit-country ISO2 to fold into geopolitical risk (e.g. 'EG' for Suez). Optional. | |
| carrier_count | No | How many distinct carriers you use on this lane (concentration). Default 1. | |
| port_count | No | How many distinct origin ports you use for this flow. Default 1. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses the tool is modeled and indicative, not a live feed or insurance-grade, and mentions pay-per-call pricing. However, it does not detail data freshness or authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long and dense with all-caps emphasis, but front-loads the core concept. While informative, it could be more structured and concise; several sentences explain individual risk dimensions in detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 highly complete: it explains what the score represents, lists all risk factors, describes output (score, breakdown, mitigations), and includes limitations and pricing. It covers what an agent needs to know.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and each parameter has a clear description in the schema. The tool description adds context, e.g., transit_country overlays geopolitical risk, carrier_count impacts concentration, adding meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool computes a lane-risk score (0-100) for supply-chain risk mapping. It specifies the verb 'compose' and lists multiple risk dimensions, distinguishing it from sibling tools like carbon_footprint or get_lane_trend.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for risk mapping by a supply-chain director but does not explicitly state when to use this tool versus alternatives, nor does it provide exclusion criteria. No guidance on when not to use is 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.
| Name | Required | Description | Default |
|---|---|---|---|
| length_cm | Yes | Carton length in cm. REQUIRED. | |
| width_cm | Yes | Carton width in cm. REQUIRED. | |
| height_cm | Yes | Carton height in cm. REQUIRED. | |
| weight_kg | Yes | Gross weight per carton in kg. REQUIRED — it drives the weight-binding & overweight logic. | |
| units_per_carton | No | Units (pieces) per carton, for unit-level totals. Optional; default 1. | |
| reefer | No | Evaluate reefer containers (20RF/40RF) instead of dry. Optional. | |
| destination_country | No | Destination ISO-2 country (e.g. 'US', 'DE') → enables the road-weight overweight check. Optional. | |
| heavy_chassis | No | Use the heavy/tri-axle road limit instead of the standard chassis cap. Optional. | |
| target_cartons | No | Total cartons to ship → produces a container MIX. Optional. | |
| target_units | No | Total units to ship (converted via units_per_carton) → produces a container mix. Optional. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully discloses the tool's behavior: it computes binding constraints, utilization, container comparisons, overweight warnings, and container mix. It explains limitations (indicative stowage planning, not 3D bin-packing) and mentions premium cost. This provides complete transparency for safe and correct usage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every sentence adds unique value. It is front-loaded with the purpose and structured logically: inputs, computations, outputs, and caveats. Despite its length, there is no redundancy, and the information density is high for a complex tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (10 parameters, no output schema), the description provides comprehensive coverage of expected outputs, edge cases (dense vs light cargo, overweight warnings), and container mix logic. It even includes pricing details. All essential aspects are addressed, making the tool self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, but the description adds significant value beyond parameter names and types. For example, it explains that weight_kg drives weight-binding and overweight logic, and describes how optional parameters like target_cartons or destination_country affect outcomes. This provides essential context for parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: optimizing container loading for stowage and cube/weight constraints. It specifies inputs (carton dimensions and weight) and outputs (units fit, binding constraint, utilization, container comparison, overweight warning, mix recommendation). It distinguishes itself from potential alternatives like pallet planning or load-securing certification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use (for importer's stowage/cube-and-weight questions) and provides examples (dense cargo vs light cargo). It explicitly states what it is not (load-securing certification). However, it does not directly compare to sibling tools like pallet_plan or cold_chain, which would further clarify when to choose this tool over others.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| origin_port | Yes | Origin port (city name, UN/LOCODE, or 'City, Country'). | |
| dest_port | Yes | Destination port. | |
| container_type | No | Container '20ft'/'40ft'/'40HC'. Optional; default '40ft'. | |
| ship_date | No | Planned ship date (YYYY-MM-DD). Optional; default today. Overlays the seasonality calendar. | |
| product | No | Product / HS to unlock the landed-cost & decision sections. Optional. | |
| hs_code | No | Explicit HS code. Optional. | |
| value | No | Merchandise value (USD) — unlocks landed cost + the unified mode/carrier/timing decision. Optional but recommended. | |
| weight_kg | No | Cargo weight (kg) — sharpens emissions & decisioning. Optional. | |
| volume_m3 | No | Cargo volume (m3). Optional. |
TDQS
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 the report is indicative decision support (not a quote/booking/legal advice), names which engines contributed, and states availability issues honestly. It also explicitly mentions premium pricing (pay per call).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but well-structured with numbered sections and front-loaded purpose. Some redundancy exists (e.g., listing all sections in detail), but it remains efficient for a complex tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description fully explains the return value by enumerating the report sections. It also covers how optional parameters affect output, pricing, and limitations, making it complete for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 some context (e.g., product/value unlock sections, defaults for container_type and ship_date) but does not significantly expand on the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 freight lane, listing six detailed sections plus an executive summary, headline, and action list. It distinguishes itself from siblings (e.g., get_spot_rate, carrier_recommendation) by being an aggregate report, not a single data point.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when a committee-ready brief is needed and mentions optional parameters to deepen the report. It does not explicitly state when not to use it or name alternatives, but the context of sibling tools makes the distinction clear.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| lanes | Yes | The lane portfolio. Each item: { origin_port, dest_port, annual_volume, container_type?, contract_rate_offered? }. REQUIRED, max 30. | |
| ship_date | No | Reference ship date (ISO) for the seasonal/market context. Optional. | |
| risk_tolerance | No | 'low', 'medium' (default) or 'high' — the portfolio's appetite for spot exposure. | |
| budget | No | Total annual freight budget (USD). If exceeded, the engine recommends shifting lanes toward locked contracts. Optional. | |
| min_reliability | No | Minimum acceptable schedule reliability (0-100) on any lane. Lanes below it are flagged; cost is not cut at the expense of service. Optional. | |
| max_co2_tonnes | No | Network CO2 ceiling (tonnes/yr). If exceeded, the engine targets the carbon-heaviest lanes. Optional. | |
| consolidation_threshold | No | Volume (containers/yr) at which a lane earns a consolidated-contract tier. Optional; default 500. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Describes global optimization process, network constraints (budget, service, CO2), outputs (top saving lanes, consolidation, trade-offs), and indicative nature. Also discloses premium cost. Very transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense paragraph but front-loads purpose and contrast with single-lane tools. Every sentence adds value. Could use bullet points for constraints, but overall efficient for the complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers what the tool does, how it works, constraints, and outputs (top saving lanes, consolidation, trade-offs). Missing explicit output format, but no output schema exists; description gives adequate high-level picture for a complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage 100%, baseline 3. Description adds context: explains lanes as a portfolio, budget shifts lanes to contracts, min_reliability prevents cutting service, max_co2 targets carbon lanes, consolidation_threshold triggers tier. Adds significant meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it optimizes an entire annual lane portfolio, contrasting with single-lane tools. Uses specific verb+resource: 'Optimize a shipper's ENTIRE annual lane PORTFOLIO at once'. Distinguishes from siblings like get_lane_trend, get_spot_rate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains this tool is for portfolio-level optimization, not single lanes. Mentions it reuses same engines for coherence. Implicitly suggests when to use (when you have a set of lanes with volumes), but lacks explicit when-not-to-use or alternative tool names.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| case_length_mm | No | Case (carton) length in mm. Optional; default 400. | |
| case_width_mm | No | Case width in mm. Optional; default 300. | |
| case_height_mm | No | Case height in mm. Optional; default 250. | |
| case_weight_kg | No | Case weight in kg. Optional; default 12. | |
| pallet | No | Pallet standard: 'EUR' (1200×800), 'EUR2' (1200×1000), 'US' (48×40), 'AU' (1165). Optional; default EUR. | |
| container_type | No | Container '20ft'/'40ft'/'40HC'/reefer. Optional; default 40HC. | |
| reefer | No | Reefer container. Optional; default false. | |
| allow_double_stack | No | Allow double-stacking pallets if height permits. Optional; default true. | |
| total_cases | No | Total shipment case count → pallets & containers needed. Optional. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses behavior: it is indicative (not a stow guarantee), capped by weight/height, and details limitations like crush strength, interlocking, and overhang. It also mentions premium pricing (pay per call). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but not overly verbose; it front-loads the main purpose and then efficiently covers inputs, outputs, comparisons, limitations, and pricing. Every sentence adds value, though slightly long for a tool description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with 9 optional parameters and no output schema, the description covers purpose, all input semantics, output computation, trade-offs, limitations, and pricing. It is self-contained and fully contextual.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all parameters. The description adds context on how inputs are used (e.g., 'best layer pattern from both case orientations + pinwheel × layers'), but does not significantly extend the schema's own parameter descriptions. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 full chain, computes cases per pallet, pallets per container, cube utilization, and contrasts with floor-loaded. It distinguishes itself from a 'box→container load optimizer', likely a sibling tool, making its unique purpose very clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies required inputs (case size, pallet standard, container) and outputs, indicating when to use the tool. It contrasts with floor-loaded and mentions the trade-off, but does not explicitly list alternative tool names or state when not to use it. Still, it provides solid guidance.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| origin_port | Yes | Origin port — its COUNTRY is taken as the exporter/seller country. | |
| dest_port | Yes | Destination port — its COUNTRY is taken as the importer/buyer country (drives the country-risk band). | |
| invoice_value | Yes | Commercial invoice value in USD. REQUIRED — finance costs are priced on it. | |
| container_type | No | Container size '20ft'/'40ft'/'40HC'. Optional; defaults to '40ft'. | |
| relationship | No | Counterparty relationship strength: 'new', 'developing' (default), 'established' or 'long-term'. The single biggest driver of the recommendation. | |
| importer_country | No | Override the importer ISO-2 country (else taken from the destination port). | |
| exporter_country | No | Override the exporter ISO-2 country (else taken from the origin port). | |
| confirmed | No | Force the LC pricing confirmed/unconfirmed. Optional; default = auto by importer-country risk. | |
| incoterm | No | Optional Incoterms 2020 rule (CIF, FOB, CIP…) for the document-set tie-in note. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses behavior: scoring risk allocation, pricing LC commissions, tying to Incoterms, and noting that figures are modeled. It includes a disclaimer and mentions the premium mechanism.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is lengthy but front-loaded with the main purpose. Every sentence adds necessary detail for a complex tool. Could be slightly more concise but respects the complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter tool with no output schema, the description covers inputs, logic, outputs, and limitations thoroughly. It explains the recommendation matrix, pricing, and ties to Incoterms, making it self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 9 parameters are described in the schema (100% coverage), but the description adds context such as the role of origin/dest ports for countries, relationship as the main driver, and default behaviors. This adds meaningful value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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, explicitly distinguishing it from sibling freight tools. It details the payment instrument spectrum and the basis for recommendation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies when to use (for import deals) and what inputs are required (lane, invoice value, relationship). It contrasts with sibling tools and provides a clear recommendation logic based on relationship and country-risk.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| origin_port | Yes | Origin port (city name, UN/LOCODE, or 'City, Country'). Same resolution as get_spot_rate. | |
| dest_port | Yes | Destination port (city name, UN/LOCODE, or 'City, Country'). | |
| container_type | No | Container size '20ft'/'40ft'/'40HC'. Optional; defaults to '40ft'. | |
| annual_volume | Yes | Expected ANNUAL volume in containers of this type (TEU-equivalent ok) — REQUIRED. It is the basis of the contract-vs-spot trade-off. | |
| risk_tolerance | No | 'low' (pay to avoid the tail → favors contract), 'medium' (default), or 'high' (chase the mean → favors spot). Sets the mean-variance λ. | |
| contract_rate_offered | No | An actual contract rate you've been offered (USD/container). If given, it is scored against break-even instead of using the modeled band. Optional. | |
| volume_cv | No | Relative std-dev of YOUR annual volume (e.g. 0.2 = ±20%), driving MQC shortfall risk. Optional; default 0.20. | |
| ship_date | No | Ship-date / contract-start anchor (ISO 'YYYY-MM-DD') for the seasonal & forecast overlay. Optional; defaults to today. | |
| weeks | No | Weeks of lane history to analyze for the forecast & mid-cycle reference (4–52, default 16). Optional. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully discloses behavioral traits: it models three strategies, builds a spot distribution, reads market regime, computes break-even, optimizes mix, models MQC penalties, and quantifies value of protection. It also mentions pricing and UN/LOCODE normalization. No contradictions 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but efficient given the tool's complexity. It front-loads the core purpose in the first sentence, then provides necessary behavioral details. While dense, every sentence adds unique information; however, it could be slightly more structured with paragraphs for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description thoroughly explains the internal logic but lacks information about the return value or output format (no output schema provided). It does not specify whether the output is a recommendation, a comparison table, or a percentage split. This gap reduces completeness for execution.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, but the description adds significant meaning beyond the schema: it explains the role of annual_volume as the basis of trade-off, risk_tolerance setting the mean-variance λ, volume_cv driving shortfall risk, and contract_rate_offered being scored against break-even. This enriches the agent's understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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' for a lane over a year—locking contract, staying on spot, or splitting. It distinguishes from siblings by specifying this is the 'procurement/CFO decision' and not a tactical booking tool like 'book this box now'. The verb 'decide' and resource 'sourcing strategy' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: 'This is the procurement/CFO decision the other tools don't touch'. It implies usage when strategic sourcing over a year is needed, contrasting with tactical tools. However, it does not explicitly list alternative tools or conditions for when not to use it, leaving some ambiguity.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| product | No | Product description to classify (e.g. 'cotton t-shirt'). Provide this OR hs_code. | |
| hs_code | No | Explicit HS code (6+ digits) of the finished good. Provide this OR product. | |
| manufacture_country | Yes | Country where the finished good is MADE (ISO2 like 'VN' or a name). REQUIRED. | |
| destination | Yes | Destination market — country (ISO2/name) or a port. Its bloc sets the FTA. REQUIRED. | |
| transaction_value | Yes | FOB value of the FINISHED good in USD (the RVC denominator). REQUIRED. | |
| materials | Yes | Bill of materials: each { description, value (USD), origin (ISO2/name), hs_code? }. REQUIRED. | |
| net_cost_fraction | No | Net cost as a fraction of transaction value for the net-cost RVC method (default 0.85). Optional. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description is highly transparent, explaining the complex computation (RVC, tariff shift, de-minimis) and disclosing limitations (not a legal determination, risk of wrong claims). It also mentions premium pricing and links to other iter tools.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is thorough but somewhat lengthy. It is well-structured, starting with a key question and then detailing the function, examples, and warnings. Every sentence adds value, but it could be slightly more concise. Still, for the complexity, it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 params, no output schema), the description fully explains the return values: verdict, points short, paths to qualify. It also references other iter tools for further steps. The description is self-contained and complete for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. However, the description adds significant value beyond schema by explaining each parameter's role in the FTA calculation (e.g., transaction_value is FOB denominator, materials is bill of materials). It also clarifies optional parameters like net_cost_fraction with a default value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: determining if a product qualifies for FTA preference. It explains the specific function (computing RVC, tariff shift, etc.) and distinguishes itself from siblings by mentioning links to iter4 and iter14, though it does not explicitly differentiate from other tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool (checking FTA origin) and includes examples of scenarios. It does not explicitly state when not to use it, but the detailed context implies appropriate usage. No explicit alternatives are mentioned, but the sibling list suggests uniqueness.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| origin_port | Yes | Origin port (city name, UN/LOCODE, or 'City, Country'). | |
| dest_port | Yes | Destination port. | |
| paid_rate_usd | Yes | The rate you currently PAY for this lane (USD per container). REQUIRED — this is what gets benchmarked. | |
| container_type | No | Container '20ft'/'40ft'/'40HC'. Optional; default '40ft'. | |
| ship_date | No | Ship date (YYYY-MM-DD) for the market read. Optional; default today. | |
| basis | No | 'spot' (default — bare ocean freight) or 'all-in' (base + surcharges) — match it to what your paid rate INCLUDES. Optional. | |
| annual_containers | No | Annual containers on this lane — to annualise the over/under-payment & savings. Optional. | |
| is_contract | No | Is the paid rate a CONTRACT rate? Flags a high contract in a soft/falling market. Optional. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description covers behavioral traits: it uses a modeled dispersion around an index mid, not real quotes, and explains the pricing model (pay per call or prepaid key). It also describes the return values (percentile, over/under pay, corrective lever). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is verbose and includes marketing language ('am I being clamped?', 'Proves:'). While it front-loads purpose and includes critical details, it could be more concise. Every sentence adds value, but the length reduces scanability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately explains return values (percentile, over/under pay, savings, lever). With 8 parameters and no annotations, it covers use cases, limitations, and pricing. It is sufficiently complete for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 parameter intent (paid_rate_usd as 'the rate you currently PAY'), usage context (annual_containers to annualize savings), and how optional parameters affect benchmarking (is_contract flags high contracts). This goes beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 bands, using specific verbs like 'Benchmark' and explaining the output (percentile, over/under payment). It distinguishes itself from sibling tools like 'get_spot_rate' or 'market_report' by focusing on comparing an existing rate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use: 'the am I being clamped? check every shipper wants.' It provides guidance on required inputs (lane + paid_rate_usd) and mentions honest limitations (modeled dispersion, not real quotes), though it lacks explicit when-not-to-use scenarios.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| subject | Yes | Carrier / supplier / lane name to record against. REQUIRED. | |
| subject_type | No | 'carrier' (default), 'supplier' or 'lane'. | |
| lane | No | Lane label for context (e.g. 'Shanghai → Los Angeles'). Optional. | |
| promised_days | No | Promised transit/delivery in days. | |
| actual_days | No | Actual transit/delivery in days. | |
| on_time | No | Explicit on-time flag (else derived from promised+actual). | |
| damaged | No | Were goods damaged? | |
| discrepancy | No | Was there a documentary discrepancy? | |
| rolled | No | Was the container rolled / shut out? | |
| note | No | Free-text note. Optional. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description fully discloses that data is persisted server-side, KPIs reflect only user-recorded data with small samples flagged, and requires payment (PREMIUM). This is comprehensive for a logging tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is somewhat verbose but well-structured: core purpose first, then details, pairing with sibling, honesty note, and payment info. Could be more concise but all content is relevant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (10 params, no output schema), the description covers purpose, parameter usage, behavioral context, and return values (KPIs). Does not mention error handling or rate limits, but provides enough for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 10 parameters have schema descriptions, and the description adds meaning by grouping them (e.g., outcome includes promised vs actual days, on-time, damage). It explains how parameters feed into KPI calculation, beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it logs shipment outcomes into a private scorecard and returns running KPIs. It distinguishes itself from the sibling get_scorecard by noting it is the empirical counterpart for recording data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear usage instructions: give subject and outcome, and pair with get_scorecard for ranking. Mentions payment model but does not explicitly state when not to use or compare with other siblings beyond get_scorecard.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| origin_port | Yes | Origin port (city, UN/LOCODE, or 'City, Country'). The origin country drives the certificate-of-origin / FTA note. | |
| dest_port | Yes | Destination port (city, UN/LOCODE). The destination country drives which advance filing applies (US ISF, EU ENS, UK S&S). | |
| product | No | Product 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. | |
| hs_code | No | Explicit HS code (overrides the text classifier). Provide this OR product. | |
| container_type | No | Container size '20ft'/'40ft'/'40HC' (informational). Optional; defaults to '40ft'. | |
| incoterm | No | Optional Incoterms 2020 rule to tag responsibilities (EXW…DDP). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It explains that the checklist is indicative, not binding, and details how goods and destination trigger specific documents. It also mentions payment premium and normalization. No contradictions or missing side effects are apparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured, starting with the main purpose and then detailing components. It is efficiently packed with information, though it includes some marketing language ('PREMIUM: pay per call') that is less essential. Overall, it is concise given the complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the tool (6 parameters, no output schema), the description is quite complete. It explains what the checklist contains, how optional inputs affect it, and what limitations exist. The return format is implied but not detailed, which is acceptable for a checklist tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents each parameter. The description adds substantial value by explaining how each parameter influences the checklist (e.g., product triggers goods-specific docs, incoterm tags responsibilities). This goes beyond schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool produces a checklist of trade documents required for shipping goods to a destination. It specifies the commercial set, goods-triggered specials, destination filings, and certificate of origin, which is distinct from sibling tools like 'check_lc_documents' or 'export_compliance'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance: when you need to know required documents for a shipment. It lists necessary inputs (origin, destination, product/hs_code) and optional parameters, and clarifies that without product/hs_code, you still get core and destination sets. It also warns that this is not a binding filing list. However, it does not explicitly state when not to use or name alternative tools.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| origin_port | Yes | Origin port (where the goods would RETURN to). City name, UN/LOCODE, or 'City, Country'. | |
| dest_port | Yes | Destination port (where the goods currently are). | |
| container_type | No | Container '20ft'/'40ft'/'40HC'. Optional; default '40ft'. | |
| quantity_units | Yes | How many units are coming back. REQUIRED. | |
| unit_value_usd | Yes | Per-unit value (USD). REQUIRED — drives recovery, handling and the decision. | |
| condition | No | 'defective' / 'rma' / 'overstock' / 'surplus' — sets recovery & recondition. Optional; default rma. | |
| duty_paid_per_unit_usd | No | Duty already paid per unit on the original import (USD) — drives the drawback reclaim. Optional; default 0. | |
| section301_per_unit_usd | No | Of that duty, the Section-301 slice per unit (USD) — NOT drawback-eligible. Optional; default 0. | |
| drawback_eligible | No | Is re-export/destruction drawback available to you? Optional; default true. | |
| recondition_hub | No | Return to a reconditioning HUB instead of origin (shorter, cheaper return leg). Optional. | |
| forward_freight_per_unit_usd | No | Override the forward per-unit freight (USD) instead of deriving it from the lane. Optional. | |
| units_per_container | No | Units per container — to spread container freight over units. Optional. | |
| pending_days | No | Days the goods sit pending a decision (storage bleed). Optional; default 0. | |
| ship_date | No | Ship date (YYYY-MM-DD) for the freight anchor. Optional. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It thoroughly explains the three dispositions, recovery math (freight multipliers, drawback eligibility, Section 301 carve-out), storage bleed, and the indicative nature of outputs. It also notes the tool is not legal advice and mentions premium pricing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is lengthy but well-structured: problem statement, required inputs, logic explanation, honest caveats. Every sentence adds value, though some sections are dense. It front-loads the core purpose and gradually details specifics, making it readable despite length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 14 parameters and no output schema, the description covers the tool's functionality comprehensively: storage bleed, drawback rules, freight multipliers, condition defaults. It lacks explicit output field names but the expected result (best disposition and recovery) is clear. For a complex tool, this is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds significant context: how unit_value_usd drives recovery, duty_paid and section301 affect drawback, condition sets recovery/recondition, and defaults like 'rma' for condition. It explains interactions between parameters and the decision logic, far exceeding mere schema repetition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool evaluates reverse logistics decisions (return, destroy, liquidate) and identifies the best net recovery. It specifies inputs (lane, units, value, condition) and outputs (priced dispositions). The tool is distinct from sibling tools like 'ship_decision' which focuses on forward logistics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use: for reverse flow decisions of goods returning from destination. It includes caveats about indicative results and overriding defaults. However, it does not explicitly state when not to use or point to alternative tools, though the unique purpose makes it clear.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| priority | No | 'cost' | 'service' | 'balanced' — the primary driver. Optional; default balanced. | |
| specialisation | No | Cargo specialisation needed: 'reefer' / 'dangerous-goods' / 'project' / 'ecommerce' / 'high-value' / 'none'. Optional; default none. | |
| cargo_type | No | Alias for 'specialisation' — a free-text cargo description is parsed into a specialisation. Optional. | |
| annual_containers | No | Annual container volume (rough) — sets the volume band (low <50, mid, high ≥500). Optional. | |
| corridor_count | No | Number of distinct corridors/regions you ship. Optional; default 1. | |
| needs_warehousing | No | Do you need warehousing/fulfilment, not just transport? Pulls toward 3PL/4PL. Optional. | |
| customs_heavy | No | Is customs the hard part (high-duty, regulated, FTA-heavy)? Pulls in a customs broker. Optional. |
TDQS
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 clearly discloses behavior: scoring archetypes, ranking, recommending type+pairing, and emitting a scorecard. It also includes honesty disclaimers about the indicative nature and premium payment.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections: purpose, usage, examples, honesty note, premium. It front-loads key information, though slightly verbose; each sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters (none required) and no output schema, the description covers the decision logic, input effects, and output deliverables (scorecard). It lacks detail on exact output format but is otherwise complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% parameter description coverage, so baseline is 3. The description adds significant value by explaining how parameters like specialisation and volume affect the ranking, providing context beyond the schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly defines the tool's purpose: selecting and grading freight intermediaries. It uses specific verbs ('choose', 'grade') and resource ('freight INTERMEDIARY'), and distinguishes from sibling tools like carrier_recommendation by focusing on intermediary archetypes 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.
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 need to choose an intermediary type based on a needs profile. It provides explicit context through examples (e.g., reefer-heavy need leads to a niche forwarder), but 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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| origin_port | Yes | Origin port (city, UN/LOCODE, or 'City, Country'). | |
| dest_port | Yes | Destination port (city, UN/LOCODE, or 'City, Country'). | |
| value | Yes | Merchandise value (USD) — REQUIRED. Drives mode-choice (capital in transit), insurance and (with a product) landed cost. | |
| container_type | No | Container size '20ft'/'40ft'/'40HC'. Optional; defaults to '40ft'. | |
| weight_kg | No | Shipment gross weight (kg) — sharpens mode-choice (air chargeable weight) and emissions. Optional. | |
| volume_m3 | No | Shipment volume (m³) — drives the air volumetric weight. Optional. | |
| product | No | Product description or HS context — enables the landed-cost (duty) component. Optional. | |
| hs_code | No | Explicit HS code (alternative to product). Optional. | |
| urgency | No | 'relaxed', 'normal' (default), 'urgent' or 'critical'. A critical/urgent shipment shifts the recommendation toward speed (air/sea-air) and a reliability-led carrier. | |
| deadline | No | Hard arrival deadline (ISO 'YYYY-MM-DD') — adds an expected-stockout cost to the mode decision. Optional. | |
| ship_date | No | Intended ship date (ISO). Drives seasonality, congestion and the book-now call. Optional; defaults to today. | |
| incoterm | No | Optional Incoterms 2020 rule (EXW…DDP) — sets who carries transit risk in the risk assessment. | |
| carrier | No | Optional preferred carrier (refines equipment & D&D). | |
| annual_volume | No | Optional annual volume (containers) — informational for the decision context. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It details that the tool integrates multiple engines, returns recommendations, and is non-binding. It mentions premium payment but does not disclose error conditions or side effects, though for a decision support tool this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is verbose and uses marketing language ('makes freight-pulse insustituible') and Spanish terms ('PUESTO EN DESTINO'), which reduces clarity for an English-only agent. Despite front-loading the purpose, it could be more concise and structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 14 parameters, no output schema, and no annotations, the description fully explains what the tool returns (mode, carrier, timing, cost, risks) and how it works, including payment details. It is comprehensive for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the description adds significant context for parameters (e.g., 'value drives mode-choice', 'urgency shifts recommendation', 'deadline adds stockout cost'), going well beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is the UNIFIED decision tool that integrates every freight-pulse layer into one actionable answer for a concrete shipment. It specifies output components and distinguishes from sibling tools that focus on individual layers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains input requirements and output, and notes it is 'indicative decision support — not a booking or a quote', providing context. However, it lacks explicit guidance on when to use this holistic tool versus individual layer tools from the sibling list.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| origin_port | Yes | Origin port (city, UN/LOCODE, or 'City, Country'). | |
| dest_port | Yes | Destination port (city, UN/LOCODE, or 'City, Country'). | |
| scenario | Yes | The what-if: 'red-sea-reopen', 'fuel-spike', 'cny' or 'tariff-change'. REQUIRED. | |
| container_type | No | Container size '20ft'/'40ft'/'40HC'. Optional; defaults to '40ft'. | |
| ship_date | No | Intended ship date (ISO). Drives the CNY-year and the baseline all-in. Optional; defaults to today. | |
| fuel_spike_pct | No | For 'fuel-spike': percent increase in VLSFO bunker (e.g. 30 = +30%). Default 30. | |
| tariff_delta_pp | No | For 'tariff-change': change in duty in PERCENTAGE POINTS (e.g. 10 = +10pp, -5 = a cut). Default 10. | |
| value | No | For 'tariff-change': merchandise value (USD) to size the duty/landed impact. Default 50000. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully carries the burden. It discloses that the tool never silently adjusts, reports baseline/scenario/deltas, and requires payment via x402 or prepaid key. It also mentions port normalization and the structural adjustments 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-structured, front-loading the main purpose and scenarios. It could be slightly more concise (e.g., 'regla 7' might be obscure to some agents), but overall it efficiently uses space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters and no output schema, the description adequately explains inputs and their effects. It mentions deltas and baseline but does not detail the exact output structure (e.g., format of returned data). Slightly more detail on return values would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 by explaining scenarios and their effects (e.g., 'fuel-spike: bunker VLSFO up X% → BAF/bunker portion rises') and details the purpose of parameters like fuel_spike_pct, tariff_delta_pp, and value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool runs a 'what-if' on a lane, recomputing COST and TIME impact of structural changes. It lists specific scenarios (red-sea-reopen, fuel-spike, cny, tariff-change) and distinguishes itself from siblings by focusing on counterfactual simulations, not predictions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit scenarios and when to use each (e.g., 'only material on Suez-exposed lanes', 'material on China-origin lanes'). It also clarifies it is a modeled counterfactual, not a prediction. However, it does not explicitly mention when NOT to use this tool or list alternatives among the 48 sibling tools.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| product | Yes | Product to source, e.g. 'cotton t-shirts', 'lithium batteries'. Provide this OR hs_code. | |
| hs_code | No | Explicit HS code. Provide this OR product. | |
| dest_port | Yes | Destination market port (its country drives the duty/FTA treatment). REQUIRED. | |
| fob_value | Yes | The China-equivalent manufactured (FOB) cost in USD — other origins are scaled by their cost index. REQUIRED. | |
| container_type | No | Container '20ft'/'40ft'/'40HC'. Optional; default '40ft'. | |
| candidates | No | Candidate origin countries (ISO2 or name): CN, VN, IN, MX, TR, TH, ID, MY. Optional; default = CN, VN, IN, MX, TR. | |
| priority | No | Weighting: 'cost', 'lead-time'/'speed', 'risk'/'resilience', or 'balanced' (default). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully discloses the tool's behavior: it compares origins on total landed cost, lead time, and risk using modeled indices. It also explicitly states the limitations: 'cost indices, risk scores and lead adders are MODELED, product-specific and directional'. No contradictions with annotations exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and inputs but is quite lengthy. Every sentence adds value, covering inputs, process, outputs, and caveats. However, slightly trimming redundant phrases could improve conciseness without losing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the tool (7 parameters, no output schema), the description is comprehensive. It covers required inputs, optional parameters, processing logic, and outputs (recommended origin and dual-source mix). It also notes limitations and pricing, fully preparing the agent for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema coverage is 100%, the description adds significant meaning beyond the schema. For example, it explains that the 'fob_value' serves as a baseline for scaling other origins' costs, and that 'dest_port' determines duty/FTA treatment. This context enhances understanding of how parameters interact.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool's purpose as quantifying the strategic CHINA+1/NEARSHORING decision. It uses specific verbs like 'compares' and 'names the recommended origin', clearly distinguishing it from sibling tools like 'get_landed_cost' which likely provide only cost data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly tells the user when to use the tool: 'Give the SAME product (or HS code) + a destination market + the China-equivalent FOB cost'. It also advises that the results are modeled and directional, recommending follow-up with factory quotes and rules-of-origin checks, which is explicit usage guidance.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| origin_port | Yes | Origin port (city name, UN/LOCODE, or 'City, Country'). | |
| dest_port | Yes | Destination port (city name, UN/LOCODE, or 'City, Country'). | |
| container_type | No | Container size '20ft'/'40ft'/'40HC'. Optional; defaults to '40ft'. | |
| dg_class | No | IMDG 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. | |
| other_classes | No | Other IMDG classes in the same booking / on board, to evaluate SEGREGATION against. Optional. | |
| product | No | Free-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). | |
| oog_equipment | No | Explicit out-of-gauge equipment: 'flat-rack-40','flat-rack-20','open-top-40','open-top-20','breakbulk'. Optional. | |
| length_cm | No | Over-dimension piece length in cm (triggers an OOG assessment). Optional. | |
| width_cm | No | Over-dimension piece width in cm. Optional. | |
| height_cm | No | Over-dimension piece height in cm. Optional. | |
| weight_kg | No | Piece weight in kg (drives flat-rack vs breakbulk). Optional. | |
| reefer | No | Force a reefer assessment even without a recognised product. Optional. | |
| controlled_atmosphere | No | Add the controlled-atmosphere (CA) reefer premium. Optional. |
TDQS
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 figures are modeled planning data, not certified, and mentions the premium payment model (x402 USDC or prepaid key). However, it does not explicitly state whether the tool is read-only or any authentication/rate limit details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but well-structured with clear sections for each cargo type. Every sentence adds value, though some redundancy exists. The length is justified by the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 13 parameters, no output schema, and no annotations, the description thoroughly covers both input usage and output expectations for all three cargo types, including the premium model and data disclaimer. It is complete for an assessment tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds significant context beyond schema descriptions: it explains how parameters interact (e.g., product inferring DG class), details output for each cargo type, and clarifies optionality. This exceeds the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly defines the tool's purpose: assessing special/non-standard cargo (dangerous goods, reefer, out-of-gauge) for a lane, distinguishing it from standard dry box rate models and sibling tools like get_spot_rate. The verb 'assess' is specific and the resource ('SPECIAL / NON-STANDARD CARGO') is well-defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 cargo that a plain dry box model can't price) and what it returns for each cargo type. It implies not to use for standard cargo (use get_spot_rate) but does not explicitly name all alternatives among siblings.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| product | Yes | Product text ('bluetooth earbuds') or an HS code. REQUIRED. | |
| hs_code | No | Explicit HS code (alternative to product). | |
| dest_port | Yes | Destination port. REQUIRED. | |
| fob_value | Yes | Per-unit baseline FOB (the China-equivalent manufactured cost) in USD. REQUIRED — other origins scale from it. | |
| annual_demand_units | Yes | Annual demand in UNITS. REQUIRED. | |
| container_type | No | Container '20ft'/'40ft'/'40HC'. Optional; default '40ft'. | |
| candidates | No | Candidate origin ISO2 codes (CN, VN, IN, MX, TR, TH, ID, MY). Optional; default the China+1 set. | |
| include_air | No | Also evaluate AIR per origin. Optional; default true. | |
| units_per_container | No | Units per container. Optional; default a value-density proxy. | |
| air_weight_kg | No | Air weight per container-equivalent (kg) to price air. Optional. | |
| demand_cv | No | Demand CV. Optional; default 0.30. | |
| service_level | No | Service level. Optional; default 0.95. | |
| annual_holding_rate_pct | No | Holding rate. Optional; default 0.25. | |
| annual_capital_rate_pct | No | Cost of capital. Optional; default 0.12. | |
| ordering_cost_usd | No | Ordering cost per PO. Optional; default 250. | |
| risk_cost_factor | No | Fraction of avg inventory value charged as expected-disruption cost (scaled by lane-risk/100). Optional; default 0.5. | |
| ship_date | No | Ship date (YYYY-MM-DD). Optional. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It discloses that the tool composes outputs from other engines, is not audited, and requires premium payment. It mentions 'regla 7' as a transparency rule. While it does not explicitly state read-only behavior, the nature of a calculation tool implies no side effects. The description is fairly transparent about limitations and cost.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is verbose with multiple paragraphs, including extensive examples and disclaimers. While the front-loading is present ('ONE comparable number per strategy'), the level of detail, such as the specific components and ranking dynamics, could be trimmed without losing essential guidance. The inclusion of payment details also adds length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (17 parameters, no output schema), the description is quite complete. It explains the logic, the components, and the expected output (ranking with TCO breakdown). It does not explicitly describe the return format or schema, but the description implies a ranked list of strategies with score breakdown. The large number of sibling tools also increases the need for clarity, which the description partially addresses.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are well-documented. The description adds value by explaining the role of key parameters like fob_value (baseline for scaling), candidates (default China+1), and the various optional cost factors (holding rate, capital rate, risk cost factor) in the overall TCO calculation. This context goes beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: computing total cost of ownership per strategy, ranking strategies, and explaining ranking dynamics. It uses specific verb phrases like 'composes PER STRATEGY' and 'ranks the strategies by TOTAL TCO'. It distinguishes itself as the comprehensive tool that 'ties the entire freight-pulse stack into one decision', clearly differentiating it from sibling tools like get_landed_cost or lane_risk_index.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly targets CFO and supply-chain-director roles and provides concrete use cases (nearshore vs China, air for high-value goods). It also includes an honest disclaimer about the indicative nature of the outputs. However, it does not explicitly state when NOT to use this tool or point to specific alternative sibling tools for more granular analyses.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
47 tool updates
v1.0.0- First observed
appointment_plan - First observed
booking_strategy - First observed
build_tender - First observed
carbon_footprint - First observed
carrier_recommendation - First observed
check_lc_documents - First observed
check_watches - First observed
cold_chain - First observed
compare_modes - First observed
contingency_plan - First observed
create_watch - First observed
customs_optimization - First observed
customs_valuation - First observed
decarbonization_roadmap - First observed
dnd_strategy - First observed
door_to_door - First observed
equipment_availability - First observed
evaluate_bids - First observed
export_compliance - First observed
fx_exposure - First observed
get_all_in_rate - First observed
get_landed_cost - First observed
get_lane_trend - First observed
get_port_intel - First observed
get_scorecard - First observed
get_spot_rate - First observed
incoterm_responsibility - First observed
insurance_recommendation - First observed
inventory_optimization - First observed
lane_risk_index - First observed
load_plan - First observed
market_report - First observed
optimize_network - First observed
pallet_plan - First observed
payment_terms - First observed
procurement_strategy - First observed
qualify_fta_origin - First observed
rate_benchmark - First observed
record_performance - First observed
required_documents - First observed
reverse_logistics - First observed
select_provider - First observed
ship_decision - First observed
simulate_scenario - First observed
sourcing_analysis - First observed
special_cargo - First observed
total_cost_ownership
TDQS
Each tool targets a highly specific aspect of freight logistics, from spot rates to customs optimization to scenario simulation. The detailed descriptions provide clear boundaries, and even overlapping areas like demurrage are split into distinct tools (appointment_plan vs dnd_strategy) with unique purposes.
Tool names consistently follow a verb_noun pattern (e.g., get_spot_rate, create_watch, check_watches) or are descriptive noun phrases (e.g., market_report, ship_decision). All use lowercase with underscores, with no mixing of conventions or irregular patterns.
At 47 tools, the count is high, reflecting the server's exhaustive coverage of freight logistics (rates, costs, compliance, risk, optimization). While above the typical sweet spot, the breadth justifies the number, and each tool serves a distinct function without redundancy.
The tool surface covers virtually the entire lifecycle of freight decision-making: market intelligence, cost analysis, regulatory compliance, risk management, procurement, and optimization. Minor gaps (e.g., no tool for real-time tracking) are outside the server's decision-support scope, making it remarkably complete for its stated purpose.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Ocean shipping intelligence: D&D, freight rates, vessel schedules, port data. 24 tools, 6 carriers.
Real-time supply chain risk intelligence — 24 tools, proprietary indices, predictive signals
WMS & logistics intelligence: live freight & shipping rates, port data, inventory, fleet, KPIs
Shipping intelligence — D&D charges, local charges, inland haulage. x402 USDC payments.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceOcean container shipping intelligence for AI agents — D\&D tariffs, freight rates, vessel schedules, port congestion, inland haulage across 6 major carriers. 24 MCP tools.MIT
- FlicenseAqualityCmaintenanceReal-time supply chain risk intelligence with 25 tools: Global Disruption Index, Manufacturing Index, commodity prices, port congestion, border delays, chokepoints, air cargo, trade policy, energy, rail, freight, economic indicators, predictive signals, and AI intelligence briefs.6341-
- AlicenseNot gradedqualityCmaintenanceTrack ocean containers across 200+ shipping lines by container, bill of lading, or booking number — live milestones, vessel positions, ETAs, and demurrage & detention free time.17MIT
- AlicenseAqualityBmaintenanceEnables AI assistants to query and manage logistics shipment data, supporting operations like tracking, quoting, and performance analysis via nine tools backed by a demo dataset or a REST API.9253MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Baneado98/freight-pulse'
If you have feedback or need assistance with the MCP directory API, please join our Discord server