freight-pulse-mcp
v0.2.0
Published
Ocean & multimodal freight intelligence suite for AI agents — 47 tools: cross-validated spot & all-in rates, total landed cost by HS code + duty, transit time & reliability (p90), air-vs-ocean, customs & Incoterms, demurrage & detention, port congestion,
Maintainers
Keywords
Readme
freight-pulse 🚢
Ocean & multimodal freight intelligence suite for AI agents. One MCP server that answers any shipping question an importer, CFO, or supply-chain agent actually asks — from "what's the spot rate Shanghai → LA?" to "what's my total landed cost with duty?" to "should I book this lane now or wait?" — across 47 tools covering rates, total landed cost, transit reliability, customs, risk, emissions, and a unified ship decision.
Give it a lane, an HS code, a value — get back one trustworthy, cross-validated answer with a confidence read, not one vendor's quote. The rate engine, port normalization, customs logic, and the accumulating per-lane history all run server-side (the moat); the npm package is a thin client.
Hosted endpoint: https://freight-pulse-mcp.vercel.app/mcp · streamable-HTTP, no signup for the free tier.
Why an agent picks this
A single freight API returns one vendor's number with no second opinion and stops at the rate. freight-pulse goes the whole distance an importer needs:
- Cross-validated rates. Reads Drewry's World Container Index (WCI) and the Freightos Baltic Index (FBX) server-side (plus your own SeaRates key if you supply one) and reconciles them into one normalized USD figure with a confidence score (do the sources agree?) and a market direction (rising / falling / stable).
- The whole decision, not just the price. Landed cost with HS-code duty, all-in door-to-door,
transit time + reliability (p90), air-vs-ocean trade-off, customs, risk, CO₂ — folded into a
single
ship_decisionverdict: BOOK NOW / WAIT / SWITCH MODE. - Its own accumulating history. Every lane queried is cached with a timestamp; trend tools serve a weeks-long normalized series no single index hands an agent for free.
- Public, non-sensitive inputs. Ports, HS codes, declared values — nothing secret. Safe for an agent to call without handing over credentials.
Worked example — Shanghai → Los Angeles, 40ft, $180k of cargo
💲 get_spot_rate → $5,442 / 40ft · confidence 🟢 80/100 · cross-validated from Drewry + FBX (spread 11%)
🧾 get_all_in_rate → $6,910 all-in (BAF, THC, doc, ISF, drayage folded in)
📦 get_landed_cost → $193,180 delivered (rate + 3.4% duty on HS 8516 + MPF/HMF + insurance)
🚢 ship_decision → BOOK NOW · rate stable-to-rising, equipment available, transit p90 within SLAOne agent call chain, one verdict. That's the difference between a freight API and a freight agent.
What's inside — 47 tools
| Area | Tools |
|---|---|
| Rates & trend | get_spot_rate (FREE), get_lane_trend, get_all_in_rate, rate_benchmark (am I overpaying?) |
| Total cost | get_landed_cost, total_cost_ownership, customs_valuation, customs_optimization |
| Decision | ship_decision, simulate_scenario, compare_modes (air vs ocean), sourcing_analysis (China+1 / nearshoring) |
| Transit & risk | get_port_intel (congestion), lane_risk_index, disruption, contingency_plan, get_scorecard |
| Procurement | procurement_strategy, build_tender, evaluate_bids, select_provider (forwarder/3PL), record_performance |
| Customs & docs | required_documents, incoterm_responsibility, qualify_fta_origin, export_compliance, check_lc_documents |
| Carriers & equipment | carrier_recommendation, equipment_availability, booking_strategy, appointment_plan, dnd_strategy (demurrage & detention) |
| Inland & load | door_to_door, load_plan, pallet_plan, optimize_network, cold_chain |
| Finance & risk | payment_terms, fx_exposure, insurance_recommendation, inventory_optimization |
| Sustainability | carbon_footprint (GLEC/ISO 14083), decarbonization_roadmap, reverse_logistics |
| Monitoring | create_watch, check_watches, market_report, special_cargo |
get_spot_rate is free (the hook). The deep analytical tools are premium.
Quickstart (MCP)
{
"mcpServers": {
"freight-pulse": {
"command": "npx",
"args": ["-y", "freight-pulse-mcp"],
"env": {
// optional: unlock premium tools with a prepaid key
"FREIGHT_PULSE_KEY": "fp_…",
// optional: your own SeaRates key — cross-validated as a THIRD source, RAISES confidence
"SEARATES_API_KEY": "…"
}
}
}
}Or connect over HTTP at POST https://freight-pulse-mcp.vercel.app/mcp (streamable).
Free vs Pro
| | Free | Pro |
|---|---|---|
| get_spot_rate (cross-validated rate + confidence + direction) | ✅ | ✅ |
| All 40+ analytical tools (landed cost, ship_decision, customs, risk, trend, …) | upsell preview | ✅ full result |
| Accumulating per-lane trend history | — | ✅ |
| Pay how | — | 🪙 x402 (USDC on Base) per call — agents pay automatically, no signup · or 💳 card via Stripe checkout for a prepaid key |
Two ways to pay a premium call:
- 🪙 x402 (USDC on Base) — an x402-aware agent pays per call automatically, zero signup.
- 💳 Card (Stripe) — buy a prepaid API key, send it as
Authorization: Bearer <key>(or setFREIGHT_PULSE_KEY).
On the data
freight-pulse is indicative market intelligence cross-validated from public freight indices and customs references — not a carrier quote or a booking. Always verify with your forwarder before committing. Drewry WCI and Freightos FBX publish weekly assessments; the optional SeaRates source is bring-your-own-key (it only raises confidence, never required).
The analysis engine — index fetching, port/HS normalization, cross-validation, the confidence model, customs/duty logic, and the per-lane history cache — runs server-side. The npm package is a thin client that forwards to the hosted service.
MIT · github.com/Baneado98/freight-pulse · Hosted at freight-pulse-mcp.vercel.app
