Container Tracking MCP

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

我該用這個嗎

品質與安全性

A
說明品質
100%
結構描述完整度
95%
命名品質
100%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

根據工具定義與協定合規性的自動化分析。

上下文成本

~3,776Token(工具定義)
~4.9 KB典型回應大小
顯著的注意力影響(128k 上下文的 2.95%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "container-tracking": {
      "url": "https://mcp.trackingmcp.com/mcp"
    }
  }
}

遠端端點

https://mcp.trackingmcp.com/mcpstreamable-http
https://mcp.trackingmcp.com/ssesse

它能做什麼

工具清單

工具(7)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟢get_shipment_summary(filter)

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

輸入結構描述

{
  "type": "object",
  "properties": {
    "filter": {
      "type": "string",
      "enum": [
        "all",
        "exceptions",
        "arriving_soon",
        "demurrage_risk"
      ],
      "default": "all",
      "description": "Focus on a specific subset: all (default), exceptions, arriving_soon, demurrage_risk"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "False never appears here — failures arrive as tool errors."
    },
    "result": {
      "type": "string",
      "enum": [
        "data",
        "empty"
      ],
      "description": "\"empty\" means the query succeeded and there is nothing to report."
    },
    "code": {
      "type": "string",
      "description": "On an empty result: NOT_FOUND (no record after asking) or NO_EVENTS (record, nothing filed)."
    },
    "message": {
      "type": "string",
      "description": "On an empty result: what the emptiness means."
    },
    "data": {
      "type": "object",
      "properties": {
        "total_active": {
          "type": [
            "number",
            "null"
          ]
        },
        "exceptions": {
          "type": [
            "number",
            "null"
          ]
        },
        "arriving_this_week": {
          "type": [
            "number",
            "null"
          ]
        },
        "demurrage_risk_usd": {
          "type": [
            "number",
            "null"
          ]
        },
        "containers": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "identifier": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Container number or B/L as tracked"
                  },
                  "container_number": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "bl_number": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "status": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "carrier": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "SCAC of the operating line"
                  },
                  "vessel_name": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "vessel_imo": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "origin_name": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "destination_name": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "eta": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "ISO 8601"
                  },
                  "eta_confidence_pct": {
                    "type": [
                      "number",
                      "null"
                    ]
                  },
                  "demurrage_free_days_left": {
                    "type": [
                      "number",
                      "null"
                    ]
                  }
                },
                "additionalProperties": true
              }
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "additionalProperties": true
    }
  },
  "required": [
    "ok",
    "result"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_container_detail(container_id)

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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "container_id": {
      "type": "string",
      "description": "Container number (e.g. MRKU5004867) or B/L number (e.g. SEGU3103001)"
    }
  },
  "required": [
    "container_id"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "False never appears here — failures arrive as tool errors."
    },
    "result": {
      "type": "string",
      "enum": [
        "data",
        "empty"
      ],
      "description": "\"empty\" means the query succeeded and there is nothing to report."
    },
    "code": {
      "type": "string",
      "description": "On an empty result: NOT_FOUND (no record after asking) or NO_EVENTS (record, nothing filed)."
    },
    "message": {
      "type": "string",
      "description": "On an empty result: what the emptiness means."
    },
    "data": {
      "type": "object",
      "properties": {
        "id": {
          "type": [
            "string",
            "null"
          ]
        },
        "identifier": {
          "type": [
            "string",
            "null"
          ],
          "description": "Container number or B/L as tracked"
        },
        "container_number": {
          "type": [
            "string",
            "null"
          ]
        },
        "bl_number": {
          "type": [
            "string",
            "null"
          ]
        },
        "status": {
          "type": [
            "string",
            "null"
          ]
        },
        "carrier": {
          "type": [
            "string",
            "null"
          ],
          "description": "SCAC of the operating line"
        },
        "vessel_name": {
          "type": [
            "string",
            "null"
          ]
        },
        "vessel_imo": {
          "type": [
            "string",
            "null"
          ]
        },
        "origin_name": {
          "type": [
            "string",
            "null"
          ]
        },
        "destination_name": {
          "type": [
            "string",
            "null"
          ]
        },
        "eta": {
          "type": [
            "string",
            "null"
          ],
          "description": "ISO 8601"
        },
        "eta_confidence_pct": {
          "type": [
            "number",
            "null"
          ]
        },
        "demurrage_free_days_left": {
          "type": [
            "number",
            "null"
          ]
        },
        "ai_narrative": {
          "type": [
            "string",
            "null"
          ],
          "description": "Plain-language summary of where the box is"
        },
        "events": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "timestamp": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "ISO 8601"
                  },
                  "location": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "additionalProperties": true
              }
            },
            {
              "type": "null"
            }
          ],
          "description": "Filed milestones, newest first"
        },
        "reference": {
          "type": [
            "string",
            "null"
          ],
          "description": "On an empty result: the reference that was asked for"
        }
      },
      "additionalProperties": true
    }
  },
  "required": [
    "ok",
    "result"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_vessel_position(imo)

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?".

輸入結構描述

{
  "type": "object",
  "properties": {
    "imo": {
      "type": "string",
      "description": "IMO number of the vessel (e.g. 9463297)"
    }
  },
  "required": [
    "imo"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "False never appears here — failures arrive as tool errors."
    },
    "result": {
      "type": "string",
      "enum": [
        "data",
        "empty"
      ],
      "description": "\"empty\" means the query succeeded and there is nothing to report."
    },
    "code": {
      "type": "string",
      "description": "On an empty result: NOT_FOUND (no record after asking) or NO_EVENTS (record, nothing filed)."
    },
    "message": {
      "type": "string",
      "description": "On an empty result: what the emptiness means."
    },
    "data": {
      "type": "object",
      "properties": {
        "imo": {
          "type": [
            "string",
            "null"
          ]
        },
        "name": {
          "type": [
            "string",
            "null"
          ]
        },
        "lat": {
          "type": [
            "number",
            "null"
          ]
        },
        "lng": {
          "type": [
            "number",
            "null"
          ]
        },
        "speed_knots": {
          "type": [
            "number",
            "null"
          ]
        },
        "heading_deg": {
          "type": [
            "number",
            "null"
          ]
        },
        "nav_status": {
          "type": [
            "string",
            "null"
          ]
        },
        "position_fix_at": {
          "type": [
            "string",
            "null"
          ],
          "description": "When the position was actually fixed"
        },
        "position_age_hours": {
          "type": [
            "number",
            "null"
          ]
        },
        "position_freshness": {
          "type": [
            "string",
            "null"
          ]
        },
        "position_is_stale": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "True means do not quote this as current"
        },
        "source": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": true
    }
  },
  "required": [
    "ok",
    "result"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_demurrage_report(container_id)

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 / not_discharged / no_terms / no_destination / not_demurrage_eligible.

輸入結構描述

{
  "type": "object",
  "properties": {
    "container_id": {
      "type": "string",
      "description": "Optional: scope to a single container ID. Omit for portfolio-wide report."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "False never appears here — failures arrive as tool errors."
    },
    "result": {
      "type": "string",
      "enum": [
        "data",
        "empty"
      ],
      "description": "\"empty\" means the query succeeded and there is nothing to report."
    },
    "code": {
      "type": "string",
      "description": "On an empty result: NOT_FOUND (no record after asking) or NO_EVENTS (record, nothing filed)."
    },
    "message": {
      "type": "string",
      "description": "On an empty result: what the emptiness means."
    },
    "data": {
      "type": "object",
      "properties": {
        "containers": {
          "anyOf": [
            {
              "type": "array",
              "items": {}
            },
            {
              "type": "null"
            }
          ]
        },
        "total_exposure_usd": {
          "type": [
            "number",
            "null"
          ]
        },
        "assessed_containers": {
          "type": [
            "number",
            "null"
          ]
        },
        "unassessable_containers": {
          "type": [
            "number",
            "null"
          ],
          "description": "Boxes we could not cost — not boxes with zero exposure"
        },
        "uncosted_containers": {
          "type": [
            "number",
            "null"
          ]
        },
        "candidates_considered": {
          "type": [
            "number",
            "null"
          ]
        },
        "truncated": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "coverage_note": {
          "type": [
            "string",
            "null"
          ]
        },
        "scope_container": {
          "anyOf": [
            {},
            {
              "type": "null"
            }
          ]
        }
      },
      "additionalProperties": true
    }
  },
  "required": [
    "ok",
    "result"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_port_congestion(port_codes)

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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "port_codes": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "description": "UN/LOCODE port codes (e.g. [\"NLRTM\", \"GBFXT\"]). Get them from container details if unsure."
    }
  },
  "required": [
    "port_codes"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "False never appears here — failures arrive as tool errors."
    },
    "result": {
      "type": "string",
      "enum": [
        "data",
        "empty"
      ],
      "description": "\"empty\" means the query succeeded and there is nothing to report."
    },
    "code": {
      "type": "string",
      "description": "On an empty result: NOT_FOUND (no record after asking) or NO_EVENTS (record, nothing filed)."
    },
    "message": {
      "type": "string",
      "description": "On an empty result: what the emptiness means."
    },
    "data": {
      "type": "object",
      "properties": {
        "ports": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "unlocode": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "congestion_level": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "avg_wait_hours": {
                    "type": [
                      "number",
                      "null"
                    ]
                  },
                  "vessels_at_anchor": {
                    "type": [
                      "number",
                      "null"
                    ]
                  },
                  "updated_at": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "additionalProperties": true
              }
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "additionalProperties": true
    }
  },
  "required": [
    "ok",
    "result"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡add_container(identifier, identifier_type, tags)

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

輸入結構描述

{
  "type": "object",
  "properties": {
    "identifier": {
      "type": "string",
      "description": "Container number (e.g. MRKU5004867) or B/L number"
    },
    "identifier_type": {
      "type": "string",
      "enum": [
        "container_id",
        "bill_of_lading"
      ],
      "description": "Whether the identifier is a container number or B/L number"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Optional tags for organisation (e.g. [\"client-acme\", \"vessel-gulsun\"])"
    }
  },
  "required": [
    "identifier",
    "identifier_type"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "False never appears here — failures arrive as tool errors."
    },
    "result": {
      "type": "string",
      "enum": [
        "data",
        "empty"
      ],
      "description": "\"empty\" means the query succeeded and there is nothing to report."
    },
    "code": {
      "type": "string",
      "description": "On an empty result: NOT_FOUND (no record after asking) or NO_EVENTS (record, nothing filed)."
    },
    "message": {
      "type": "string",
      "description": "On an empty result: what the emptiness means."
    },
    "data": {
      "type": "object",
      "properties": {
        "id": {
          "type": [
            "string",
            "null"
          ],
          "description": "The tracked reference that was created"
        },
        "container_number": {
          "type": [
            "string",
            "null"
          ]
        },
        "bl_number": {
          "type": [
            "string",
            "null"
          ]
        },
        "status": {
          "type": [
            "string",
            "null"
          ]
        },
        "message": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": true
    }
  },
  "required": [
    "ok",
    "result"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_demurrage_free_time(carrier_code, port_unlocode, country_iso2, category, container_type, ...)

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

輸入結構描述

{
  "type": "object",
  "properties": {
    "carrier_code": {
      "type": "string",
      "description": "SCAC, e.g. CMDU (CMA CGM), MAEU (Maersk), HLCU (Hapag), ZIMU (ZIM). Omit to get the indicative cross-carrier average directly."
    },
    "port_unlocode": {
      "type": "string",
      "description": "5-char UN/LOCODE, e.g. FRMRS (Marseille). Provide this or country_iso2."
    },
    "country_iso2": {
      "type": "string",
      "description": "ISO-3166 alpha-2, e.g. FR. Used when no port is given, or as fallback grain."
    },
    "category": {
      "type": "string",
      "enum": [
        "demurrage",
        "detention",
        "combined_dd",
        "free_time_storage"
      ],
      "default": "demurrage",
      "description": "demurrage (in-port), detention (out-of-port), combined_dd, or free_time_storage"
    },
    "container_type": {
      "type": "string",
      "default": "40GP",
      "description": "e.g. 20GP, 40GP, 40HC, 20RF"
    },
    "direction": {
      "type": "string",
      "enum": [
        "import",
        "export",
        "both"
      ],
      "default": "import"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "False never appears here — failures arrive as tool errors."
    },
    "result": {
      "type": "string",
      "enum": [
        "data",
        "empty"
      ],
      "description": "\"empty\" means the query succeeded and there is nothing to report."
    },
    "code": {
      "type": "string",
      "description": "On an empty result: NOT_FOUND (no record after asking) or NO_EVENTS (record, nothing filed)."
    },
    "message": {
      "type": "string",
      "description": "On an empty result: what the emptiness means."
    },
    "data": {
      "type": "object",
      "properties": {
        "carrier_code": {
          "type": [
            "string",
            "null"
          ]
        },
        "port_unlocode": {
          "type": [
            "string",
            "null"
          ]
        },
        "country_iso2": {
          "type": [
            "string",
            "null"
          ]
        },
        "category": {
          "type": [
            "string",
            "null"
          ],
          "description": "demurrage | detention | combined_dd | free_time_storage"
        },
        "free_days": {
          "type": [
            "number",
            "null"
          ]
        },
        "is_estimate": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "True means this is an indicative cross-carrier average, not the line's own figure"
        },
        "basis": {
          "type": [
            "string",
            "null"
          ]
        },
        "source": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": true
    }
  },
  "required": [
    "ok",
    "result"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本7 個工具
觀測失敗未記錄版本—
需要驗證未記錄版本—
觀測失敗未記錄版本—
需要驗證未記錄版本—