io.github.lxxmng/container-tracking

Container Tracking MCP

DCSA container tracking across 228 ocean carriers: live vessel positions, ETAs, demurrage alerts.

1.3.0
Version
remote
Transport
7
Tools

Security review

Review passed

Reviewed Jan 1, 2000.

  • tools: 7 tools scanned
  • metadata: scanned

No findings.

Tools (7)

  • get_shipment_summary

    Overview of your entire container portfolio: total active, exceptions, arriving soon, demurrage risk. Use this as the starting point for any shipment question.

  • get_container_detail

    Full status for a single container: current status, route, ETA with confidence, carrier, vessel, all events, and AI-generated shipment narrative. Use this when asked about a specific container.

  • get_vessel_position

    Last known AIS position for a vessel: lat/lng, speed, heading, navigation status, and how old the fix is. Use the vessel IMO from get_container_detail. IMPORTANT: an AIS position is a LAST KNOWN fix, not a live feed. Read `position_age_hours` and `position_freshness` (live <6h, recent <24h, stale <72h, outdated >=72h, unknown = no fix time recorded) and state the age when you report the location. Terrestrial AIS cannot see a ship mid-ocean, so an outdated fix is normal and is still useful evidence of where the vessel was — but never present it as where the vessel is now. `position_updated_at` is the time WE last wrote the row and is NOT the fix age; do not use it to answer "how current is this?".

  • get_demurrage_report

    Demurrage and detention risk report: which containers are near or past their free days, the daily rates, and the projected cost. Call this when asked about demurrage risk or detention fees. Free days are resolved per shipment from the customer's own contract terms first, then the carrier's published tariff, then a cross-carrier benchmark — `terms_source` and `confidence` on each item say which was used, so an estimated tariff figure must be reported as estimated, not as their contract. Read the counters before drawing a conclusion: `unassessable_containers` are boxes whose free time could not be resolved at all (an empty item list alongside a non-zero count means "cannot assess", NEVER "no risk"), `uncosted_containers` are at risk with no daily rate on file (so `total_at_risk_usd` is a floor, not the exposure), and `truncated: true` means the fleet is larger than the report. Pass container_id to assess a single shipment: `scope_container.verdict` is one of at_risk / within_free_time /

  • get_port_congestion

    Current congestion level at one or more ports: average wait hours, vessels at anchor, and congestion level (low/moderate/high/severe). Provide UN/LOCODE codes like NLRTM, GBFXT, DEHAM, CNSHA.

  • add_container

    Start tracking a new container or Bill of Lading. Returns confirmation once tracking is set up. First status update arrives within 15 minutes.

  • get_demurrage_free_time

    Free time (days) before demurrage, detention or storage charges start, for a carrier at a port or country. Returns the carrier's OWN published figure when available, otherwise an INDICATIVE cross-carrier average (flagged is_estimate, shown without prejudice). Use for 'how many free days does <carrier> give at <port>'.