ShippingRates MCP Server
Ocean shipping intelligence: D&D, freight rates, vessel schedules, port data. 24 tools, 6 carriers.
What is the ShippingRates MCP Server?
The ShippingRates MCP server gives AI agents structured, permission-aware access to ShippingRates through the Model Context Protocol. With 25 pre-built actions, agents can read, create, and update ShippingRates data on behalf of authorized users.
Willow ships the ShippingRates MCP server as part of an enterprise control plane. Every call runs behind SSO (Okta, Azure AD), enforces RBAC and least-privilege at runtime, writes to a full audit trail, and integrates with Splunk and Loki for SIEM visibility. Connect from Claude Desktop, Claude Code, Cursor, ChatGPT, VS Code, n8n, or any custom agent. Install once, distribute org-wide, and see exactly how ShippingRates is being used by every AI agent in your stack.
Tools
shippingrates_stats
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.
shippingrates_lines
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.
shippingrates_search
Search the ShippingRates database by keyword — matches against carrier names, port names, country names, and charge types. Use this for exploratory queries when you don't know exact codes. For example, search "mumbai" to find port codes, or "hapag" to find Hapag-Lloyd data coverage. Returns matching trade lanes, local charges, and shipping line information. FREE — no payment required. Returns: { trade_lanes: [...], local_charges: [...], lines: [...] } matching the keyword. Related tools: Use shippingrates_port for structured port lookup by UN/LOCODE, shippingrates_lines for full carrier listing.
shippingrates_dd_calculate
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 }
shippingrates_dd_compare
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.
shippingrates_local_charges
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.
shippingrates_inland_search
Search for available inland transport routes (road/rail haulage) from port to inland destinations for a specific carrier. Use this to discover what haulage routes a carrier offers in a country. For example, search "ahmedabad" to find routes from Nhava Sheva to Ahmedabad via Maersk. Returns route options with ICD/CFS codes and available container types. For actual haulage rate quotes, use shippingrates_inland_haulage. For cross-carrier rate comparison, use shippingrates_inland_compare. PAID: $0.03/call via x402 (USDC on Base or Solana). Without payment, returns 402 with payment instructions. Returns: Array of { origin, destination, mode, container_types, icd_code } matching the search criteria.
shippingrates_cfs_tariffs
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 }.
shippingrates_inland_haulage
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 }.
shippingrates_port
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 }
shippingrates_transit
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 }.
shippingrates_rates
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 }.
shippingrates_surcharges
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 }.
shippingrates_congestion
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 }.
shippingrates_reliability
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 }.
shippingrates_vessel_schedule
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 }.
shippingrates_vessel_schedule_options
Get carrier vessel/voyage schedule options between an origin and destination, including operational cutoff deadlines when the carrier source publishes them. Use this for booking planning questions that need vessel details, voyage number, transshipment ports, ETA/ETD, and port/SI/VGM cutoffs. Missing cutoff fields remain null or absent; ShippingRates does not infer unpublished deadlines. For port-call monitoring without cutoff details, use shippingrates_vessel_schedule. PAID: $0.03/call via x402 (USDC on Base or Solana). Without payment, returns 402 with payment instructions. Returns: { origin, destination, options: Array<{ carrier, vessel_name, vessel_imo, voyage_number, etd, eta, transshipment_ports, cutoffs, source_url }>, coverage }.
shippingrates_regulatory
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 }.
shippingrates_total_cost
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 }
shippingrates_fx
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 }
shippingrates_transit_schedules
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 }.
shippingrates_facilities
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 }.
shippingrates_congestion_news
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 }.
shippingrates_inland_compare
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.
shippingrates_risk_score
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 }.
Customize Tools
Edit descriptions, modify arguments, select tools, or add new ones
Set Up Your ShippingRates MCP Server in Minutes
Add the following configuration to your MCP client. Authentication is handled via OAuth. Compatible with Claude Desktop, Claude Code, Cursor, ChatGPT, VS Code, n8n, and any MCP-compatible agent.
Claude Desktop
{
"mcpServers": {
"willow-shippingrates": {
"type": "http",
"url": "https://<org>.mcp-s.com/mcp/mcp/shippingrates"
}
}
}Cursor
{
"mcpServers": {
"willow-shippingrates": {
"type": "http",
"url": "https://<org>.mcp-s.com/mcp/mcp/shippingrates"
}
}
}Claude Code
claude mcp add willow-shippingrates --transport http https://<org>.mcp-s.com/mcp/mcp/shippingratesn8n
{
"url": "https://<org>.mcp-s.com/mcp/mcp/shippingrates",
"method": "POST"
}Or click "Install with Willow" above to set up automatically with SSO and RBAC preconfigured.
Enterprise Governance for ShippingRates
Willow adds the layer ShippingRates and every other SaaS doesn't ship out of the box: every call runs behind SSO (Okta, Azure AD), enforces RBAC and least-privilege at runtime, writes to full audit logs, and detects shadow AI usage across your stack. One MCP gateway. Any agent. Every tool.
ShippingRates MCP Server FAQ
What is the ShippingRates MCP server?
The ShippingRates MCP server is a Model Context Protocol implementation that lets AI agents like Claude, Cursor, and ChatGPT read and write ShippingRates data through a standardized interface. Willow hosts and governs this server so enterprises can roll it out without a security review backlog.
How is Willow's ShippingRates MCP server different from the official one?
The official ShippingRates MCP server is scoped to a single user's account and does not include enterprise governance. Willow's version adds SSO, RBAC, audit logging, shadow AI detection, and centralized control over which actions agents can take across the entire org.
Which AI clients work with the ShippingRates MCP server?
Claude Desktop, Claude Code, Cursor, ChatGPT, VS Code with MCP support, n8n, and any custom agent built with OpenAI Agents SDK, LangChain, Vercel AI SDK, or Anthropic SDK.
Is the ShippingRates MCP server secure? How does Willow handle authentication?
Every call runs behind your existing SSO (Okta, Azure AD). Per-user OAuth scopes the agent to exactly what that user can do in ShippingRates, nothing more. No credentials reach the LLM. Every action writes to an audit trail.
Can I limit which ShippingRates actions agents can take?
Yes. Willow lets you scope agents to specific actions, specific projects, or specific environments. Toggle actions on or off in the dashboard, or enforce policy via infrastructure-as-code through GitHub.
How do I detect shadow ShippingRates MCP servers in my org?
Willow's browser extension and discovery service surface unmanaged MCP servers, skills, and AI agents across the org. If a developer installed an unapproved ShippingRates MCP locally, you'll see it.
What does the ShippingRates MCP server cost?
Pricing depends on org size and deployment model (SaaS, dedicated cloud, self-host). See withwillow.ai/pricing or contact sales for a quote.
How do I install the ShippingRates MCP server with Willow?
Install via the Willow Connect Panel in one click, or paste the JSON snippet above into your Claude Desktop, Cursor, or Claude Code config. SSO and RBAC inherit from your existing Willow setup.
Compare Willow MCP Gateway
See how Willow stacks up against other MCP platforms on governance, security, and enterprise readiness.
Your agents are already in the wild.
Give them a Basecamp. Go from AI chaos to AI work, in minutes.