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 分