Skip to main content
Glama

freightgate-mcp-server

Server Details

Shipping intelligence — D&D charges, local charges, inland haulage. x402 USDC payments.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

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

MCP client
Glama
MCP server

Full call logging

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

Tool access control

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

Managed credentials

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

Usage analytics

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

100% free. Your data is private.
Tool DescriptionsA

Average 4.7/5 across 25 of 25 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool has a clearly distinct purpose with detailed descriptions that prevent confusion. For example, shippingrates_dd_calculate vs shippingrates_dd_compare handle single-carrier vs cross-carrier D&D analysis, and shippingrates_congestion, congestion_news, and risk_score cover different aspects of port conditions and route risk.

Naming Consistency5/5

All tools follow a consistent 'shippingrates_<specific_name>' pattern using snake_case. The suffixes are descriptive and predictable (e.g., _calculate, _compare, _search, _schedule), making it easy for agents to infer functionality from names.

Tool Count4/5

With 25 tools, the set is comprehensive but slightly on the higher side. However, each tool serves a distinct function within the shipping intelligence domain, and no tool feels redundant. The count is appropriate for the broad scope of the server.

Completeness5/5

The tool surface covers the full spectrum of shipping logistics: freight rates, surcharges, local charges, demurrage/detention, inland haulage, transit schedules, vessel schedules, port/facility info, congestion, disruption news, risk scoring, regulatory updates, currency conversion, and discovery tools (search, stats). No obvious gaps for the stated purpose.

Available Tools

25 tools
shippingrates_cfs_tariffsGet CFS Handling TariffsA
Read-onlyIdempotent
Inspect

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 }.

ParametersJSON Schema
NameRequiredDescriptionDefault
portYesUN/LOCODE port code (e.g. INMAA, INMUN)
serviceNoFilter by service type
x_paymentNox402 payment proof header
cargo_typeNoFilter by cargo type
Behavior5/5

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

Annotations already indicate read-only, idempotent, non-destructive behavior. Description adds that it's a paid API ($0.05/call via x402) and returns 402 without payment. Also lists return fields.

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

Conciseness5/5

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

Five sentences, each adding distinct value: purpose, usage, return fields, payment info, and return structure. No filler or redundancy.

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

Completeness5/5

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

Despite lacking an output schema, the description provides return fields. It covers purpose, usage, payment, and differentiation from FCL. Context signals show 4 params with 1 required, and description adequately supports agent decision-making.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. Description re-iterates parameter context (e.g., UN/LOCODE port code) and adds return structure details, but does not significantly enhance beyond the schema.

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

Purpose5/5

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

Title and description clearly specify the tool retrieves CFS handling tariffs for LCL shipments. It distinguishes from siblings by mentioning it's not for FCL, and explicitly lists the types of charges returned (per-unit rates, minimum charges, storage fees).

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

Usage Guidelines5/5

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

Explicitly states 'Use this for LCL shipments to estimate warehouse handling costs' and 'Not relevant for FCL shipments.' Also includes payment instructions and error response without payment.

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

shippingrates_congestionPort Congestion DataA
Read-onlyIdempotent
Inspect

Get port congestion metrics — vessel waiting times, berth occupancy, and delay trends for a specific port.

Use this to assess port efficiency and anticipate detention risk. High congestion often leads to longer container dwell times and higher D&D costs. For shipping disruption news and alerts (Red Sea, Suez, chokepoints), use shippingrates_congestion_news instead.

PAID: $0.02/call via x402 (USDC on Base or Solana). Without payment, returns 402 with payment instructions.

Returns: { port, congestion_level, avg_waiting_hours, berth_occupancy_pct, vessel_count, trend, period_days }.

ParametersJSON Schema
NameRequiredDescriptionDefault
portYesUN/LOCODE port code — e.g. INNSA (Nhava Sheva), AEJEA (Jebel Ali), SGSIN (Singapore)
days_backNoDays of historical data (default: 30)
x_paymentNox402 payment proof header
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the tool is safe. The description adds important behavioral traits: the tool is paid ($0.02/call via x402) and returns a specific JSON structure, with a note on payment failure (returns 402 with instructions). No contradiction with annotations.

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

Conciseness4/5

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

The description is structured into four concise sections: what it returns, use case with alternative, payment info, and return format. Each sentence adds value, though the mention of D&D costs could be slightly trimmed. Front-loaded with key action and resource.

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

Completeness4/5

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

Given the moderate complexity (3 params, no output schema but return fields listed), the description covers purpose, usage guidelines, payment, and expected output. Annotations provide safety profile. Sibling context given. No missing critical information.

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

Parameters3/5

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

Schema coverage is 100% with clear descriptions for all three parameters (port, days_back, x_payment). The tool description does not add parameter-specific details beyond the schema; it mentions port code examples in the description of port parameter, but that is already in the schema. Baseline 3 since schema already does the heavy lifting.

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

Purpose5/5

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

The description starts with 'Get port congestion metrics' and lists specific metrics (vessel waiting times, berth occupancy, delay trends), clearly indicating the resource and action. It also distinguishes from the sibling tool 'shippingrates_congestion_news' by mentioning its use for disruption news instead.

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

Usage Guidelines5/5

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

The description explicitly states when to use this tool ('assess port efficiency and anticipate detention risk') and provides a clear alternative ('For shipping disruption news... use shippingrates_congestion_news instead'). This covers both usage and exclusion criteria.

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

shippingrates_congestion_newsShipping Disruption NewsA
Read-onlyIdempotent
Inspect

Get shipping disruption news aggregated from 7 trade press sources — with port tagging and severity classification. Covers Hormuz Strait, Red Sea/Houthi, Suez Canal, Bab el-Mandeb, port congestion, and weather events.

Use this for situational awareness — answers "are there any active disruptions affecting my route?" For quantitative port congestion metrics (waiting times, berth occupancy), use shippingrates_congestion instead. 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: Array of { headline, source, published_at, severity, affected_ports[], chokepoint, summary }.

ParametersJSON Schema
NameRequiredDescriptionDefault
portNoPort UN/LOCODE filter
limitNoMaximum number of results
severityNoSeverity classification filter
days_backNoDays of historical news (default: 7)
x_paymentNox402 payment proof header
Behavior5/5

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

Beyond annotations (readOnlyHint, idempotentHint, destructiveHint), description adds payment cost ($0.02/call via x402), failure behavior (returns 402 without payment), and return format (array of objects with fields). No contradiction with annotations.

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

Conciseness5/5

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

Highly concise: 3 sentences for core purpose, 2 for guidance, 1 for payment, 1 for return format. Each sentence adds value without redundancy.

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

Completeness4/5

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

Covers purpose, usage, behavioral traits, return format, and payment. No output schema, but return format is described. Could be enhanced with an example, but adequate for selection and invocation.

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

Parameters4/5

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

Schema coverage is 100% with descriptions for all 5 parameters. Description adds context on payment parameter and implicitly covers others, but doesn't add much beyond schema. Still, it's clear and useful, justifying a score above baseline.

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

Purpose5/5

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

Description uses specific verb 'Get' and resource 'shipping disruption news' with multiple qualifiers: aggregated from 7 trade press sources, port tagging, severity classification, and list of covered events (Hormuz Strait, Red Sea/Houthi, etc.). It clearly differentiates from siblings like shippingrates_congestion and shippingrates_risk_score.

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

Usage Guidelines5/5

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

Explicitly states when to use ('situational awareness, 'are there any active disruptions affecting my route?') and when not, with direct references to alternative tools for quantitative metrics and risk scoring.

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

shippingrates_dd_calculateCalculate Demurrage & Detention CostsA
Read-onlyIdempotent
Inspect

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.

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, slabs: [{ from, to, rate_per_day, days, cost }], total_cost, currency }

ParametersJSON Schema
NameRequiredDescriptionDefault
daysYesNumber of detention days
lineYesShipping line slug — one of: maersk, msc, cma-cgm, hapag-lloyd, one, cosco
countryYesISO 2-letter country code (e.g. IN, AE, SG)
x_paymentNox402 payment proof header (optional — required for paid access)
container_typeYesISO 6346 container type — 20DV, 40DV, 40HC, 20RF, 40RF, 20OT, 40OT, 20FR, 40FR
Behavior5/5

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

Discloses payment requirement ($0.10/call), 402 response if unpaid, and return structure. Annotations already indicate readOnly and idempotent, and description does not contradict them; adds valuable context beyond annotations.

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

Conciseness5/5

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

Concise, well-structured: purpose, usage, output, alternative, payment info. Every sentence is necessary and efficiently communicates key information.

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

Completeness5/5

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

Despite no output schema, description fully describes return format including slab structure. Covers payment, idempotency, and required parameters. Complete for an agent to use correctly.

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

Parameters3/5

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

Schema coverage is 100%, so description adds limited parameter detail beyond schema. Does confirm mapping parameters to return fields but no extra semantics. Baseline 3 is appropriate.

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

Purpose5/5

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

Description clearly states it calculates D&D costs for one carrier in one country, specifies output (free days, per-diem rates, total cost), and distinguishes from sibling tool shippingrates_dd_compare by purpose.

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

Usage Guidelines5/5

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

Explicitly says 'Use this when the user needs a detailed cost breakdown for a specific carrier' and provides alternative for comparison across carriers. Also includes payment behavior.

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

shippingrates_dd_compareCompare D&D Across Shipping LinesA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysYesNumber of detention days
countryYesISO 2-letter country code
x_paymentNox402 payment proof header
container_typeYesISO 6346 container type — 20DV, 40DV, 40HC, 20RF, 40RF, 20OT, 40OT, 20FR, 40FR
Behavior5/5

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

Description adds behavioral context beyond annotations: returns side-by-side comparison sorted cheapest first, includes payment info and 402 error handling. 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.

Conciseness5/5

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

Efficiently structured: purpose first, then usage guidance, alternatives, payment, and return format. No wasted words.

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

Completeness5/5

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

Fully explains functionality, return format, payment requirements, and error handling. With 4 parameters and no output schema, description provides complete contextual coverage.

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

Parameters4/5

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

Schema covers all 4 parameters with descriptions (100% coverage). The description adds value by explaining how parameters combine for cross-carrier comparison, but baseline 3 is appropriate; +1 for practical contextualization.

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

Purpose5/5

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

Title and description state it compares demurrage and detention costs across all carriers for the same country, container type, and days. Clearly distinguishes from sibling tool shippingrates_dd_calculate by specifying scope.

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

Usage Guidelines5/5

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

Explicitly states use case: freight procurement and carrier selection, and directly names the alternative tool for single carrier details.

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

shippingrates_facilitiesIndia ICD/CFS Facility DirectoryA
Read-onlyIdempotent
Inspect

Search India's Inland Container Depot (ICD) and Container Freight Station (CFS) facility directory — GPS coordinates, rail connectivity, operator details, and capacity.

Use this to find facilities near an inland destination in India, or to check if a specific ICD/CFS has rail connectivity. Useful for inland logistics planning in combination with shippingrates_inland_haulage.

PAID: $0.02/call via x402 (USDC on Base or Solana). Without payment, returns 402 with payment instructions.

Returns: Array of { code, name, type, state, city, lat, lon, operator, rail_connected, capacity }.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeNoFacility code filter
typeNoFacility type filter
stateNoIndian state name filter
x_paymentNox402 payment proof header
rail_connectedNoRail connectivity filter — 'true' or 'false'
Behavior5/5

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

Annotations (readOnlyHint=true, idempotentHint=true, destructiveHint=false) already indicate safety. The description adds critical payment behavior: cost per call, required currency and network, and the 402 response for non-payment. Also describes the return array format with field names. 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.

Conciseness5/5

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

Very concise: three sentences plus a bullet point listing return fields. Information is front-loaded (purpose first, then usage, then payment, then output). No unnecessary words.

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

Completeness5/5

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

Given the 5 optional parameters, no output schema, and many sibling tools, the description covers all needed context: what the tool returns, payment requirements, and integration hint with inland_haulage. Sufficient for an agent to decide and invoke correctly.

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

Parameters4/5

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

Input schema has 5 parameters with full descriptions (100% coverage). The description adds context by listing the return fields (code, name, type, state, etc.), indirectly clarifying parameter usage. No additional parameter semantics needed beyond schema.

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

Purpose5/5

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

The description clearly states the verb 'Search' and the resource 'India's Inland Container Depot (ICD) and Container Freight Station (CFS) facility directory', listing specific data fields. It distinguishes itself from sibling tools like shippingrates_inland_haulage by suggesting combined use.

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

Usage Guidelines4/5

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

Explicitly states when to use: 'to find facilities near an inland destination in India, or to check if a specific ICD/CFS has rail connectivity.' It mentions a related sibling tool for inland logistics planning, but does not explicitly list when not to use or alternative tools.

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

shippingrates_fxCurrency Exchange RatesA
Read-onlyIdempotent
Inspect

Get current exchange rate between two currencies — useful for converting shipping costs quoted in different currencies (USD, EUR, INR, AED, SGD, CNY, etc.).

Use this to normalize costs from different carriers/countries to a common currency for comparison. Rates are updated daily.

FREE — no payment required.

Returns: { from, to, rate, timestamp }

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesTarget currency code — e.g. "INR", "AED"
fromYesSource currency code — e.g. "USD", "EUR"
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds value by noting it is FREE, rates are updated daily, and the return format { from, to, rate, timestamp }. 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.

Conciseness5/5

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

The description is concise and well-structured. It front-loads the main purpose, then provides usage context, pricing, and return format in a clear, no-waste manner.

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

Completeness5/5

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

For a simple tool with 2 parameters and no output schema, the description provides complete information: purpose, usage, return format, update frequency, and cost. Sufficient for an agent to select and invoke correctly.

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

Parameters3/5

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

Schema description coverage is 100%, with each parameter (from, to) already having descriptions. The tool description does not add additional parameter semantics beyond what the schema provides.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Get current exchange rate between two currencies.' It provides specific currency examples and distinguishes it from sibling tools, as no other sibling deals with currency exchange.

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

Usage Guidelines4/5

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

The description provides a concrete use case: 'converting shipping costs quoted in different currencies... to a common currency for comparison.' It does not explicitly state when not to use or list alternatives, but 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.

shippingrates_inland_compareCompare Inland Haulage RatesA
Read-onlyIdempotent
Inspect

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.

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 } sorted by rate ascending.

ParametersJSON Schema
NameRequiredDescriptionDefault
originYesOrigin port UN/LOCODE — e.g. INNSA (Nhava Sheva), CNSHA (Shanghai), SGSIN (Singapore)
x_paymentNox402 payment proof header
destinationYesDestination city or ICD code
container_typeNoContainer type (default: 20GP)
Behavior4/5

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

Adds payment info ($0.08/call via x402, 402 failure) and return format details beyond annotations. Annotations already cover readOnly, idempotent, non-destructive. 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.

Conciseness5/5

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

Three concise paragraphs: purpose, usage guidance, payment and return info. Front-loads key action and sorting. No wasted words.

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

Completeness4/5

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

Covers purpose, usage, payment, and return format. Lacks error cases (e.g., no rates found) but overall adequate given parameter count and no output schema.

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

Parameters4/5

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

Schema coverage is 100%, but description adds examples (UN/LOCODE for origin) and defaults (container_type default 20GP), enhancing understanding beyond schema.

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

Purpose5/5

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

The description clearly states it compares inland haulage rates across all carriers for a port-to-ICD/city pair, sorted cheapest first. It distinguishes from sibling tools by referencing shippingrates_inland_haulage (single carrier) and shippingrates_inland_search (route discovery).

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

Usage Guidelines5/5

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

Explicitly states when to use (carrier selection on inland legs) and when not to (single carrier rates or route discovery), with direct references to alternatives.

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

shippingrates_inland_haulageGet Inland Haulage RatesA
Read-onlyIdempotent
Inspect

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 }.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoTransport mode filter (PRE or ONC)
originYesOrigin port UN/LOCODE (e.g. INNSA, INMAA)
x_paymentNox402 payment proof header
destinationYesInland destination city name (e.g. Ahmedabad, Delhi)
container_typeNoContainer type filter — e.g. 20DV, 40HC, 20RF
Behavior5/5

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

Adds payment requirement and error response beyond annotations, which already indicate idempotent and read-only behavior. Describes return format. 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.

Conciseness5/5

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

Six sentences, front-loaded with purpose, then usage, then payment, then return format. No fluff. Highly efficient.

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

Completeness5/5

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

Covers purpose, when to use, payment, and return array structure despite no output schema. Adequate for the tool's simplicity.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. Description adds context by describing output fields and hinting at how parameters (origin/destination) are used, earning a 4.

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

Purpose5/5

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

Description clearly states 'Get inland haulage rates' with specific verb and resource, and differentiates from siblings by mentioning route discovery and comparison tools.

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

Usage Guidelines5/5

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

Explicitly states when to use ('when you know the specific origin port and destination'), and directs to shippingrates_inland_search for route discovery and shippingrates_inland_compare for carrier comparison.

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

shippingrates_linesList Shipping LinesA
Read-onlyIdempotent
Inspect

List all shipping lines in the ShippingRates database with per-country record counts.

Use this to discover which carriers and countries have data before querying specific tools. Returns each carrier's name, slug, SCAC code, and a breakdown of available D&D tariff and local charge records per country.

FREE — no payment required.

Returns: Array of { line, slug, scac, countries: [{ code, name, dd_records, lc_records }] }

Related tools: Use shippingrates_stats for aggregate totals, shippingrates_search for keyword-based discovery.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint. The description adds value by noting it is free, no payment required, and detailing the return structure. 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.

Conciseness5/5

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

Every sentence is purposeful: main action, usage guidance, cost, return format, related tools. Front-loaded and no unnecessary words.

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

Completeness5/5

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

For a list tool with no inputs and good annotations, the description fully covers purpose, usage, cost, and return structure. No gaps.

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

Parameters4/5

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

No parameters exist, so baseline is 4. The description provides sufficient context about the tool's behavior without needing parameter details.

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

Purpose5/5

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

The description clearly states the tool lists all shipping lines with per-country record counts, using specific verb and resource. It distinguishes from siblings by framing it as a discovery tool before querying specific tools.

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

Usage Guidelines5/5

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

Explicitly states when to use (to discover carriers/countries before querying specific tools) and provides alternatives (shippingrates_stats for aggregates, shippingrates_search for keyword discovery).

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

shippingrates_local_chargesGet Port Local ChargesA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
lineYesShipping line slug — one of: maersk, msc, cma-cgm, hapag-lloyd, one, cosco
countryYesISO 2-letter country code
port_codeNoPort code to filter (e.g. INMUN for Mumbai)
x_paymentNox402 payment proof header
Behavior4/5

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

Annotations declare readOnlyHint and idempotentHint, which are consistent. The description adds valuable behavioral context: the tool requires a paid call ($0.05 via x402) and returns a 402 error without payment. It also describes the return format, giving the agent a clear picture of the output.

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

Conciseness5/5

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

The description is concise at ~100 words, with a front-loaded first sentence defining purpose. It then provides usage guidance, payment info, and return format in a clear, structured manner. No redundant sentences.

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

Completeness5/5

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

Given the tool's complexity (4 params, no output schema, paid usage), the description covers all necessary aspects: purpose, when to use, payment, and return format. It references sibling tools for alternative flows, aiding contextual understanding. The annotations already cover safety, so description complements well.

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

Parameters3/5

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

Schema coverage is 100%, with each parameter having a clear description. The tool description does not add extra parameter-level semantics beyond what the schema already provides. Therefore, the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description opens with 'Get local charges at a port for a specific carrier', clearly stating the action and resource. It lists example charges (THC, documentation fees) and distinguishes itself by referencing sibling tools for when to use this vs others.

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

Usage Guidelines5/5

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

It explicitly states 'Use this when calculating total shipping costs at origin or destination' and provides specific alternatives: 'Combine with shippingrates_dd_calculate for a complete port cost picture, or use shippingrates_total_cost for an all-in-one landed cost estimate.' Additionally, it notes the payment requirement and cost.

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

shippingrates_portPort LookupA
Read-onlyIdempotent
Inspect

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 }

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesUN/LOCODE port code — e.g. "INNSA", "AEJEA", "SGSIN"
x_paymentNox402 payment proof header
Behavior5/5

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

Annotations indicate read-only, idempotent, non-destructive. Description adds critical behavioral info: payment requirement ($0.01/call via x402) and error behavior (402 with payment instructions), which goes beyond annotations.

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

Conciseness5/5

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

Five concise sentences, front-loaded with purpose. Each sentence adds value: purpose, usage alternative, payment info, error behavior, return fields. No redundancy.

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

Completeness5/5

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

Covers all necessary aspects: purpose, when to use alternative, payment model, error case, and return fields. No output schema, so description compensates by listing return fields.

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

Parameters3/5

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

Schema has full coverage (100%) and descriptions for both parameters. The description reinforces the 'code' parameter's purpose but adds no new constraints or format details beyond schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool looks up port details by UN/LOCODE, listing the return fields. It distinguishes from siblings by directing users to shippingrates_search if the code is unknown.

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

Usage Guidelines5/5

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

Explicitly states use cases: validate port codes or get metadata. Provides alternative tool (shippingrates_search) for when UN/LOCODE is unknown, giving clear when-to-use guidance.

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

shippingrates_ratesFreight RatesA
Read-onlyIdempotent
Inspect

Get ocean freight rates between two ports, optionally filtered by container type.

Use this to compare base freight costs across carriers for a specific trade lane. Returns current spot rates and contract rate indicators with trend data. For a complete cost picture including surcharges and local charges, use shippingrates_total_cost instead.

PAID: $0.03/call via x402 (USDC on Base or Solana). Without payment, returns 402 with payment instructions.

Returns: Array of { carrier, origin, destination, container_type, rate, currency, effective_date, trend }.

ParametersJSON Schema
NameRequiredDescriptionDefault
originYesOrigin port UN/LOCODE — e.g. INNSA (Nhava Sheva), CNSHA (Shanghai), SGSIN (Singapore)
x_paymentNox402 payment proof header
destinationYesDestination port UN/LOCODE — e.g. AEJEA (Jebel Ali), NLRTM (Rotterdam), USNYC (New York)
container_typeNoContainer type filter — e.g. 20DV, 40HC, 20RF
Behavior5/5

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

Discloses payment requirement ($0.03/call via x402, returns 402 without payment) and return behavior (current spot rates, contract rate indicators, trend data). Annotations already indicate read-only and idempotent, so description adds behavioral context without contradiction.

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

Conciseness5/5

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

Three paragraphs each serve a distinct purpose (what it does, usage guidance, payment/return). Front-loaded with main action. No wasted sentences; return format is concisely described as an array of fields.

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

Completeness5/5

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

Given 4 parameters, no output schema, and moderate complexity, the description covers tool purpose, usage, payment, and return fields. Annotations handle safety, so description is complete for effective invocation.

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

Parameters3/5

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

Schema description coverage is 100% with detailed parameter descriptions (e.g., UN/LOCODE examples). The tool description does not add additional meaning beyond reinforcing the optional container_type filter, so baseline score of 3 is appropriate.

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

Purpose5/5

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

The description starts with a clear verb (Get) and resource (ocean freight rates) with scope (between two ports, optional container type filter). It distinguishes from siblings by noting comparison of base freight costs and referencing shippingrates_total_cost for a fuller picture.

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

Usage Guidelines5/5

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

Explicit when-to-use: 'Use this to compare base freight costs across carriers for a specific trade lane.' Also gives alternative: 'For a complete cost picture including surcharges and local charges, use shippingrates_total_cost instead.'

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

shippingrates_regulatoryRegulatory UpdatesA
Read-onlyIdempotent
Inspect

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: Array of { title, description, effective_date, impact_level, category, country }.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default: 10)
countryYesISO 2-letter country code
x_paymentNox402 payment proof header
Behavior5/5

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

Annotations indicate readOnlyHint and idempotentHint. The description adds significant behavioral context: it is a paid API ($0.01/call on specific payment networks), returns a 402 payment error if unpaid, and discloses the exact return format (array of objects with specified fields). 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.

Conciseness5/5

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

The description is concise: one sentence for purpose, one for usage, one for payment, one for return format. It is front-loaded with the primary action. Every sentence adds value.

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

Completeness5/5

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

Given 3 parameters with full schema coverage, no output schema but return format described, and annotations covering safety, the description provides enough context to use the tool effectively. It explains the paid nature, payment failure behavior, and expected output structure.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description reinforces the ISO 2-letter country code and the limit default/max/min, but does not add new meaning beyond the schema's parameter descriptions. The payment header parameter is mentioned but not further explained.

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

Purpose5/5

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

The description clearly states it retrieves shipping regulatory updates for a specific country, listing specific categories (customs, documentation, trade restrictions, policy changes). It distinguishes from sibling tools focused on rates, tariffs, congestion, etc.

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

Usage Guidelines4/5

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

The description explicitly says to use it 'to stay current on regulatory changes that may affect shipments to/from a country.' It also notes the payment requirement. However, it does not provide explicit guidance on when not to use it or alternatives among siblings.

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

shippingrates_reliabilitySchedule ReliabilityA
Read-onlyIdempotent
Inspect

Get schedule reliability metrics for a carrier — on-time performance percentage, average delay in days, and sample size.

Use this for carrier selection and benchmarking — answers "how reliable is this carrier on this trade lane?" On-time is defined as arriving within ±1 day of scheduled ETA (industry standard per Sea-Intelligence).

PAID: $0.02/call via x402 (USDC on Base or Solana). Without payment, returns 402 with payment instructions.

Returns: { line, trade_lane, on_time_pct, avg_delay_days, sample_size, period }.

ParametersJSON Schema
NameRequiredDescriptionDefault
lineYesShipping line slug — one of: maersk, msc, cma-cgm, hapag-lloyd, one, cosco
x_paymentNox402 payment proof header
trade_laneNoTrade lane filter — e.g. 'Asia-Europe', 'Transpacific', 'Asia-Middle East'
Behavior5/5

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

Annotations provide readOnly, idempotent, and destructive hints. Description adds critical payment requirement ($0.02/call via x402) and the 402 error condition, going beyond annotations without contradiction.

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

Conciseness4/5

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

Description is concise but includes payment info and return format. Could be slightly tighter, but well-structured with key details front-loaded.

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

Completeness4/5

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

Tool is simple with 3 params and no output schema. Description covers return fields and payment requirement. Lacks error handling beyond payment, but adequate for the complexity.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. Description adds only an example for trade_lane, not significantly adding meaning beyond schema.

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

Purpose5/5

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

The description clearly states the tool retrieves schedule reliability metrics for a carrier, specifying on-time performance, average delay, and sample size. It distinguishes from sibling tools by focusing on reliability metrics.

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

Usage Guidelines4/5

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

Explicitly states 'Use this for carrier selection and benchmarking' and defines on-time as ±1 day ETA. While it lacks explicit alternatives, the context and sibling names make it clear.

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

shippingrates_risk_scoreRoute Risk AssessmentA
Read-onlyIdempotent
Inspect

Get a composite risk score (0-100) for a shipping route — combines port congestion, active disruption news, and chokepoint impact analysis (Hormuz, Suez, Bab el-Mandeb, Panama Canal).

Use this for route risk screening — answers "how risky is this trade lane right now?" Scores above 70 indicate elevated risk. For detailed congestion metrics, use shippingrates_congestion. For news detail, use shippingrates_congestion_news.

PAID: $0.10/call via x402 (USDC on Base or Solana). Without payment, returns 402 with payment instructions.

Returns: { origin, destination, risk_score, risk_level, congestion_factor, disruption_factor, chokepoints_affected[], recommendation }.

ParametersJSON Schema
NameRequiredDescriptionDefault
originYesOrigin port UN/LOCODE — e.g. INNSA (Nhava Sheva), CNSHA (Shanghai), SGSIN (Singapore)
x_paymentNox402 payment proof header
destinationYesDestination port UN/LOCODE — e.g. AEJEA (Jebel Ali), NLRTM (Rotterdam), USNYC (New York)
Behavior5/5

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

Annotations declare readOnlyHint=true and idempotentHint=true, indicating safe, idempotent read operation. The description discloses payment requirement ($0.10/call) and that unpaid calls return 402 with payment instructions. It also details the return structure, adding value beyond annotations.

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

Conciseness4/5

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

The description is concise and well-structured, with the main purpose in the first sentence. It includes essential details like payment and return format without unnecessary verbosity. A minor improvement could be tighter phrasing.

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

Completeness5/5

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

The tool has no output schema, but the description provides the full return shape. It covers input constraints (UN/LOCODE format implied), payment mechanism, and alternative tools. For a tool of this complexity, the description is complete and actionable.

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

Parameters3/5

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

Schema description coverage is 100% (all 3 parameters have descriptions in the input schema, including examples for origin and destination). The description does not add additional semantic meaning beyond what is already in the schema.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Get a composite risk score (0-100) for a shipping route' and lists specific factors (port congestion, disruption news, chokepoint impact). It also distinguishes from siblings like shippingrates_congestion and shippingrates_congestion_news.

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

Usage Guidelines5/5

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

Explicitly says 'Use this for route risk screening' and provides a threshold ('scores above 70 indicate elevated risk'). It also directs users to sibling tools for detailed congestion metrics or news, offering clear when-to-use and when-not-to-use guidance.

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

shippingrates_statsShippingRates Database StatisticsA
Read-onlyIdempotent
Inspect

Get current statistics for the ShippingRates shipping intelligence database.

Use this as a starting point to understand what data is available before calling other tools. Returns record counts for D&D tariffs, local charges, transit schedules, freight rates, surcharges, ports, shipping lines, countries, and the last data refresh timestamp.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint, so safety is covered. Description adds return field context but no new behavioral traits beyond annotations.

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

Conciseness5/5

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

Three well-structured sentences: purpose, elaboration with usage context, and return fields list. No redundant words.

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

Completeness5/5

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

Fully complete for a zero-parameter tool with annotations covering safety. Describes purpose, usage, and return format adequately.

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

Parameters4/5

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

No parameters, so baseline 4. Description does not need to explain parameters.

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

Purpose5/5

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

Clear verb 'Get current statistics' with specific resource 'ShippingRates database'. Lists included data categories and distinguishes from sibling tools by positioning it as a starting point.

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

Usage Guidelines5/5

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

Explicit guidance: 'Use this as a starting point to understand what data is available before calling other tools.' Also mentions 'FREE — no payment required' and lists related tools with their specific purposes.

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

shippingrates_surchargesShipping SurchargesA
Read-onlyIdempotent
Inspect

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 }.

ParametersJSON Schema
NameRequiredDescriptionDefault
lineYesShipping line slug — one of: maersk, msc, cma-cgm, hapag-lloyd, one, cosco
countryNoISO 2-letter country code
directionNoTrade direction — 'import' or 'export'
x_paymentNox402 payment proof header
Behavior5/5

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

Beyond annotations (readOnlyHint=true, etc.), the description adds critical context: payment triggers ('PAID: $0.02/call...'), error behavior ('returns 402 with payment instructions'), and return format (array with fields). No contradiction with annotations.

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

Conciseness5/5

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

The description is efficiently structured in three clear paragraphs: tool function, usage guidance, and payment/return details. Every sentence adds value without redundancy.

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

Completeness5/5

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

Given no output schema, the description fully compensates by declaring the exact return structure. It also covers payment, error responses, and relationship to base rates, making the tool self-contained.

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

Parameters3/5

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

With 100% schema coverage, the baseline is 3. The description does not add extra parameter-level details beyond what the schema already provides, but it implicitly maps parameters to usage context ('carrier in a specific country/direction').

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

Purpose5/5

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

The description clearly states 'Get carrier-specific surcharges' and lists examples (BAF, CAF, etc.), defining the verb and resource precisely. It also distinguishes from sibling 'shippingrates_total_cost' by noting that this tool returns surcharges individually.

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

Usage Guidelines5/5

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

The description explicitly states when to use ('understand surcharge exposure for a carrier in a specific country/direction') and directs to an alternative ('For a complete cost breakdown, use shippingrates_total_cost'). It also documents payment requirements.

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

shippingrates_total_costFull Landed Cost CalculatorA
Read-onlyIdempotent
Inspect

Calculate the full landed cost of shipping a container — combines freight rates, surcharges, local charges (origin + destination), demurrage/detention estimates, and transit time into one comprehensive estimate.

This is the most comprehensive tool — a single call replaces 5-6 individual queries. Use this when the user needs an all-in cost estimate for a specific shipment. For individual cost components, use the dedicated tools: shippingrates_rates (freight), shippingrates_surcharges, shippingrates_local_charges, shippingrates_dd_calculate (detention).

PAID: $0.15/call via x402 (USDC on Base or Solana). Without payment, returns 402 with payment instructions.

Returns: { freight: { rate, currency }, surcharges: { total, items[] }, local_charges: { origin: { total, items[] }, destination: { total, items[] } }, detention: { days, cost, currency }, transit: { days, service }, total_landed_cost, currency }

ParametersJSON Schema
NameRequiredDescriptionDefault
lineYesShipping line slug — one of: maersk, msc, cma-cgm, hapag-lloyd, one, cosco
originYesOrigin port UN/LOCODE — e.g. INNSA (Nhava Sheva), CNSHA (Shanghai), SGSIN (Singapore)
x_paymentNox402 payment proof header
destinationYesDestination port or inland location
container_typeYesISO 6346 container type — 20DV, 40DV, 40HC, 20RF, 40RF, 20OT, 40OT, 20FR, 40FR
detention_daysNoExpected detention days (default: 0)
Behavior5/5

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

Discloses that the tool is paid ($0.15/call via x402) and returns 402 on non-payment. Annotations already indicate read-only and idempotent, but the payment info adds crucial behavioral context. No contradiction with annotations.

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

Conciseness5/5

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

Three focused paragraphs: purpose, usage guidance, and payment/return info. No fluff, each sentence adds value.

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

Completeness5/5

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

Given no output schema, the description provides a detailed return structure. It also explains payment failure behavior. Covers purpose, usage, inputs, outputs, and constraints adequately.

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

Parameters3/5

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

Input schema covers all 6 parameters with descriptions (100% coverage). The description does not add parameter-level details but lists the components in the output, which indirectly relates to inputs. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states it calculates the full landed cost of shipping a container, combining multiple cost components. It distinguishes itself from sibling tools by explicitly listing them and noting that a single call replaces 5-6 individual queries.

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

Usage Guidelines5/5

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

Explicitly states when to use this tool ('when the user needs an all-in cost estimate for a specific shipment') and when not to, providing names of dedicated tools for individual components.

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

shippingrates_transitTransit Time LookupA
Read-onlyIdempotent
Inspect

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 }.

ParametersJSON Schema
NameRequiredDescriptionDefault
originYesOrigin port UN/LOCODE — e.g. INNSA (Nhava Sheva), CNSHA (Shanghai), SGSIN (Singapore)
x_paymentNox402 payment proof header
destinationYesDestination port UN/LOCODE — e.g. AEJEA (Jebel Ali), NLRTM (Rotterdam), USNYC (New York)
Behavior5/5

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

Annotations already declare readOnly, idempotent, non-destructive. Description adds: cost ($0.02/call), behavior without payment (402 response), and return structure (array of objects). 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.

Conciseness5/5

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

Four clear sentences: purpose, usage guideline, payment info, return format. No redundancy, front-loaded with key info.

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

Completeness5/5

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

No output schema, but description specifies return format (array of {carrier, transit_days, ...}). Covers payment, usage, alternative tool. Complete for the complexity.

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

Parameters3/5

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

Schema coverage is 100% with good descriptions for origin and destination (including examples). Description does not add extra parameter semantics beyond what's in schema, so baseline 3 is appropriate.

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

Purpose5/5

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

Clearly states verb 'get', resource 'estimated ocean transit times', scope 'between two ports across all carriers'. Distinguishes from sibling shippingrates_transit_schedules by specifying quick comparison vs detailed routing.

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

Usage Guidelines5/5

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

Explicitly says 'Use this for quick transit time comparison' and provides alternative 'For detailed routing... use shippingrates_transit_schedules instead'. Includes payment requirement context.

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

shippingrates_transit_schedulesTransit Schedules by CarrierA
Read-onlyIdempotent
Inspect

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 }.

ParametersJSON Schema
NameRequiredDescriptionDefault
originNoOrigin port UN/LOCODE filter
carrierYesCarrier SCAC code or slug
max_daysNoMaximum transit days filter
x_paymentNox402 payment proof header
destinationNoDestination port UN/LOCODE filter
Behavior5/5

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

Discloses payment cost ($0.03/call via x402) and behavior (returns 402 without payment). Annotations already indicate read-only, idempotent, non-destructive; description adds payment context and response behavior, 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.

Conciseness5/5

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

Description is compact (three paragraphs) with front-loaded purpose, followed by usage guidance, payment info, and return format. Every sentence adds value.

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

Completeness5/5

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

Given no output schema, description explicitly states return structure (array of objects with fields like carrier, service_code, transit_days). Covers payment, filtering purpose, and sibling contrast. Complete for a read-only query tool.

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

Parameters3/5

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

Schema has 100% coverage with descriptions for all 5 parameters. Description adds no extra parameter-specific meaning beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states 'Get detailed transit schedules for a specific carrier' and lists specific data (service codes, routing via transhipment ports, transit days, sailing frequency). It distinguishes from sibling tool shippingrates_transit by noting it provides more than just transit time.

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

Usage Guidelines5/5

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

Explicitly states 'Use this when you need routing details beyond just transit time' and directs users to shippingrates_transit for quick comparisons. Provides clear when-to-use and when-not-to-use guidance.

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

shippingrates_vessel_scheduleVessel ScheduleA
Read-onlyIdempotent
Inspect

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 }.

ParametersJSON Schema
NameRequiredDescriptionDefault
portYesUN/LOCODE port code — e.g. INNSA (Nhava Sheva), AEJEA (Jebel Ali), SGSIN (Singapore)
x_paymentNox402 payment proof header
days_aheadNoDays to look ahead (default: 14)
Behavior5/5

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

Annotations already indicate read-only, idempotent, non-destructive. The description adds payment requirement ('PAID: $0.02/call... Without payment, returns 402') and describes the return structure, providing full behavioral context beyond annotations.

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

Conciseness5/5

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

Description is front-loaded with the core purpose and uses only five sentences with no redundant or wasted words. Every sentence serves a clear function: purpose, use case, alternatives, payment info, return format.

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

Completeness5/5

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

Given the tool's moderate complexity (3 params, no output schema), the description covers all necessary aspects: what it does, when to use, alternatives, payment requirement, and expected return fields. No gaps detected.

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

Parameters4/5

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

Schema coverage is 100% and each parameter (port, x_payment, days_ahead) has detailed descriptions including examples and defaults. The description reinforces the port code format but adds no significant new semantics beyond the schema, so slightly above baseline.

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

Purpose5/5

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

The description clearly states the verb 'Get' and the resource 'upcoming vessel arrivals and departures at a specific port'. It distinguishes from siblings by naming shippingrates_transit and shippingrates_transit_schedules for related but different use cases.

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

Usage Guidelines5/5

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

Provides explicit guidance on when to use: 'to check what vessels are expected at a port — useful for booking planning and tracking'. Also specifies when not to use and directs to alternative tools for transit times or detailed routing.

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

shippingrates_vessel_schedule_optionsVessel Schedule Options With CutoffsA
Read-onlyIdempotent
Inspect

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 }.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum schedule options to return (default: 50)
originYesOrigin UN/LOCODE — e.g. CNSHA, INNSA, SGSIN
carrierNoOptional carrier filter — e.g. cmacgm, hapag, maersk
x_paymentNox402 payment proof header
days_aheadNoDays to look ahead (default: 90)
destinationYesDestination UN/LOCODE — e.g. USLAX, DEHAM, AEJEA
Behavior5/5

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

Discloses payment requirements ($0.03/call, 402 without payment) and data behavior (missing cutoffs remain null, no inference). Annotations indicate readOnly/ idempotent, which align with description; 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.

Conciseness5/5

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

Concise and well-structured: purpose first, then usage guidance, data behavior, alternative, payment, and return format. No superfluous sentences.

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

Completeness5/5

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

Despite no output schema, description provides a clear return structure and covers limitations, payment, and differentiation from sibling, making it complete for a tool with 6 parameters.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. Description adds value by explaining the return structure and the payment parameter, which are not in the input schema, thus enhancing parameter understanding beyond the schema.

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

Purpose5/5

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

The description clearly states the tool retrieves vessel/voyage schedule options with cutoff deadlines, specifying the resource and distinguishing it from the sibling tool for port-call monitoring without cutoffs.

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

Usage Guidelines5/5

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

Explicitly advises using for booking planning with vessel details and cutoffs, and directs to the sibling tool for port-call monitoring without cutoffs, providing clear when-to-use and when-not-to-use guidance.

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

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources