ShippingRates MCP Server
REMOTE · MCP.SHIPPINGRATES.ORG · SCANNED AUG 3
Ocean shipping intelligence: D&D, freight rates, vessel schedules, port data. 24 tools, 6 carriers.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →
Endpoint Security74
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one. See how to fix → View diagnostics → Partial
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability60
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 6873 tokens (~264/item across 26 items; 26 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · mcp.shippingrates.org
claude mcp add --transport http vinaybhosle-shippingrates-mcp-server https://mcp.shippingrates.org/mcp/
[mcp_servers.vinaybhosle-shippingrates-mcp-server] url = "https://mcp.shippingrates.org/mcp/"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"vinaybhosle-shippingrates-mcp-server": {
"type": "remote",
"url": "https://mcp.shippingrates.org/mcp/",
"enabled": true
}
}
} openclaw mcp add vinaybhosle-shippingrates-mcp-server --url https://mcp.shippingrates.org/mcp/ --transport streamable-http
mcp_servers:
vinaybhosle-shippingrates-mcp-server:
url: "https://mcp.shippingrates.org/mcp/" {
"mcpServers": {
"vinaybhosle-shippingrates-mcp-server": {
"type": "http",
"url": "https://mcp.shippingrates.org/mcp/"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.
- 1 Aug 26 0
- Tool “shippingrates_lines” rewrote its description, which is the text the model reads security
- Tool “shippingrates_risk_score” rewrote its description, which is the text the model reads security
- Tool “shippingrates_search” rewrote its description, which is the text the model reads security
- Tool “shippingrates_stats” rewrote its description, which is the text the model reads security
- Tool “shippingrates_total_cost” rewrote its description, which is the text the model reads security
- Tool “shippingrates_congestion” rewrote its description, which is the text the model reads security
- Tool “shippingrates_congestion_news” rewrote its description, which is the text the model reads security
- Tool “shippingrates_facilities” rewrote its description, which is the text the model reads security
- Tool “shippingrates_fx” rewrote its description, which is the text the model reads security
- Tool “shippingrates_rates” rewrote its description, which is the text the model reads security
- Tool “shippingrates_regulatory” rewrote its description, which is the text the model reads security
- Tool “shippingrates_reliability” rewrote its description, which is the text the model reads security
- “shippingrates_congestion” reworded the description of “port” cosmetic
- “shippingrates_fx” reworded the description of “to” cosmetic
- “shippingrates_reliability” reworded the description of “line” cosmetic
- Tool “shippingrates_stats” changed its title: ShippingRates Database Statistics → ShippingRates Certified Publication Statistics cosmetic
- Tool “shippingrates_total_cost” changed its title: Full Landed Cost Calculator → Published Total-Cost Estimate cosmetic
- Tool “shippingrates_rates” changed its title: Freight Rates → Published Freight Benchmarks cosmetic
- 31 Jul 26 +3
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 29 Jul 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.
- 28 Jul 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.
- 27 Jul 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 26 Jul 26 65
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Probed https://mcp.shippingrates.org/mcp/
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=shippingrates.org | CN=YE1,O=Let's Encrypt,C=US | 23 Jun 2026 | 21 Sept 2026 | ECDSA 256 | ECDSA-SHA384 | 510b672ff5e707cfe5327d6c3fd4693912c |
| SANs: *.shippingrates.org, shippingrates.org | ||||||
| CN=YE1,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 5ddd70dd31f801c85c186a7a04b80afe |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
DNSSEC insecure
Validation of mcp.shippingrates.org. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| org. | present | 26974 | 8 | Verified |
| shippingrates.org. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp.shippingrates.org/mcp/ | Verified | 200 | |
| http (plaintext) | http://mcp.shippingrates.org/mcp/ | HTTPS enforced | 301 | https://mcp.shippingrates.org/mcp/ |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
shippingrates_cfs_tariffs Get CFS Handling Tariffs ~201
Get Container Freight Station (CFS) handling tariffs — charges for LCL (Less than Container Load) cargo consolidation and deconsolidation at port warehouses. Use this for LCL shipments to estimate warehouse handling costs. Returns per-unit handling rates, minimum charges, and storage fees at the specified port. Not relevant for FCL (Full Container Load) shipments. PAID: $0.05/call via x402 (USDC on Base or Solana). Without payment, returns 402 with payment instructions. Returns: Array of { facility, service_type, cargo_type, rate_per_unit, unit, minimum_charge, currency }.
| Name | Type | Req | Description |
|---|---|---|---|
| cargo_type | string | — | Filter by cargo type |
| port | string | yes | UN/LOCODE port code (e.g. INMAA, INMUN) |
| service | string | — | Filter by service type |
| x_payment | string | — | x402 payment proof header |
No output schema declared.
No examples provided.
shippingrates_congestion Port Congestion Data ~195
Get certified port-authority congestion measurements for a specific port. Only fields explicitly published by the authority are populated; unavailable measurements remain null and an unpublished severity remains "unknown". The current certified denominator is the Port of Los Angeles daily operations report (USLAX), including exact vessels-at-berth and local-cargo dwell values. For disruption advisories, use shippingrates_congestion_news instead. PAID: $0.02/call via x402 (USDC on Base or Solana). Without payment, returns 402 with payment instructions. Returns the unchanged API envelope: { port, port_name, current_level, days_back, history[] }.
| Name | Type | Req | Description |
|---|---|---|---|
| days_back | integer | — | Days of historical data (default: 30) |
| port | string | yes | UN/LOCODE port code; the current certified measured denominator is USLAX |
| x_payment | string | — | x402 payment proof header |
No output schema declared.
No examples provided.
shippingrates_congestion_news Shipping Disruption News ~221
Get certified shipping-disruption publications from reviewed official port-authority sources. The current publisher denominator is the official Port of Rotterdam and Port of Los Angeles news series. Every article in each finite collection window is retained; only explicit operational-disruption terms enter the customer result, and a successful zero-advisory collection stays empty instead of inventing an alert. For quantitative measurements, use shippingrates_congestion. For route-level risk scoring, use shippingrates_risk_score. PAID: $0.02/call via x402 (USDC on Base or Solana). Without payment, returns 402 with payment instructions. Returns the unchanged API array of { headline, summary, source, port_code, severity, published_at }.
| Name | Type | Req | Description |
|---|---|---|---|
| days_back | integer | — | Days of historical news (default: 7) |
| limit | integer | — | Maximum number of results |
| port | string | — | Port UN/LOCODE filter |
| severity | string | — | Severity classification filter |
| x_payment | string | — | x402 payment proof header |
No output schema declared.
No examples provided.
shippingrates_dd_calculate Calculate Demurrage & Detention Costs ~557
Calculate demurrage and detention (D&D) costs for one carrier in one country. Use this when the user needs a detailed cost breakdown for a specific carrier. Returns free days, per-diem rates for each tariff slab, and total cost. This is the core tool for logistics cost analysis — it answers "how much will I pay if my container is detained X days?" To compare D&D costs across all carriers at once, use shippingrates_dd_compare instead. By default this returns carrier detention/demurrage. Pass charge_type="storage" to instead get TERMINAL port storage — a distinct charge billed by the terminal, not the carrier, and never mixed into the default D&D answer. Storage coverage is thin — only a handful of carrier/country lanes have it. Any uncovered combo returns an explicit 'no data' error (never a false $0), and that error names the lanes that ARE covered, derived live from the database rather than from a hardcoded list that would go stale. PAID: $0.10/call via x402 (USDC on Base or Solana). Without payment, returns 402 with payment instructions. Returns: { line, country, container_type, days, free_days, breakdown, total_cost, currency, charge_type_served, charge_family: 'carrier_dd'|'terminal_storage' }
| Name | Type | Req | Description |
|---|---|---|---|
| charge_type | string | — | Override the charge type; default is the engine's detention→demurrage→combined priority. 'storage' is a distinct TERMINAL charge (not carrier D&D) and is ONLY ever returned when explicitly requested… |
| container_type | string | yes | ISO 6346 container type — 20GP, 40GP, 40HC, 20RF, 40RF, 20OT, 40OT, 45HC, 40FR, 20FR, 40DG, 20DG, 45RF, 45OT, 45DG, 40TK, 20TK, 45GP, 45TK, 40NOR |
| country | string | yes | ISO 2-letter country code (e.g. IN, AE, SG) |
| days | integer | yes | Number of detention days |
| direction | string | — | import or export (default import) |
| line | string | yes | Shipping line slug — maersk, msc, cmacgm (or cma-cgm), hapag-lloyd, one, cosco, zim, evergreen, yangming, hmm, arkas, oocl, pil |
| x_payment | string | — | x402 payment proof header (optional — required for paid access) |
No output schema declared.
No examples provided.
shippingrates_dd_compare Compare D&D Across Shipping Lines ~287
Compare demurrage and detention costs across ALL available carriers for the same country, container type, and detention days. Use this for freight procurement and carrier selection — it answers "which carrier has the cheapest D&D in this country?" Returns a side-by-side comparison with each carrier's free days, slab rates, and total cost sorted cheapest first. For a single carrier's detailed D&D breakdown, use shippingrates_dd_calculate instead. PAID: $0.25/call via x402 (USDC on Base or Solana). Without payment, returns 402 with payment instructions. Returns: Array of { line, free_days, total_cost, currency, slabs } for each available carrier, sorted by total_cost ascending.
| Name | Type | Req | Description |
|---|---|---|---|
| container_type | string | yes | ISO 6346 container type — 20GP, 40GP, 40HC, 20RF, 40RF, 20OT, 40OT, 45HC, 40FR, 20FR, 40DG, 20DG, 45RF, 45OT, 45DG, 40TK, 20TK, 45GP, 45TK, 40NOR |
| country | string | yes | ISO 2-letter country code |
| days | integer | yes | Number of detention days |
| x_payment | string | — | x402 payment proof header |
No output schema declared.
No examples provided.
shippingrates_dd_countdown Demurrage/Detention Free-Time Countdown ~533
Given a container's carrier, country, container type and ARRIVAL DATE, report how many free days remain, the first chargeable day, the per-diem once charging starts, cost accrued so far, and a forward cost projection. Use this to answer "how long until this container starts costing demurrage, and how much per day?" — the proactive companion to shippingrates_dd_calculate (which answers a fixed number of days). Same underlying tariff engine, so the numbers agree. The free-time clock starts at the carrier-defined event (port discharge or ICD rail arrival) — the arrival_date is taken as supplied, not carrier-confirmed (data_basis = user_supplied_arrival). Pass charge_type="storage" for a TERMINAL storage countdown instead of carrier D&D (thin coverage — see charge_type param). The response's charge_family field ('carrier_dd' | 'terminal_storage') always discloses which one answered the request. PAID: $0.10/call via x402 (USDC on Base or Solana). Without payment, returns 402 with payment instructions. Returns: { free_days_total, days_elapsed, free_days_remaining, free_time_ends_on, status, accrued_cost, current_daily_rate, currency, forecast[] }
| Name | Type | Req | Description |
|---|---|---|---|
| arrival_date | string | yes | Container arrival date, YYYY-MM-DD — starts the free-time clock |
| charge_type | string | — | Override the charge type; default is the engine's detention→demurrage→combined priority. 'storage' is a distinct TERMINAL charge (not carrier D&D) and is ONLY ever returned when explicitly requested… |
| container_type | string | yes | ISO 6346 container type — 20GP, 40GP, 40HC, 20RF, … |
| country | string | yes | ISO 2-letter country code (e.g. IN, AE, SG) |
| direction | string | — | import or export (default import) |
| line | string | yes | Shipping line slug — maersk, msc, cmacgm (or cma-cgm), hapag-lloyd, one, cosco, zim, evergreen, yangming, hmm, arkas, oocl, pil |
| port | string | — | Optional UN/LOCODE to pin a port-specific tariff (some lanes price ports differently, e.g. north vs south China) |
| x_payment | string | — | x402 payment proof header (optional — required for paid access) |
No output schema declared.
No examples provided.
shippingrates_facilities India ICD/CFS Facility Directory ~206
Search India's current official ICEGATE Inland Container Depot (ICD) and Container Freight Station (CFS) directory by source-published facility code, name, and type. Use this to resolve an official ICEGATE ICD/CFS code or facility name. Optional operational attributes remain null unless a separate official source publishes and certifies them; the current edition does not assert GPS, rail, operator, or capacity data. PAID: $0.02/call via x402 (USDC on Base or Solana). Without payment, returns 402 with payment instructions. Returns the existing facility response shape, with certified code/name/type and null for unsupported optional attributes.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | — | Facility code filter |
| rail_connected | string | — | Rail connectivity filter — 'true' or 'false' |
| state | string | — | Indian state name filter |
| type | string | — | Facility type filter |
| x_payment | string | — | x402 payment proof header |
No output schema declared.
No examples provided.
shippingrates_fx Currency Exchange Rates ~151
Get the current certified ECB reference rate between two supported currencies — useful for converting shipping costs quoted in different currencies (USD, EUR, INR, SGD, CNY, JPY, and the rest of the official ECB daily series). Use this to normalize costs from different carriers/countries to a common currency for comparison. The official publication is updated on ECB working days; unsupported currencies fail closed. FREE — no payment required. Returns: { rate, from, to, source, fetched_at, cache_age_minutes }
| Name | Type | Req | Description |
|---|---|---|---|
| from | string | yes | Source currency code — e.g. "USD", "EUR" |
| to | string | yes | Target currency code — e.g. "INR", "SGD" |
No output schema declared.
No examples provided.
shippingrates_inland_compare Compare Inland Haulage Rates ~381
Compare inland haulage rates across ALL available carriers for a port-to-ICD/city pair — sorted cheapest first. Use this for carrier selection on inland legs — answers "which carrier offers the cheapest trucking/rail from port X to city Y?" For a single carrier's rates, use shippingrates_inland_haulage instead. To discover what routes exist, use shippingrates_inland_search first. Ramp (ICD/CFS pickup) and door delivery rates are never mixed in one comparison — delivery_mode defaults to 'ramp'. Set delivery_mode='door' to compare door-delivery rates instead. PAID: $0.08/call via x402 (USDC on Base or Solana). Without payment, returns 402 with payment instructions. Returns: Array of { carrier, mode, container_type, rate, currency, transit_days, weight_bracket, delivery_mode, icd_code } sorted by rate ascending.
| Name | Type | Req | Description |
|---|---|---|---|
| cargo_class | string | — | Cargo class filter — 'general' or 'DG' (dangerous goods). Default: general. |
| container_type | string | — | Container type (default: 20GP) |
| delivery_mode | string | — | Delivery mode filter — 'ramp' (ICD/CFS pickup) or 'door' (door delivery). Default: ramp — ramp and door rates are never mixed in one comparison. |
| destination | string | yes | Destination city or ICD code |
| icd_code | string | — | Destination ICD UN/LOCODE filter |
| origin | string | yes | Origin port UN/LOCODE — e.g. INNSA (Nhava Sheva), CNSHA (Shanghai), SGSIN (Singapore) |
| weight_bracket | string | — | Weight bracket filter (e.g. standard, heavy) |
| x_payment | string | — | x402 payment proof header |
No output schema declared.
No examples provided.
shippingrates_inland_haulage Get Inland Haulage Rates ~343
Get inland haulage (trucking/rail) rates for moving containers between a port and an inland location. Use this when you know the specific origin port and destination and need rate quotes. Returns route-specific rates by container type including base rate, fuel surcharges, and estimated transit times. To discover what routes exist first, use shippingrates_inland_search. To compare rates across all carriers for the same route, use shippingrates_inland_compare. PAID: $0.05/call via x402 (USDC on Base or Solana). Without payment, returns 402 with payment instructions. Returns: Array of { carrier, origin, destination, container_type, rate, fuel_surcharge, total, currency, transit_days, mode, delivery_mode, icd_code }.
| Name | Type | Req | Description |
|---|---|---|---|
| cargo_class | string | — | Cargo class filter — 'general' or 'DG' (dangerous goods). Default: general. |
| container_type | string | — | Container type filter — e.g. 20DV, 40HC, 20RF |
| delivery_mode | string | — | Delivery mode filter — 'ramp' (ICD/CFS pickup) or 'door' (door delivery). Default: ramp. |
| destination | string | yes | Inland destination city name (e.g. Ahmedabad, Delhi) |
| icd_code | string | — | Destination ICD UN/LOCODE filter |
| mode | string | — | Transport mode filter (PRE or ONC) |
| origin | string | yes | Origin port UN/LOCODE (e.g. INNSA, INMAA) |
| x_payment | string | — | x402 payment proof header |
No output schema declared.
No examples provided.
shippingrates_inland_search Search Inland Transport Routes ~300
Search for available inland transport routes (road/rail haulage) from port to inland destinations for a specific carrier. Use this to discover what haulage routes a carrier offers in a country. For example, search "ahmedabad" to find routes from Nhava Sheva to Ahmedabad via Maersk. Returns route options with ICD/CFS codes and available container types. For actual haulage rate quotes, use shippingrates_inland_haulage. For cross-carrier rate comparison, use shippingrates_inland_compare. PAID: $0.03/call via x402 (USDC on Base or Solana). Without payment, returns 402 with payment instructions. Returns: Array of { origin, destination, mode, container_types, icd_code } matching the search criteria.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | yes | ISO 2-letter country code |
| delivery_mode | string | — | Delivery mode filter (default: ramp) |
| icd_code | string | — | Destination ICD UN/LOCODE filter |
| keyword | string | — | Search term — city name, region, or route |
| line | string | yes | Shipping line slug — maersk, msc, cmacgm (or cma-cgm), hapag-lloyd, one, cosco, zim, evergreen, yangming, hmm, arkas, oocl, pil |
| x_payment | string | — | x402 payment proof header |
No output schema declared.
No examples provided.
shippingrates_lines List Shipping Lines ~85
List reviewed shipping-line identities that currently have live D&D coverage, with per-country record counts. Use this to discover which carrier-country D&D combinations are currently available before querying a tariff tool. FREE — no payment required. Returns: Array of { shipping_line, country, records }. Related tools: Use shippingrates_stats for aggregate totals, shippingrates_search for keyword-based discovery.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
shippingrates_local_charges Get Port Local Charges ~248
Get local charges at a port for a specific carrier — Terminal Handling Charges (THC), documentation fees (BL/DO), seal fees, and other port-specific charges. Use this when calculating total shipping costs at origin or destination. Combine with shippingrates_dd_calculate for a complete port cost picture, or use shippingrates_total_cost for an all-in-one landed cost estimate. PAID: $0.05/call via x402 (USDC on Base or Solana). Without payment, returns 402 with payment instructions. Returns: Array of { charge_type, charge_name, amount, currency, container_type, direction } for all applicable charges at the port.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | yes | ISO 2-letter country code |
| line | string | yes | Shipping line slug — maersk, msc, cmacgm (or cma-cgm), hapag-lloyd, one, cosco, zim, evergreen, yangming, hmm, arkas, oocl, pil |
| port_code | string | — | Port code to filter (e.g. INMUN for Mumbai) |
| x_payment | string | — | x402 payment proof header |
No output schema declared.
No examples provided.
shippingrates_port Port Lookup ~159
Look up port details by UN/LOCODE — name, country, coordinates, timezone, and terminal facilities. Use this to validate port codes or get port metadata. If you don't know the UN/LOCODE, use shippingrates_search with the port or city name first. PAID: $0.01/call via x402 (USDC on Base or Solana). Without payment, returns 402 with payment instructions. Returns: { port_code, port_name, country, country_code, lat, lon, timezone, facilities }
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | UN/LOCODE port code — e.g. "INNSA", "AEJEA", "SGSIN" |
| x_payment | string | — | x402 payment proof header |
No output schema declared.
No examples provided.
shippingrates_rates Published Freight Benchmarks ~296
Get current certified freight benchmark observations between two ports, optionally filtered by container type. These are official published market indices, not carrier spot quotes or contracted rates. An unsupported lane returns an empty rates array. For a published multi-component estimate, use shippingrates_total_cost and inspect its coverage, data_gaps, and total_is_partial fields. PAID: $0.03/call via x402 (USDC on Base or Solana). Without payment, returns 402 with payment instructions. Returns: { route, rates: [{ trade_lane_name, origin_port, origin_region, destination_port, destination_region, container_type, rate_low, rate_mid, rate_high, currency, index_source, trend, week_over_week_change_pct, rate_date }], carriers, transit_days_min, transit_days_max, rate_low?, rate_mid?, rate_high?, trend?, currency? }.
| Name | Type | Req | Description |
|---|---|---|---|
| container_type | string | — | Container type filter — e.g. 20DV, 40HC, 20RF |
| destination | string | yes | Destination port UN/LOCODE — e.g. AEJEA (Jebel Ali), NLRTM (Rotterdam), USNYC (New York) |
| origin | string | yes | Origin port UN/LOCODE — e.g. INNSA (Nhava Sheva), CNSHA (Shanghai), SGSIN (Singapore) |
| x_payment | string | — | x402 payment proof header |
No output schema declared.
No examples provided.
shippingrates_regulatory Regulatory Updates ~158
Get recent shipping regulatory updates and compliance requirements for a specific country — customs regulations, documentation requirements, trade restrictions, and policy changes. Use this to stay current on regulatory changes that may affect shipments to/from a country. PAID: $0.01/call via x402 (USDC on Base or Solana). Without payment, returns 402 with payment instructions. Returns: { updates: Array of { country, authority, subject, summary, category, reference_number, effective_date, source, source_url, scraped_at } }.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | yes | ISO 2-letter country code |
| limit | integer | — | Max results (default: 10) |
| x_payment | string | — | x402 payment proof header |
No output schema declared.
No examples provided.
shippingrates_reliability Schedule Reliability ~207
Get the latest certified public schedule-reliability highlights for a carrier. Use this for carrier selection and high-level benchmarking. Only metrics explicitly published in the source highlight are returned; unpublished carrier delay or sample-size fields remain null. PAID: $0.02/call via x402 (USDC on Base or Solana). Without payment, returns 402 with payment instructions. Returns the unchanged API reliability envelope with source, period, freshness, and published metric fields.
| Name | Type | Req | Description |
|---|---|---|---|
| line | string | yes | Shipping line slug — maersk, msc, cmacgm (or cma-cgm), hapag-lloyd, one, cosco, zim, evergreen, yangming, hmm, arkas, oocl, pil, wanhai |
| trade_lane | string | — | Trade lane filter — e.g. 'Asia-Europe', 'Transpacific', 'Asia-Middle East' |
| x_payment | string | — | x402 payment proof header |
No output schema declared.
No examples provided.
shippingrates_risk_score Route Risk Assessment ~274
Get a deterministic route-risk score (0-100) from current certified port-congestion measurements and explicit official disruption advisories. Unknown inputs contribute zero points. A route is scored only when at least one current, source-published signal applies; unsupported routes return no result instead of an estimated score. Chokepoint impacts use an immutable, certified UN/LOCODE mapping for Hormuz, Suez, Bab el-Mandeb, Malacca, and Panama. For exact measurements, use shippingrates_congestion. For advisory detail, use shippingrates_congestion_news. PAID: $0.10/call via x402 (USDC on Base or Solana). Without payment, returns 402 with payment instructions. Returns the unchanged API result shape: { origin_risk, dest_risk, route_risk_score, active_alerts[], chokepoints_affected[] }.
| Name | Type | Req | Description |
|---|---|---|---|
| destination | string | yes | Destination port UN/LOCODE — e.g. AEJEA (Jebel Ali), NLRTM (Rotterdam), USNYC (New York) |
| origin | string | yes | Origin port UN/LOCODE — e.g. INNSA (Nhava Sheva), CNSHA (Shanghai), SGSIN (Singapore) |
| x_payment | string | — | x402 payment proof header |
No output schema declared.
No examples provided.
shippingrates_search Search ShippingRates Data ~144
Search current customer-published ShippingRates datasets by keyword. Matches certified port codes/names, reviewed carrier identities, published transit services, and published local-charge names/carriers. Uncertified families remain empty and legacy rows are never used as a fallback. FREE — no payment required. Returns: { query, results: { ports, shipping_lines, trade_lanes, regulatory, local_charges } }. Related tools: Use shippingrates_port for structured port lookup by UN/LOCODE, shippingrates_lines for full carrier listing.
| Name | Type | Req | Description |
|---|---|---|---|
| keyword | string | yes | Search term — e.g. "maersk", "mumbai", "hapag-lloyd" |
No output schema declared.
No examples provided.
shippingrates_stats ShippingRates Certified Publication Statistics ~131
Get current counts from ShippingRates customer-published datasets. Use this before calling data tools. Counts include only certified dependencies that are currently publishable; uncertified or unavailable families report zero instead of falling back to legacy database rows. The countries and shipping_lines fields are distinct counts represented in the published D&D tariff family. FREE — no payment required. Returns: { tariff_records, ports, transit_schedules, freight_rates, local_charges, shipping_lines, countries, last_scrape (ISO datetime) } Related tools: Use shippingrates_lines for per-carrier breakdowns, shippingrates_search for keyword discovery.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
shippingrates_surcharges Shipping Surcharges ~251
Get carrier-specific surcharges — BAF (Bunker Adjustment Factor), CAF (Currency Adjustment Factor), PSS (Peak Season Surcharge), EBS (Emergency Bunker Surcharge), and more. Use this to understand surcharge exposure for a carrier in a specific country/direction. These are charges added on top of base freight rates. For a complete cost breakdown, use shippingrates_total_cost which includes surcharges automatically. PAID: $0.02/call via x402 (USDC on Base or Solana). Without payment, returns 402 with payment instructions. Returns: Array of { surcharge_type, surcharge_name, amount, currency, per_unit, effective_from, effective_to, direction }.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | — | ISO 2-letter country code |
| direction | string | — | Trade direction — 'import' or 'export' |
| line | string | yes | Shipping line slug — maersk, msc, cmacgm (or cma-cgm), hapag-lloyd, one, cosco, zim, evergreen, yangming, hmm, arkas, oocl, pil |
| x_payment | string | — | x402 payment proof header |
No output schema declared.
No examples provided.
shippingrates_total_cost Published Total-Cost Estimate ~613
Calculate a published multi-component shipping-cost estimate from certified dependencies: freight benchmark observations when available, surcharges, origin/destination local charges, requested demurrage/detention exposure, FX, and transit context. The result can be partial. A market index is not a carrier quote, and a missing component is counted as zero only when the response explicitly reports the gap. Always inspect coverage, data_gaps, total_is_partial, warning, and each component's verified flag before quoting the result. For individual components, use shippingrates_rates, shippingrates_surcharges, shippingrates_local_charges, and shippingrates_dd_calculate. PAID: $0.15/call via x402 (USDC on Base or Solana). Without payment, returns 402 with payment instructions. Returns: { components: { freight: { amount, currency, basis, verified }, origin_local_charges / destination_local_charges: { port, items: [{ charge, amount, currency, charge_type ('mandatory'|'additional'), charge_type_reason? }], total, mandatory_total, additional_total, currency: 'INR', verified }, surcharges: { items, total, verified }, detention_demurrage? }, coverage, data_gaps?, transit_days, total_estimated_cost_usd, total_estimated_cost_inr, totals_basis: 'mandatory_only', total_additional_cost_usd/inr, total_all_inclusive_cost_usd/inr }. IMPORTANT: the headline total_estimated_cost_* sums MANDATORY charges only (freight, lane surcharges, mandatory local charges, requested D&D). Conditional/if-applicable fees (amendments, penalties, cargo-type surcharges) are excluded from the headline — they are itemized with charge_type='additional' and summed in total_additional_cost_*; total_all_inclusive_cost_* is the sum of both.
| Name | Type | Req | Description |
|---|---|---|---|
| container_type | string | yes | ISO 6346 container type — 20GP, 40GP, 40HC, 20RF, 40RF, 20OT, 40OT, 45HC, 40FR, 20FR, 40DG, 20DG, 45RF, 45OT, 45DG, 40TK, 20TK, 45GP, 45TK, 40NOR |
| destination | string | yes | Destination port or inland location |
| detention_days | integer | — | Expected detention days (default: 0) |
| line | string | yes | Shipping line slug — maersk, msc, cmacgm (or cma-cgm), hapag-lloyd, one, cosco, zim, evergreen, yangming, hmm, arkas, oocl, pil |
| origin | string | yes | Origin port UN/LOCODE — e.g. INNSA (Nhava Sheva), CNSHA (Shanghai), SGSIN (Singapore) |
| x_payment | string | — | x402 payment proof header |
No output schema declared.
No examples provided.
shippingrates_transit Transit Time Lookup ~218
Get estimated ocean transit times between two ports across all available carriers. Use this for quick transit time comparison between ports — answers "how long does it take to ship from A to B?" Returns carrier-specific transit durations, service types, and frequencies. For detailed routing with transhipment ports and service codes, use shippingrates_transit_schedules instead. PAID: $0.02/call via x402 (USDC on Base or Solana). Without payment, returns 402 with payment instructions. Returns: Array of { carrier, transit_days, service_type, frequency, direct_or_transhipment }.
| Name | Type | Req | Description |
|---|---|---|---|
| destination | string | yes | Destination port UN/LOCODE — e.g. AEJEA (Jebel Ali), NLRTM (Rotterdam), USNYC (New York) |
| origin | string | yes | Origin port UN/LOCODE — e.g. INNSA (Nhava Sheva), CNSHA (Shanghai), SGSIN (Singapore) |
| x_payment | string | — | x402 payment proof header |
No output schema declared.
No examples provided.
shippingrates_transit_schedules Transit Schedules by Carrier ~211
Get detailed transit schedules for a specific carrier — service codes, routing via transhipment ports, transit days, and sailing frequency. Use this when you need routing details beyond just transit time — e.g., which transhipment ports are used, what service string applies, or weekly frequency. For a quick transit time comparison across all carriers, use shippingrates_transit instead. PAID: $0.03/call via x402 (USDC on Base or Solana). Without payment, returns 402 with payment instructions. Returns: Array of { carrier, service_code, origin, destination, transit_days, transhipment_ports[], frequency, direct }.
| Name | Type | Req | Description |
|---|---|---|---|
| carrier | string | yes | Carrier SCAC code or slug |
| destination | string | — | Destination port UN/LOCODE filter |
| max_days | integer | — | Maximum transit days filter |
| origin | string | — | Origin port UN/LOCODE filter |
| x_payment | string | — | x402 payment proof header |
No output schema declared.
No examples provided.
shippingrates_vessel_schedule Vessel Schedule ~209
Get upcoming vessel arrivals and departures at a specific port. Use this to check what vessels are expected at a port — useful for booking planning and tracking. Returns vessel names, carriers, ETAs/ETDs, and service routes. For transit time estimates between two ports, use shippingrates_transit. For detailed service-level routing, use shippingrates_transit_schedules. PAID: $0.02/call via x402 (USDC on Base or Solana). Without payment, returns 402 with payment instructions. Returns: Array of { vessel_name, carrier, voyage, eta, etd, service, from_port, to_port }.
| Name | Type | Req | Description |
|---|---|---|---|
| days_ahead | integer | — | Days to look ahead (default: 14) |
| port | string | yes | UN/LOCODE port code — e.g. INNSA (Nhava Sheva), AEJEA (Jebel Ali), SGSIN (Singapore) |
| x_payment | string | — | x402 payment proof header |
No output schema declared.
No examples provided.
shippingrates_vessel_schedule_options Vessel Schedule Options With Cutoffs ~294
Get carrier vessel/voyage schedule options between an origin and destination, including operational cutoff deadlines when the carrier source publishes them. Use this for booking planning questions that need vessel details, voyage number, transshipment ports, ETA/ETD, and port/SI/VGM cutoffs. Missing cutoff fields remain null or absent; ShippingRates does not infer unpublished deadlines. For port-call monitoring without cutoff details, use shippingrates_vessel_schedule. PAID: $0.03/call via x402 (USDC on Base or Solana). Without payment, returns 402 with payment instructions. Returns: { origin, destination, options: Array<{ carrier, vessel_name, vessel_imo, voyage_number, etd, eta, transshipment_ports, cutoffs, source_url }>, coverage }.
| Name | Type | Req | Description |
|---|---|---|---|
| carrier | string | — | Optional carrier filter — e.g. cmacgm, hapag, maersk |
| days_ahead | integer | — | Days to look ahead (default: 90) |
| destination | string | yes | Destination UN/LOCODE — e.g. USLAX, DEHAM, AEJEA |
| limit | integer | — | Maximum schedule options to return (default: 50) |
| origin | string | yes | Origin UN/LOCODE — e.g. CNSHA, INNSA, SGSIN |
| x_payment | string | — | x402 payment proof header |
No output schema declared.
No examples provided.