Skip to main content
Glama

Server Details

Ocean shipping intelligence: D&D, freight rates, vessel schedules, port data. 24 tools, 6 carriers.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
vinaybhosle/shippingrates-mcp
GitHub Stars
0
Server Listing
ShippingRates

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 Definition Quality

Score is being calculated. Check back soon.

Available Tools

24 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
Behavior4/5

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

Annotations declare readOnlyHint=true and idempotentHint=true, but the description adds crucial behavioral context not covered by annotations: the $0.05 pricing model, the x402 payment mechanism details, and the return data structure ('per-unit handling rates, minimum charges, and storage fees'). This disclosure of monetary cost is essential for agent decision-making.

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

Conciseness5/5

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

The description is well-structured with zero waste: sentence 1 defines the domain, sentence 2 previews returns, sentence 3 states cost requirements, and the Args section documents parameters with examples. Every sentence earns its place and critical information (payment) is 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?

Given the payment complexity and lack of formal output schema, the description adequately compensates by previewing return values (handling rates, minimum charges, storage fees) and explaining the CFS acronym. The combination of complete parameter documentation (100% coverage), clear behavioral annotations, and cost disclosure provides sufficient context for 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?

With 100% schema description coverage, the baseline is 3. The description adds value by providing concrete example values for the optional parameters: 'import, export' for service and 'general, hazardous' for cargo_type. These examples clarify intended inputs beyond the generic schema descriptions.

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

Purpose5/5

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

The description explicitly defines the tool's scope: retrieving Container Freight Station handling tariffs specifically for LCL cargo consolidation/deconsolidation at port warehouses. It uses specific verbs ('Get') and distinguishes itself from siblings like shippingrates_rates (general freight) or shippingrates_local_charges by focusing narrowly on CFS warehouse operations.

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

Usage Guidelines4/5

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

The description provides critical usage context by disclosing this is a 'PAID endpoint' costing $0.05 per call with specific payment requirements (x402, USDC on Base/Solana). While it doesn't explicitly name sibling alternatives, the specific domain definition (CFS/LCL handling) combined with the cost warning effectively guides selection.

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?

Excellent addition of cost and payment mechanism details ('PAID endpoint: $0.02 per call via x402') not found in annotations. Annotations already cover idempotency and read-only status. Description also clarifies return data composition ('trend data').

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?

Well-structured with clear sections: purpose, use case, pricing, Args, Returns. Front-loaded with the core action. No redundant verbosity, though the 'Args:' and 'Returns:' labels are slightly formal for a description field.

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?

Comprehensive for a paid data retrieval tool: covers purpose, cost mechanism, parameter examples, and return data structure. Acknowledges payment requirement (critical for a paid endpoint). Lacks rate limit details but adequate given no output schema exists.

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

Parameters4/5

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

Schema coverage is 100% so baseline is 3. The description adds valuable concrete format examples ('INNSA', 'AEJEA') for the UN/LOCODE port parameter that the schema lacks, helping the agent understand the expected input format.

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

Purpose4/5

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

Clear specific action ('Get') and resource ('port congestion metrics') with detailed sub-components (vessel waiting times, berth occupancy, delays). However, it does not explicitly distinguish from sibling 'shippingrates_congestion_news' or other port-related tools.

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

Usage Guidelines3/5

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

Provides implied usage context ('Useful for assessing port efficiency and planning for potential detention costs'), but lacks explicit guidance on when to choose this over siblings like 'shippingrates_port' or 'shippingrates_congestion_news', or when-not-to-use conditions.

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
Behavior4/5

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

Annotations already declare read-only/idempotent safety. Description adds essential behavioral context not in annotations: cost per call, payment method (x402/USDC), and source attribution (7 trade press sources). Does not contradict readOnlyHint.

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?

Well front-loaded with the core function first. Args section repeats schema info but serves as readable documentation. Payment warning is appropriately prominent. No wasted sentences.

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?

Handles the unusual payment complexity well with specific cost and currency details. Input parameters are fully covered via schema + Args section. Only gap is lack of description for return values (no output schema exists), though this is partially mitigated by the 'news' framing.

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?

With 100% schema coverage, baseline is 3. Description adds value by spelling out severity enum values ('normal', 'elevated', 'congested') and clarifying that x_payment is the 'x402 payment proof header'—context that helps the agent understand the payment parameter semantics.

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?

Specific verb 'Get' paired with clear resource 'shipping disruption news' and scope '7 trade press sources.' Explicitly mentions coverage areas (Hormuz, Red Sea, Suez) that distinguish it from generic data siblings like shippingrates_congestion.

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

Usage Guidelines3/5

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

Provides critical pricing constraint 'PAID endpoint: $0.02 per call' which guides usage decisions. However, lacks explicit guidance on when to choose this over sibling shippingrates_congestion (data vs. news articles) or warnings about the payment requirement.

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
Behavior4/5

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

Annotations declare readOnly/idempotent, but description adds critical behavioral context: explicit pricing ($0.10), payment protocol (x402, USDC on Base/Solana), conditional response ('Returns (when paid)'), and exact JSON return structure including slab breakdown details. Fully discloses the paywall mechanism absent from 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?

Well-structured with clear paragraphing: purpose → return preview → payment warning → technical details. Front-loaded with core function. Args section duplicates schema content slightly, but the Returns JSON block efficiently compensates for missing output schema. 'Core tool for logistics cost analysis' signals priority without wasting 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?

Exceptionally complete for a paid endpoint: documents cost, currency, payment method, auth header, and provides full output schema documentation (slabs array, total_cost, currency) despite no formal output_schema field. Domain terminology (D&D, per-diem, free days) explained. Sufficient for agent to 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 coverage is 100% with complete enum listings and descriptions. Description repackages parameters into 'Args' section with explicit enum values (maersk, msc, etc.) and examples (IN, AE, SG), adding minimal new semantics but confirming valid ranges. x_payment description adds 'authenticated access' context linking to payment behavior.

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 'Calculate' with resource 'demurrage and detention (D&D) costs' and defines exact scope (shipping line, country, container type, days). Clearly distinguishes from siblings like shippingrates_inland_haulage (different cost type) and shippingrates_dd_compare (comparison vs. specific calculation) via precise inputs.

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

Usage Guidelines3/5

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

Indicates payment requirement ('PAID endpoint: $0.10 per call') and authentication method ('include the payment proof in x_payment'), which are critical prerequisites. However, lacks explicit guidance on when to use this vs. shippingrates_dd_compare or shippingrates_total_cost, though the specific parameter scope implies single-line analysis.

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
Behavior4/5

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

Annotations confirm read-only, safe operation, but description adds critical behavioral context: explicit cost disclosure ('$0.25 per call'), payment mechanism details ('x402', 'USDC on Base or Solana'), and output format ('side-by-side comparison of D&D costs from all available lines') which compensates for missing output schema. Lacks rate limit or error condition details.

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?

Well-structured with logical flow: purpose statement → return format → use case → cost warning → parameter details. The Args section repeats schema information but justifies its existence through added examples and contextual linkage ('to compare'). No wasted sentences; cost warning is prominent.

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?

Excellent coverage given constraints. For a paid API endpoint without output schema, description successfully covers: (1) exact cost and payment method, (2) return value structure ('side-by-side comparison'), (3) business context ('freight procurement'), and (4) all parameters with examples. Critical cost information is disclosed upfront.

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?

Despite 100% schema description coverage, the Args section adds meaningful value: provides concrete examples for container_type ('40HC', '20DV') not present in schema enumerations, and contextualizes 'days' as 'detention days to compare'. Clarifies x_payment purpose as header for the payment mechanism described in the main text.

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-resource combination ('Compare demurrage and detention costs') and clearly scopes the operation ('across multiple shipping lines'). The 'side-by-side comparison' phrase distinguishes this from sibling 'shippingrates_dd_calculate', implying this is for multi-carrier comparison while the sibling likely handles single-scenario calculation.

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

Usage Guidelines4/5

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

Provides clear contextual guidance ('Essential for freight procurement and carrier selection') indicating optimal use cases. While it doesn't explicitly name sibling alternatives to avoid, the 'across multiple shipping lines' scope effectively signals when to choose this over single-line calculation tools.

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'
Behavior4/5

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

Annotations confirm read-only/idempotent safety, but description adds crucial behavioral context: payment requirements ($0.02 per call), payment mechanism details (x402, USDC on Base/Solana), and return value contents (GPS, operator details, capacity) not captured in 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?

Well-structured with purpose front-loaded in first sentence, followed by critical payment warning. Args section is redundant given 100% schema coverage but provides readable format. No wasted words or marketing fluff.

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?

Excellent completeness for a paid search tool: discloses cost and payment mechanism (essential for paid endpoints), describes return data contents (compensating for missing output schema), and specifies domain scope. No output schema exists, but description adequately covers what to expect.

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 complete descriptions for all 5 parameters. The Args section in the description essentially duplicates schema content without adding semantic depth (e.g., no format examples, validation rules, or business logic beyond the schema definitions). Baseline 3 appropriate for complete schema coverage.

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?

Specific verb 'Search' combined with specific resource 'India ICD/CFS facility directory' and explicit return data scope (GPS coordinates, rail connectivity, operator details, capacity). Clearly distinguishes from rate-focused siblings like shippingrates_rates or shippingrates_transit.

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

Usage Guidelines3/5

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

Provides critical usage context via 'PAID endpoint' warning and cost ($0.02), plus geographic scoping (India). However, lacks explicit guidance on when to use this versus similar logistics tools like shippingrates_inland_search or shippingrates_port, leaving differentiation implied rather than stated.

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 declare read-only/idempotent/destructive hints, but description adds valuable behavioral context: 'FREE endpoint — no payment required' (cost model) and documents the exact JSON return structure, compensating for the lack of structured output schema.

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?

Perfectly structured with front-loaded purpose, domain context sentence, cost disclosure, and clearly delineated Args/Returns sections. No wasted words; every sentence conveys unique information not present in structured 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?

For a simple 2-parameter tool, description is complete: it explains the domain purpose (shipping cost conversion), discloses cost (free), and documents the return payload to compensate for missing output schema. Annotations cover safety profile.

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 minLength/maxLength and examples already defined. Description repeats parameter info with additional examples (INR, AED) but adds no semantic depth beyond the schema's documentation. Baseline 3 appropriate for high-coverage 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?

Description opens with specific verb 'Get' and resource 'exchange rates'. It clearly distinguishes from shipping-logistics siblings (tariffs, ports, vessels) by stating its currency-specific function, while the second sentence bridges to the shipping domain context.

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

Usage Guidelines4/5

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

Provides clear contextual guidance: 'Useful for converting shipping costs quoted in different currencies', establishing when to use it within this shipping-tool suite. Lacks explicit 'when not to use' or named alternatives, though no sibling alternatives exist for FX.

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 critical cost information not in annotations: '$0.08 per call via x402 (USDC on Base or Solana)'. Also discloses output sorting behavior 'cheapest first' and return structure (carrier, mode, weight bracket). Could mention rate limits or cache duration for a 5.

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?

Well-structured with clear separation: purpose/output description first, payment disclosure second, parameters third. Contains no wasted words. Minor deduction for Args section being somewhat redundant given perfect schema coverage, though the ICD-port pair mention in first sentence adds domain context.

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?

Compensates well for missing output schema by describing return format (sorted rates with specific fields). Includes essential payment context. Would benefit from mentioning error conditions or authentication prerequisites beyond the payment header.

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%, providing full parameter documentation (UN/LOCODE, ICD codes). Description includes an 'Args' section that largely restates schema content without adding semantic enrichment like format examples or validation constraints. Baseline 3 is appropriate given schema completeness.

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?

Specific verb 'Compare' with resource 'inland haulage rates' and scope 'across all carriers for an ICD-port pair'. Distinguishes from sibling 'inland_haulage' by emphasizing the comparative nature across multiple carriers.

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

Usage Guidelines3/5

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

Implies usage for rate comparison with 'across all carriers', but lacks explicit guidance on when to use this versus 'inland_haulage' or 'inland_search'. No 'when-not-to-use' or alternative recommendations provided.

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
Behavior4/5

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

Annotations declare readOnly/idempotent hints, but description adds critical behavioral context not in structured data: the $0.05 per call cost via x402 payment mechanism and the return value structure (base rate, fuel surcharges, transit times). No contradiction with annotations.

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

Conciseness3/5

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

Description follows logical structure (purpose → returns → cost → parameters). However, the 'Args:' section largely duplicates information already present in the schema (which has 100% coverage), making it redundant rather than concise. Front-loading is good, but duplication wastes tokens.

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 this is a paid endpoint with no output schema, the description adequately covers: payment requirements ($0.05/call), return value composition (rates, surcharges, transit times), and input parameters. Misses error handling or rate limit details, but sufficiently complete for safe 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%, establishing baseline 3. Description adds valuable concrete examples beyond schema descriptions (e.g., 'INNSA, INMAA' for origin, 'Ahmededabad, Delhi' for destination, '20GP, 40HC' for container types) that help agents understand expected input formats, warranting a score above baseline.

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

Purpose4/5

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

Description clearly states the tool 'Get[s] inland haulage (trucking/rail) rates' with specific scope 'between ports and inland locations' and clarifies transport modes (trucking/rail). However, it fails to distinguish from siblings like 'shippingrates_inland_search' or 'shippingrates_inland_compare', leaving ambiguity about which inland tool to select.

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

Usage Guidelines2/5

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

No guidance provided on when to use this specific tool versus sibling alternatives (shippingrates_inland_search, shippingrates_inland_compare) or prerequisites. While it explains what the tool does, there are no explicit 'use when' or 'for X use Y instead' instructions to aid selection.

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 readOnly/idempotent safety. The description adds critical behavioral context not in annotations: the 'FREE endpoint' billing trait, the specific return structure ('Array of shipping lines with country breakdowns'), and scope limitations (only the 6 major lines). 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?

Five sentences, each earning its place: (1) core purpose, (2) specific scope (6 named carriers), (3) data structure details (counts per country), (4) billing constraint (FREE), (5) return type. Front-loaded with the action. 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?

Sufficiently complete for a simple read-only enumeration tool. Compensates for missing output_schema by documenting the return structure ('Array of shipping lines'). Combined with robust annotations covering safety hints, the description provides everything needed for 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?

Zero parameters present (empty schema), establishing a baseline of 4. The description appropriately focuses on return value semantics rather than inventing parameter documentation. With 100% schema coverage of an empty schema, no additional parameter explanation is necessary.

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 uses a specific verb ('Get') with clear resource ('all shipping lines available in ShippingRates') and scope ('per-country record counts'). It distinguishes from siblings by defining its unique purpose: listing carrier metadata (the 6 major lines) with counts, rather than fetching rates, schedules, or tariffs like the other 20+ shippingrates_* tools.

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

Usage Guidelines4/5

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

Provides clear contextual signals for when to use: it exposes the discovery/enum pattern ('Get all shipping lines') and highlights the 'FREE endpoint — no payment required' constraint that differentiates it from potentially paid siblings. Lacks explicit 'when-not-to-use' or sibling name-dropping, but the functional scope implicitly guides selection.

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?

Description adds critical payment behavior ($0.05 per call via x402) and return value structure ('detailed breakdown of all local charges') beyond what annotations provide. Annotations only cover read-only/idempotent safety flags, while description explains the commercial model and response content.

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-sentence structure is perfectly front-loaded: purpose with clarifying examples first, return value second, pricing third. No wasted words. The Args section is cleanly formatted and provides specific context (e.g., 'ISO 2-letter') that augments the schema.

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 4-parameter lookup tool with 100% schema coverage and safety annotations, the description is complete. It covers the domain (port local charges), cost model, authentication requirement (x_payment), and return format without needing an 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?

Despite 100% schema coverage (baseline 3), description adds value by providing the concrete example 'INMUN for Mumbai' for port_code and clarifying that x_payment relates to the x402 payment mechanism mentioned in the pricing disclosure. This semantic linking helps agents understand the payment flow.

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' with concrete resource examples ('THC, documentation fees, seal fees') that clearly distinguish this from siblings like shippingrates_rates (ocean freight) or shippingrates_inland_haulage. The parenthetical examples immediately clarify what 'local charges' means in shipping context.

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

Usage Guidelines3/5

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

Provides explicit cost guidance ('$0.05 per call') which is critical usage context for a paid endpoint, but lacks explicit guidance on when to use this versus shippingrates_surcharges or shippingrates_rates. The scope is implied by the examples (THC vs freight) but no alternatives are named.

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
Behavior4/5

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

Beyond annotations (read-only, idempotent), discloses cost ($0.01/call), payment mechanism (x402 USDC), and exact return structure (coordinates, timezone, facility info). No mention of rate limits or caching prevents a 5.

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?

Well-structured with clear sections: purpose, returns, pricing, then Args/Returns pseudo-headers. No wasted words, though slightly verbose compared to minimal prose.

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

Completeness5/5

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

No output schema exists, so describing return values in description is required—it documents the full response structure. Payment info, annotations (safety profile), and 2 simple parameters are all adequately covered.

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?

With 100% schema coverage, baseline is 3. Description adds concrete examples ('INNSA', 'AEJEA') clarifying UN/LOCODE format, and clarifies x_payment is for 'x402 payment proof', exceeding baseline requirements.

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 specific verb ('Look up') + resource ('port details') + identifier type ('UN/LOCODE'). Distinguishes from rate/calculation siblings by focusing on static port metadata retrieval.

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

Usage Guidelines3/5

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

Provides critical payment requirement ($0.01 per call) and payment method (x402), but lacks explicit guidance on when to use this vs siblings like shippingrates_search or shippingrates_facilities.

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
Behavior4/5

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

Annotations declare readOnly/idempotent hints, but the description adds crucial behavioral context: the explicit cost ($0.03 per call), payment mechanism (x402 via USDC on Base/Solana), return data structure (array with carrier/rate/currency/effective dates), and the inclusion of historical data with trend indicators. This is substantial 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?

Well-structured with clear sections: purpose statement, return data description, payment warning, and Args documentation. The Args section repeats schema information but adds value through examples. Front-loaded with the most critical info (cost barrier) in the third sentence. Minor deduction for the Returns line being somewhat redundant with the second sentence.

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?

For a paid API endpoint with complex return data, the description adequately covers the critical gaps left by missing output schema (describing the array structure and fields). It acknowledges the payment requirement upfront, which is essential for agent decision-making. Could improve by noting rate freshness or cache behavior, but covers the essentials.

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?

Although the schema has 100% description coverage (baseline 3), the description adds concrete semantic examples that clarify expected formats: INNSA/AEJEA for UN/LOCODEs and 40HC/20DV for container types. It also contextualizes x_payment as an x402 proof header, linking the payment semantics to the cost disclosure above.

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 a specific action ('Get ocean freight rates') and clearly defines the scope ('between two ports' with container type). It distinguishes from siblings like shippingrates_inland_compare or shippingrates_congestion by specifying 'ocean freight', which is critical given the 20+ sibling tools in this shipping domain.

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

Usage Guidelines3/5

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

While it clearly identifies the domain (ocean freight vs inland), it lacks explicit guidance on when to use this versus siblings like shippingrates_total_cost or shippingrates_dd_compare. It does mitigate this by specifying the resource type (rates between specific ports), but 'when to pay $0.03 vs other endpoints' guidance is missing.

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?

Description adds critical information absent from annotations: pricing model ($0.01 per call via x402, USDC on Base/Solana) and detailed return structure ('Array of regulatory updates with title, description, effective date, impact level'). Annotations only cover idempotency/safety, not cost or response format.

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?

Well-structured with clear sections (purpose, coverage, pricing, args, returns). Front-loaded with action and scope. Slight verbosity in repeating parameter types that are in schema, butArgs/Returnssections aid readability.

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

Completeness5/5

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

Excellent for a paid API endpoint. Covers cost mechanism (x402), return structure (despite no formal output schema), and specific regulatory domains served. No output schema exists, yet description fully documents return values, making it complete.

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

Parameters4/5

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

With 100% schema coverage, description adds value through concrete country code examples ('IN', 'AE', 'SG') and confirming default values. Slightly redundant in listing all parameters when schema is complete, but examples provide genuine semantic assistance.

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?

Excellent: 'Get recent regulatory updates and compliance requirements for shipping in a specific country' provides specific verb+resource+scope. Clearly distinguishes from 20+ siblings focused on rates, tariffs, congestion, and schedules by focusing specifically on regulatory/compliance domain.

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?

Clear context through explicit coverage list: 'customs regulations, documentation requirements, trade restrictions, and policy changes.' This positions the tool in the compliance domain vs operational siblings. Lacks explicit 'use X instead' comparison, but domain differentiation is sufficient for selection.

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?

Excellent disclosure beyond annotations: explicitly states this is a 'PAID endpoint' with specific cost ($0.02 per call), payment mechanism (x402), and supported networks (USDC on Base or Solana). Also documents return values ('on-time %, average delay, sample size') compensating for the missing output schema. No contradictions with readOnly/destructive hints.

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?

Well-structured with clear sections: purpose → use case → cost warning → arguments → returns. The Args and Returns sections are slightly redundant with the schema but justified given the payment complexity and missing output schema. Every sentence conveys essential information without filler.

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?

Comprehensive for a paid endpoint: covers authentication mechanism (x402), cost structure, parameter details with examples, and return value structure. Since no output schema exists, the explicit description of returned metrics ('on-time %, average delay, sample size') is essential and present.

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?

With 100% schema coverage, baseline is 3. The description adds value by enumerating the specific shipping line slugs (maersk, msc, etc.) in the Args section and providing concrete examples like 'Asia-Europe' for the trade_lane parameter. It also contextualizes x_payment within the broader payment explanation even though the schema description is identical.

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 specific action ('Get schedule reliability metrics'), the resource (shipping line performance data), and the specific metrics returned (on-time performance, average delays). It effectively distinguishes from siblings like 'shippingrates_transit_schedules' by emphasizing reliability analytics rather than schedule listings.

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

Usage Guidelines4/5

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

Provides clear usage context ('Useful for carrier selection and benchmarking') that signals when to invoke the tool. However, it lacks explicit guidance on when NOT to use it or direct comparisons to siblings like 'shippingrates_transit' or 'shippingrates_stats' that might overlap in functionality.

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)
Behavior4/5

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

Annotations establish read-only/idempotent safety, while the description adds crucial behavioral details: exact pricing ($0.10), payment mechanism (x402), currency/network specifics (USDC on Base or Solana), and response content (composite score range 0-100, specific chokepoint analyses). 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.

Conciseness4/5

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

Well-structured with three distinct blocks: functionality summary, payment warning, and parameter list. Slightly redundant to list args in description when schema is fully documented, but the explicit '(optional)' tag and payment context justify the repetition. 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?

Comprehensive for a paid data retrieval tool: explains inputs (ports), cost mechanism, output content (risk score components), and has strong annotations (idempotent, read-only). Absence of output schema is mitigated by describing the composite score range and data components in the description.

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 has 100% coverage with basic descriptions. The description adds valuable context that x_payment is 'optional' (though implicit in schema) and explains its purpose as 'x402 payment proof header' tied to the paid endpoint. The origin/destination UN/LOCODE format is confirmed in both schema and description.

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

Purpose4/5

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

Description clearly states the tool retrieves a 'route risk assessment' with specific components (congestion data, news alerts, chokepoint analysis for Hormuz/Suez/Bab el-Mandeb, composite score 0-100). The specificity of the chokepoints and composite scoring effectively distinguishes this from siblings like shippingrates_congestion or shippingrates_reliability, though it doesn't explicitly name alternatives.

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?

Excellent disclosure of payment requirements ($0.10 per call, x402 protocol, USDC on Base/Solana) and the optional x_payment parameter. This is critical usage context for a paid endpoint. Minor gap: doesn't explicitly state when to choose this over shippingrates_congestion or shippingrates_reliability, though the feature list implies the superset nature of this tool.

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

Behavior4/5

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

Annotations cover read-only/idempotent safety profile. Description adds significant behavioral context beyond annotations: cost model ('FREE'), data freshness signaling ('last_scrape' field), and complete return structure documentation (JSON example) compensating for lack of formal output schema. 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?

Optimal structure: single sentence purpose statement, bullet-like enumeration of returned counts, usage guidance, cost notice, and return format example. No redundant text; every sentence delivers distinct 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?

Comprehensive for a statistics endpoint. Despite no formal output_schema field, description provides complete JSON return structure with type annotations. Combined with read-only annotations and zero input parameters, the description provides sufficient context for 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?

Input schema contains zero parameters. Per evaluation rules, 0 params = baseline 4. Description appropriately does not fabricate parameter documentation where none exist.

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?

Excellent purpose clarity: specific verb 'Get' + resource 'statistics for the ShippingRates shipping intelligence database'. Lists concrete entities counted (tariff records, ports, trade lanes, etc.) which distinguishes this as a metadata/overview tool vs. operational data retrieval siblings like shippingrates_search or shippingrates_rates.

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

Usage Guidelines4/5

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

Provides clear when-to-use context ('understand the scope and freshness of available data') and valuable cost guidance ('FREE endpoint — no payment required'). Lacks explicit when-not-to-use or named alternatives, though the scope/freshness framing implicitly contrasts with specific query tools.

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
Behavior4/5

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

Annotations declare safety profile (readOnly/idempotent), so description appropriately focuses on adding cost behavior ($0.02/call, x402 payment mechanism) and return structure (array with amounts/validity periods). 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?

Description is efficiently structured with clear sections: purpose statement, return value summary, cost warning, and structured Args/Returns documentation. Every sentence earns its place with no redundant fluff.

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 adequately documents return values (array structure with type/amount/currency/dates). Combined with payment disclosure and complete parameter coverage, it provides sufficient context for 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%, establishing baseline 3. The description duplicates schema information (enum values for line/direction, field descriptions) without adding significant semantic depth beyond what the structured schema already 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 uses a specific verb ('Get') + specific resource ('surcharges') and clarifies scope with examples (BAF, CAF, PSS, EBS). It clearly distinguishes from sibling tools like shippingrates_rates or shippingrates_local_charges by focusing specifically on surcharge types.

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 critical usage guidance by disclosing the paid nature of the endpoint ($0.02 per call) and payment requirements (x402, USDC). While it lacks explicit comparison to siblings, the specific surcharge examples (BAF, etc.) implicitly guide appropriate use cases.

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)
Behavior4/5

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

While annotations declare the operation is readOnly and idempotent, the description adds critical behavioral context: the $0.15 cost per call, the x402 payment mechanism (USDC on Base/Solana), and the aggregation logic (combining multiple cost categories). It does not mention rate limits or error conditions, preventing a perfect score.

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 logically structured with clear sections for functionality, pricing, arguments, and return values. Every sentence earns its place: the pricing warning is essential for a paid endpoint, and the 'most powerful tool' claim establishes sibling differentiation. The Args/Returns structure is slightly verbose but appropriate for the complexity.

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

Completeness5/5

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

Despite lacking a formal output schema in the structured metadata, the description provides a comprehensive JSON example in the Returns section detailing all output fields (freight, surcharges, local_charges, detention, transit, total_landed_cost). Combined with the payment disclosure and port examples, this is complete for a 6-parameter paid tool.

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

Parameters4/5

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

With 100% schema coverage, the baseline is 3. The description adds value by providing concrete examples for ports (INNSA, AEJEA, DELHI) and container codes (40HC, 20DV), and clarifies that x_payment is a 'payment proof header' for the x402 protocol, aiding the agent in parameter construction.

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

Purpose5/5

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

The description explicitly states the tool 'Calculate[s] the full landed cost of shipping a container' with specific components (freight rates, surcharges, local charges, demurrage/detention, transit time). It clearly distinguishes from siblings by noting it 'replaces 5-6 individual queries,' positioning it as an aggregator against the granular sibling tools.

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

Usage Guidelines4/5

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

The description provides clear context for when to use this tool ('most powerful tool,' 'single call replaces 5-6 individual queries'), implying it should be used for comprehensive estimates versus individual component lookups. However, it does not explicitly name the specific sibling tools to use instead (e.g., shippingrates_rates) or explicit exclusion criteria.

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)
Behavior4/5

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

Annotations declare read-only/idempotent/destructive flags, but the description adds critical payment behavior ('PAID endpoint', '$0.02 per call via x402') and authentication requirements ('USDC on Base or Solana') not present in annotations or schema. It also describes the return structure ('Array of transit options with carrier, duration, service type') compensating for the missing output schema.

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 well-structured with clear sections (purpose, cost warning, return info, arg details) and front-loads the core purpose. The docstring-style Args/Returns sections are slightly redundant with the schema but necessary given the lack of output schema to document return values.

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 complex domain with 22 sibling tools, the description successfully covers the critical gaps: it explains payment requirements (essential for a paid endpoint), describes return values (since no output schema exists), and provides example codes. It could further clarify differentiation from shippingrates_transit_schedules but remains complete for safe 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?

With 100% schema coverage (baseline 3), the description adds significant value by providing concrete example values for the UN/LOCODE parameters ('INNSA', 'AEJEA'), clarifying the expected format. It also explicitly notes x_payment is optional, which helps with invocation logic.

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

Purpose5/5

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

Description clearly states the specific action ('Get estimated transit times'), the resource (transit times), and scope (between two ports). It distinguishes from siblings by specifying it returns 'carrier-specific transit durations, service types, and frequencies' rather than generic schedules or other shipping data.

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

Usage Guidelines3/5

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

The description warns that this is a 'PAID endpoint' costing '$0.02 per call', which provides cost-based usage guidance. However, it lacks explicit guidance on when to choose this over siblings like shippingrates_transit_schedules or shippingrates_vessel_schedule, leaving the agent to infer based on the return description.

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
Behavior4/5

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

Annotations declare read-only/idempotent safety (readOnlyHint=true, destructiveHint=false). Description adds essential financial/operational context: exact pricing ($0.03/call), payment token standard (x402), and blockchain networks (Base or Solana). Missing only rate limit or failure mode details.

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

Conciseness3/5

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

Front-loaded with action and cost warning. However, the 'Args:' section significantly duplicates schema descriptions already present in structured fields; with 100% schema coverage, this repetition is redundantrather than value-add.

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?

For a 5-parameter paid API, description adequately covers invocation cost, required payment proof parameter, and core functionality. No output schema exists, but the enumerated return fields (service codes, routing, etc.) provide sufficient contract hints.

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%, establishing baseline 3. Description adds concrete examples for carrier parameter ('MAEU', 'maersk') and organizes parameters by requirement level through the Args list structure, clarifying the optional payment header's purpose.

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

Purpose5/5

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

States specific verb 'Get' with resource 'transit schedules' and enumerates return details (service codes, routing, transhipment ports, frequency). Clearly distinguishes from sibling 'shippingrates_transit' and 'shippingrates_vessel_schedule' by specifying carrier-specific detailed schedules.

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

Usage Guidelines3/5

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

Discloses critical cost constraint ('PAID endpoint: $0.03 per call') and payment mechanism (x402, USDC on Base or Solana), which guides invocation timing. However, lacks explicit guidance on when to use versus sibling tools like 'shippingrates_transit' or 'shippingrates_vessel_schedule'.

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)
Behavior4/5

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

Annotations declare readOnly/idempotent/safe profile. Description adds crucial behavioral context: monetary cost per invocation and return value structure ('Array of vessel arrivals/departures...') since no output schema exists. 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?

Excellent structure with clear visual separation: purpose statement, pricing warning, Args section, and Returns section. No wasted words; the em-dash and formatting choices improve scannability. Appropriate length for complexity.

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

Completeness5/5

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

Thoroughly complete given constraints. Compensates for missing output schema by documenting return structure. Covers payment requirements (critical for this paid endpoint). With only 3 parameters (1 required) and clear annotations, description provides sufficient context for 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 coverage is 100%, establishing baseline 3. Description adds value by providing concrete port code examples ('INNSA', 'AEJEA') for the UN/LOCODE format, but otherwise mirrors schema descriptions without adding syntax constraints or validation rules 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?

Specific verb 'Get' with clear resource 'vessel schedules' and explicit scope 'upcoming...at a port'. The description distinguishes from siblings like shippingrates_transit_schedules by specifying port-level arrivals/departures rather than route transits.

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

Usage Guidelines4/5

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

Provides critical cost information ('PAID endpoint: $0.02 per call') and payment mechanism (x402, USDC on Base/Solana) that governs usage decisions. Lacks explicit differentiation from sibling shippingrates_transit_schedules, though the port-centric framing provides implicit context.

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.