BerthTime

com.berthtime由 berthtime.com 發布官方發布者v1.0.4更新於 Nov 7, 2026

Track ocean containers and shipments: live ETAs, delays, carrier events and share links.

已驗證Streamable HTTP可網頁執行位置與生活商業與電商

概覽

AI 產生的概覽

BerthTime 的遠端 MCP 伺服器讓助理查詢海運貨櫃貨運:位置、航線、預計到港時間、延誤、承運人事件與分享連結。

可以做什麼
  • 查找並篩選公司自有貨運、共享貨運、近期到港與延誤的貨運
  • 讀取單一貨運的航線、預計到港時間與最新事件,或完整的承運人事件時間軸
  • 辨識單號類型與承運人、列出支援的承運人,並開始追蹤新的貨櫃、提單或訂艙號
  • 修改貨運的訂艙號、提單號或貨櫃號,或封存貨運
  • 查看方案用量與計費、提醒規則與支援請求,並提出支援請求
  • 建立或取得貨運的公開唯讀追蹤連結
適用情境
適合從事海運貨運的人用自然語言詢問助理某個貨櫃現在在哪、本週有哪些到港、哪些延誤,或開始追蹤新的單號。
執行需求
由 BerthTime 代管的遠端 streamable HTTP 端點,無需自行安裝。需要 BerthTime 帳號,並透過 OAuth 登入或以 bearer 權杖方式傳送的 BerthTime API 金鑰。寫入類工具需要在登入時授予讀寫權限且具備公司擁有者或管理員角色,或使用讀寫 API 金鑰。
安裝前請注意
寫入類工具會變更資料:開始追蹤、修改單號、建立公開分享連結與封存貨運。分享連結任何拿到網址的人都能開啟。登入時可授權一個或全部所屬公司,應選擇最小範圍。每次工具呼叫都會記入公司稽核日誌。有速率限制。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 BerthTime,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/com.berthtime%2Fberthtime/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "berthtime": {
      "type": "http",
      "url": "https://berthtime.com/api/v1/mcp"
    }
  }
}

README

BerthTime MCP server

Ask your AI assistant where your ocean containers are.

BerthTime tracks ocean containers across the major carriers. Its remote MCP server lets ChatGPT, Claude, Cursor, VS Code and any other MCP client read your shipments in plain language: where a container is, what arrives this week, what is running late, and the full carrier event history. You can also start tracking new containers.

This repository contains the public connection details, registry metadata and client setup examples. The server is hosted by BerthTime; there is nothing to install or run yourself.

Endpointhttps://berthtime.com/api/v1/mcp
TransportStreamable HTTP
AuthenticationOAuth 2.1 (sign in with your BerthTime account), or a BerthTime API key
MCP Registrycom.berthtime/berthtime
Setup guidehttps://berthtime.com/ai-assistant
RequirementsA BerthTime account (sign up)

What you can ask

  • "Where is container MSCU1234566 right now?"
  • "Which of my containers arrive this week?"
  • "Is anything delayed by more than two days?"
  • "Show me everything that happened to my Felixstowe shipment."
  • "Start tracking booking 123456789."

Tools

Read: list_companies, list_shipments, list_shared_shipments, get_shipment, get_shipment_events, list_arriving_shipments, list_delayed_shipments, detect_reference, list_carriers, get_usage, list_alert_rules, list_support_requests.

Write (needs read-and-write access, chosen at sign-in, and an owner or admin role in the company; or a read + write API key): track_shipment, update_shipment_identifiers (set the booking, bill of lading or container numbers on a shipment), get_share_link (creates a link if none exists; paid plans), create_share_link (paid plans), create_support_request, archive_shipment.

BerthTime updates shipments automatically in the background; there is no manual refresh.

Several tools were renamed on 6 November 2026; the old names (arriving_soon, delayed_shipments, list_notification_rules, list_tickets, create_ticket) still work.

Every tool declares MCP annotations (readOnlyHint, destructiveHint, idempotentHint, openWorldHint). If you belong to several companies, pass the optional company argument (id, @handle or exact name).

Connect

ChatGPT and Claude

Add a custom connector with the URL https://berthtime.com/api/v1/mcp and choose OAuth. Step-by-step instructions with screenshots: https://berthtime.com/ai-assistant

Claude Code

sh
claude mcp add --transport http berthtime https://berthtime.com/api/v1/mcp

Cursor

~/.cursor/mcp.json: see examples/cursor-mcp.json.

VS Code

.vscode/mcp.json: see examples/vscode-mcp.json.

With an API key instead of OAuth

Create an API key in BerthTime (Settings → API keys) and send it as a bearer token: see examples/api-key-header.json. An API key acts for a single company.

Security and privacy

  • When you sign in you pick one company, or all the companies you belong to, and whether the assistant may only read or may also make changes. Tokens are valid only on the MCP endpoint; access tokens last one hour and refresh tokens rotate.
  • Disconnect a signed-in app in Settings → AI assistants, or revoke an API key in Settings → API keys. Both take effect immediately.
  • The server only reads and changes your data in BerthTime. It does not store your conversations; each tool call (tool name and arguments) is recorded in your company's audit log.
  • Rate limits: 120 requests per minute and 600 per hour per API key or token, shared with the REST API.
  • Privacy policy · Terms of service

Support

[email protected], or the support page inside the BerthTime app.


BerthTime is operated by Majorbird Vietnam Company Limited. The examples in this repository are MIT-licensed; the BerthTime service itself is proprietary.

來源:README.md,提交 6d11dad

工具

18

list_companies

Who am I / my companies

Who this connection acts as (user or API key) and every company it may act for, with read or read + write access in each (a.k.a. whoami). Call it first when the user belongs to several companies or a call says access is denied; then pass `company` (id, @handle or exact name) to the other tools. No arguments. Returns: acting_as {type, name, email or prefix, app}, connection (api_key or oauth), all_companies, default_company and companies[] {id, name, handle, plan, plan_name, role, access, default}.

無需輸入參數。

list_shipments

List shipments

List or search the company's own tracked shipments, newest first. Use it to find a shipment (free-text `q`: reference, customer reference, container number, vessel) or to filter by status (default active), carrier SCAC, phase, tag, ETA window (eta_after / eta_before, ISO 8601) or predicted eta_risk. For one shipment's full detail use get_shipment; for the next N days use list_arriving_shipments; for slipped ETAs use list_delayed_shipments; shipments other companies share with you are in list_shared_shipments. All arguments are optional. Returns: shipments[] {id, reference, ref_type, carrier, customer_reference, status, tracking_status, phase, pol, pod, eta, original_eta, delay_hours, predicted_eta, eta_risk, vessel, containers, booking_number, bl_number, tracked_via}, has_more, next_cursor. Paging: limit 1-100 (default 20); pass next_cursor as `cursor` for the next page.

輸入參數qtaglimitphasecursorstatuscarriercompanyeta_risketa_aftereta_before

list_shared_shipments

Shipments shared with us

Shipments that other companies (network connections) share with this company, read only, and open tracking requests (filter=requests). They are not the company's own shipments, so list_shipments, get_shipment and the write tools do not see them. All arguments are optional: filter (all or requests), free-text `q`. Returns: shipments[] {id, reference, ref_type, carrier, carrier_name, customer_reference, owner (@handle), owner_name, status, tracking_status, phase, eta, delay_hours, pol, pod, vessel, kind, request_status, paid_by_you, shared_at}, has_more, next_cursor. Paging: limit 1-100 (default 20) and `cursor`.

輸入參數qlimitcursorfiltercompany

get_shipment

Get shipment

Everything about one shipment: summary, route (POL, transshipments, POD with actual and estimated times), current position estimate, carrier ETA and predicted ETA, and the latest actual events. Use it for "where is X" questions; for the full event history use get_shipment_events. `shipment` (required) is the BerthTime id, the tracked reference, or a container number on the shipment. Optional `events` (0-50, default 5) = how many latest actual events to include. Returns: shipment {id, reference, ref_type, carrier, customer_reference, status, tracking_status, phase, pol, pod, eta, original_eta, delay_hours, predicted_eta, eta_risk, vessel, containers, booking_number, bl_number, tracked_via, last_position, container_remarks}, route {stops[] {role, name, un_locode, arrival, departure}, legs[], current_position} or null, latest_events[]. Unknown reference: an error that suggests list_shipments or track_shipment.

輸入參數eventscompanyshipment必填

get_shipment_events

Shipment events

The full DCSA-style event timeline of one shipment (gate in, load, departure, arrival, discharge, ...), oldest first. Use it when the user wants the history; get_shipment already includes the last few actual events. `shipment` (required) is the BerthTime id, the tracked reference, or a container number on the shipment. Optional: classifier (ACT actual, EST estimated, PLN planned; default all), limit (most recent N, 1-500, default 50). Returns: shipment_id, reference, events[] {at, timezone, precision, classifier, code, type, description, location, un_locode, vessel, voyage, container}. Times are UTC.

輸入參數limitcompanyshipment必填classifier

list_arriving_shipments

Arriving soon

Active shipments not yet arrived whose carrier ETA falls within the next N days, soonest first. Use it for "what arrives this week"; for an exact date range or other filters use list_shipments with eta_after / eta_before. All arguments are optional: days (1-120, default 7), limit (1-200, default 50). Returns: days, shipments[] {id, reference, ref_type, carrier, customer_reference, status, tracking_status, phase, pol, pod, eta, original_eta, delay_hours, predicted_eta, eta_risk, vessel, containers, booking_number, bl_number, tracked_via}. No paging: raise limit or narrow days.

輸入參數dayslimitcompany

list_delayed_shipments

Delayed shipments

Active shipments whose carrier ETA has slipped versus the first ETA BerthTime saw, by at least min_delay_hours, most delayed first. Use it for "what is late"; for shipments predicted to be late from the vessel position use list_shipments with eta_risk=likely_late. All arguments are optional: min_delay_hours (0-10000, default 24), limit (1-200, default 50). Returns: min_delay_hours, shipments[] {id, reference, ref_type, carrier, customer_reference, status, tracking_status, phase, pol, pod, eta, original_eta, delay_hours, predicted_eta, eta_risk, vessel, containers, booking_number, bl_number, tracked_via} (delay_hours = the slip). No paging.

輸入參數limitcompanymin_delay_hours

detect_reference

Detect reference

Check a number before tracking it: is it a container (ISO 6346 check digit), bill of lading or booking number, and which carrier issued it. Stores nothing and needs no company. Use it when the user is unsure what a number is; track_shipment detects on its own. Required: reference (3-64 characters, e.g. MSCU1234566). Returns: reference, ref_type, carrier_scac, carrier_name, confidence, check_digit_valid, note, suggested_carrier.

輸入參數reference必填

list_carriers

List carriers

The carriers BerthTime knows: SCAC, name, which reference types each supports and whether tracking is live today. Use it to find the SCAC for track_shipment's `carrier` or to answer "do you support X". Optional: live_only (default false). Returns: carriers[] {scac, name, ref_types, tracking, ...}. No paging (the full list).

輸入參數live_only

get_usage

Plan and usage

The company's plan and billable shipments for one month: included allowance, used, overage, cost so far and trial end. A shipment counts once per month when the carrier returned data for it. Use it for plan, quota or billing questions. Optional: month (YYYY-MM, UTC; default this month), include_shipments (default false) to list the counted shipments. Returns: month, plan, plan_name, included (null = unlimited), used, overage, projected_cost, currency, trial_ends_at, trial_active, and with include_shipments: shipments[] {shipment_id, reference, ref_type, first_counted_at, merged}.

輸入參數monthcompanyinclude_shipments

list_alert_rules

Email alert rules

The company's email alert rules (delay over N days, arrived, delivered, tracking failed), their scope (all shipments, a tag or a carrier) and how many people get them. Read only: rules are created and changed in the web app (Settings > Notifications). Optional: include_inactive (default false) to add paused rules. Returns: rules[] {id, name, summary, rule_type, delay_days, delay_mode, failure_count, scope, scope_value, is_active, recipients {all_members, members, extra_emails}}.

輸入參數companyinclude_inactive

list_support_requests

Support requests

The company's support requests to the BerthTime team, most recent activity first. Use it to check the status of a request; to open one use create_support_request. Internal staff notes are never included. Optional: status (active = open + pending, the default; open, pending, resolved, closed or all), limit (1-100, default 20). Returns: tickets[] {id, number (BT-1234), subject, topic, status, priority, last_message_at, last_message_by, message_count, preview}, counts by status.

輸入參數limitstatuscompany

track_shipment

Track shipment

Start tracking a container, bill of lading or booking number. Type and carrier are detected when omitted; if the carrier is not recognised the shipment is added but not tracked, and you should call again with `carrier` (SCAC, see list_carriers). Already tracked references are returned as they are (archived ones are re-activated), so repeating a call is safe. Required: reference (4-64 characters, e.g. MSCU1234566). Optional: ref_type (container, bl, booking), carrier, customer_reference, tags, booking_number and bl_number (the other numbers of the same shipment, e.g. a container with its booking: one shipment, not three). Returns: result (created or exists), shipment {id, reference, ref_type, carrier, customer_reference, status, tracking_status, phase, pol, pod, eta, original_eta, delay_hours, predicted_eta, eta_risk, vessel, containers, booking_number, bl_number, tracked_via}. The first carrier data arrives in the background: check get_shipment a minute later. Counts towards the plan's monthly allowance once the carrier returns data. Needs write access: a read + write API key, or read + write access granted at sign-in by an owner or admin of the company.

輸入參數tagscarriercompanyref_typebl_numberreference必填booking_numbercustomer_reference

update_shipment_identifiers

Set booking / B/L / containers

Set, change or remove the booking and bill of lading numbers of a tracked shipment, or add container numbers to it. Use it when the user gives another number of a shipment already tracked (e.g. the booking of a container); track_shipment would start a new shipment instead. The tracker asks these numbers when the reference fails, and first when the carrier's booking query gives more than its container query (e.g. COSCO). `shipment` (required) is the BerthTime id, the tracked reference, or a container number on the shipment. Optional: booking_number, bl_number (an empty string removes it; omitted = unchanged), containers (ISO 6346, up to 20). At least one of them is required. Returns: shipment {id, reference, ref_type, carrier, customer_reference, status, tracking_status, phase, pol, pod, eta, original_eta, delay_hours, predicted_eta, eta_risk, vessel, containers, booking_number, bl_number, tracked_via}, retracking (true = a re-track was queued). A container number given as booking or B/L, or a malformed number, is an error. Needs write access: a read + write API key, or read + write access granted at sign-in by an owner or admin of the company.

輸入參數companyshipment必填bl_numbercontainersbooking_number

create_support_request

Contact BerthTime support

Open a support request with the BerthTime team on behalf of the user. Only when the user asks to contact support or report a problem; to see existing requests use list_support_requests. Required: subject (3-200 characters), message (plain text). Optional: topic (support, sales, billing, partnership, other; default support), priority (normal or high, high only when the user says it is urgent). Returns: id, number (BT-1234), status, requester_email. The team answers by email and in the web app. Each call opens a new request, so do not repeat it. Needs write access: a read + write API key, or read + write access granted at sign-in by an owner or admin of the company.

輸入參數topiccompanymessage必填subject必填priority

archive_shipment

Archive shipment

Stop tracking a shipment. Its history is kept and track_shipment with the same reference re-activates it. Only when the user asks to stop or remove a shipment. `shipment` (required) is the BerthTime id, the tracked reference, or a container number on the shipment. Returns: shipment_id, status (archived). Archiving an archived shipment changes nothing. Needs write access: a read + write API key, or read + write access granted at sign-in by an owner or admin of the company.

輸入參數companyshipment必填

版本歷史

2
  1. v1.0.4最新Nov 7, 2026
  2. v1.0.3Nov 6, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分