BerthTime MCP
An official MCP server by BerthTime that allows AI assistants to track ocean containers and shipments. It provides live ETAs, delay notifications, carrier events, and shipment history by querying the user's BerthTime account data via OAuth or API keys.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://berthtime.com/api/v1/mcpWhat its tools do
18 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Read-only (12)
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to berthtime.com ·
- Passed Endpoint is on the registry namespace domain ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Find a shipment by container, bill of lading, or booking number
- Tell you the carrier's ETA and whether it has slipped
- List what arrives soon and what is delayed
- Walk you through the history of a shipment
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- berthtime 0.1.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 18 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": false
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
18 advertised
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}.
{
"type": "object",
"properties": {},
"additionalProperties": false
}{
"title": "Who am I / my companies",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}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.
{
"type": "object",
"properties": {
"q": {
"type": "string",
"maxLength": 100,
"description": "Search text: reference, customer reference, container number or vessel name."
},
"tag": {
"type": "string",
"maxLength": 50,
"description": "Only shipments with this tag (exact tag name, as shown in the web app)."
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Page size, 1-100 (default 20)."
},
"phase": {
"enum": [
"pending",
"booked",
"in_transit",
"arrived",
"delivered"
],
"type": "string",
"description": "Only shipments in this phase: pending (no carrier data yet), booked, in_transit, arrived or delivered."
},
"cursor": {
"type": "string",
"description": "next_cursor from a previous call."
},
"status": {
"enum": [
"active",
"archived",
"all"
],
"type": "string",
"default": "active",
"description": "active (default) = being tracked; archived; or all."
},
"carrier": {
"type": "string",
"maxLength": 8,
"description": "Carrier SCAC, e.g. MSCU, MAEU."
},
"company": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Which company to act for: its id, @handle or exact name (see list_companies). Omit for the connection's default company."
},
"eta_risk": {
"enum": [
"on_time",
"at_risk",
"likely_late"
],
"type": "string",
"description": "Predicted ETA risk (estimate based on vessel position)."
},
"eta_after": {
"type": "string",
"format": "date-time",
"description": "Only ETAs at or after this (ISO 8601)."
},
"eta_before": {
"type": "string",
"format": "date-time",
"description": "Only ETAs at or before this (ISO 8601)."
}
},
"additionalProperties": false
}{
"title": "List shipments",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}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`.
{
"type": "object",
"properties": {
"q": {
"type": "string",
"maxLength": 100,
"description": "Search text: reference, customer reference, container number or vessel name."
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Page size, 1-100 (default 20)."
},
"cursor": {
"type": "string",
"description": "next_cursor from a previous call."
},
"filter": {
"enum": [
"all",
"requests"
],
"type": "string",
"default": "all",
"description": "all (default), or requests = open tracking requests only."
},
"company": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Which company to act for: its id, @handle or exact name (see list_companies). Omit for the connection's default company."
}
},
"additionalProperties": false
}{
"title": "Shipments shared with us",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}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.
{
"type": "object",
"required": [
"shipment"
],
"properties": {
"events": {
"type": "integer",
"default": 5,
"maximum": 50,
"minimum": 0,
"description": "How many of the latest events to include."
},
"company": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Which company to act for: its id, @handle or exact name (see list_companies). Omit for the connection's default company."
},
"shipment": {
"type": "string",
"maxLength": 64,
"minLength": 1,
"description": "BerthTime shipment id, or the tracked reference (container, bill of lading or booking number), or a container number on the shipment."
}
},
"additionalProperties": false
}{
"title": "Get shipment",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}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.
{
"type": "object",
"required": [
"shipment"
],
"properties": {
"limit": {
"type": "integer",
"default": 50,
"maximum": 500,
"minimum": 1,
"description": "Most recent N events (returned oldest first)."
},
"company": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Which company to act for: its id, @handle or exact name (see list_companies). Omit for the connection's default company."
},
"shipment": {
"type": "string",
"maxLength": 64,
"minLength": 1,
"description": "BerthTime shipment id, or the tracked reference (container, bill of lading or booking number), or a container number on the shipment."
},
"classifier": {
"enum": [
"ACT",
"EST",
"PLN"
],
"type": "string",
"description": "ACT actual, EST estimated, PLN planned. Default: all."
}
},
"additionalProperties": false
}{
"title": "Shipment events",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}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.
{
"type": "object",
"properties": {
"days": {
"type": "integer",
"default": 7,
"maximum": 120,
"minimum": 1,
"description": "Look-ahead window in days from now."
},
"limit": {
"type": "integer",
"default": 50,
"maximum": 200,
"minimum": 1,
"description": "Maximum shipments returned, 1-200 (default 50)."
},
"company": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Which company to act for: its id, @handle or exact name (see list_companies). Omit for the connection's default company."
}
},
"additionalProperties": false
}{
"title": "Arriving soon",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}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.
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 50,
"maximum": 200,
"minimum": 1,
"description": "Maximum shipments returned, 1-200 (default 50)."
},
"company": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Which company to act for: its id, @handle or exact name (see list_companies). Omit for the connection's default company."
},
"min_delay_hours": {
"type": "number",
"default": 24,
"maximum": 10000,
"minimum": 0,
"description": "Minimum ETA slip vs the first ETA seen, in hours."
}
},
"additionalProperties": false
}{
"title": "Delayed shipments",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}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.
{
"type": "object",
"required": [
"reference"
],
"properties": {
"reference": {
"type": "string",
"maxLength": 64,
"minLength": 3,
"description": "Container, bill of lading or booking number."
}
},
"additionalProperties": false
}{
"title": "Detect reference",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}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).
{
"type": "object",
"properties": {
"live_only": {
"type": "boolean",
"default": false,
"description": "Only carriers with live tracking today."
}
},
"additionalProperties": false
}{
"title": "List carriers",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}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}.
{
"type": "object",
"properties": {
"month": {
"type": "string",
"pattern": "^\\d{4}-(0[1-9]|1[0-2])$",
"description": "Calendar month YYYY-MM (UTC). Default: this month."
},
"company": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Which company to act for: its id, @handle or exact name (see list_companies). Omit for the connection's default company."
},
"include_shipments": {
"type": "boolean",
"default": false,
"description": "Also list the counted shipments."
}
},
"additionalProperties": false
}{
"title": "Plan and usage",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}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}}.
{
"type": "object",
"properties": {
"company": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Which company to act for: its id, @handle or exact name (see list_companies). Omit for the connection's default company."
},
"include_inactive": {
"type": "boolean",
"default": false,
"description": "Also list paused rules."
}
},
"additionalProperties": false
}{
"title": "Email alert rules",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}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.
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Maximum requests returned, 1-100 (default 20)."
},
"status": {
"enum": [
"active",
"open",
"pending",
"resolved",
"closed",
"all"
],
"type": "string",
"default": "active",
"description": "active = open + pending (default)"
},
"company": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Which company to act for: its id, @handle or exact name (see list_companies). Omit for the connection's default company."
}
},
"additionalProperties": false
}{
"title": "Support requests",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}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.
{
"type": "object",
"required": [
"reference"
],
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 20,
"description": "Labels for filtering."
},
"carrier": {
"type": "string",
"maxLength": 8,
"description": "Carrier SCAC. Auto-detected when omitted; required when detection fails (see list_carriers)."
},
"company": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Which company to act for: its id, @handle or exact name (see list_companies). Omit for the connection's default company."
},
"ref_type": {
"enum": [
"container",
"bl",
"booking"
],
"type": "string",
"description": "Auto-detected when omitted."
},
"bl_number": {
"type": "string",
"maxLength": 64,
"description": "Bill of lading number of the same shipment, e.g. with a container reference."
},
"reference": {
"type": "string",
"maxLength": 64,
"minLength": 4,
"description": "Container (ISO 6346, e.g. MSCU1234566), bill of lading or booking number."
},
"booking_number": {
"type": "string",
"maxLength": 64,
"description": "Booking number of the same shipment, e.g. with a container reference."
},
"customer_reference": {
"type": "string",
"maxLength": 200,
"description": "Your PO / order / file number."
}
},
"additionalProperties": false
}{
"title": "Track shipment",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}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.
{
"type": "object",
"required": [
"shipment"
],
"properties": {
"company": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Which company to act for: its id, @handle or exact name (see list_companies). Omit for the connection's default company."
},
"shipment": {
"type": "string",
"maxLength": 64,
"minLength": 1,
"description": "BerthTime shipment id, or the tracked reference (container, bill of lading or booking number), or a container number on the shipment."
},
"bl_number": {
"type": "string",
"maxLength": 64,
"description": "Bill of lading number to set or change; an empty string removes it. Omit to leave it as it is."
},
"containers": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 20,
"description": "Container numbers (ISO 6346) to add to the shipment. Numbers already on it are ignored."
},
"booking_number": {
"type": "string",
"maxLength": 64,
"description": "Booking number to set or change; an empty string removes it. Omit to leave it as it is."
}
},
"additionalProperties": false
}{
"title": "Set booking / B/L / containers",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}get_share_link — Get share link
The shipment's current public read-only tracking link (a URL anyone can open without logging in), if it has one. Use it before sending a link; use create_share_link when there is none. `shipment` (required) is the BerthTime id, the tracked reference, or a container number on the shipment. Returns: shipment_id, share_link {url, active, expires_at, view_count, ...} or null. Needs write access: a read + write API key, or read + write access granted at sign-in by an owner or admin of the company.
{
"type": "object",
"required": [
"shipment"
],
"properties": {
"company": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Which company to act for: its id, @handle or exact name (see list_companies). Omit for the connection's default company."
},
"shipment": {
"type": "string",
"maxLength": 64,
"minLength": 1,
"description": "BerthTime shipment id, or the tracked reference (container, bill of lading or booking number), or a container number on the shipment."
}
},
"additionalProperties": false
}{
"title": "Get share link",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}create_share_link — Create share link
Create a public read-only tracking link for a shipment, or return the active one (safe to repeat). Anyone with the URL sees status, ETA, route and events, but no tags or company data. Disable or regenerate it in the web app. `shipment` (required) is the BerthTime id, the tracked reference, or a container number on the shipment. Returns: shipment_id, created (false = the existing link), share_link {url, active, expires_at, view_count, ...}. New links need a paid plan (the Free plan gets 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.
{
"type": "object",
"required": [
"shipment"
],
"properties": {
"company": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Which company to act for: its id, @handle or exact name (see list_companies). Omit for the connection's default company."
},
"shipment": {
"type": "string",
"maxLength": 64,
"minLength": 1,
"description": "BerthTime shipment id, or the tracked reference (container, bill of lading or booking number), or a container number on the shipment."
}
},
"additionalProperties": false
}{
"title": "Create share link",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}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.
{
"type": "object",
"required": [
"subject",
"message"
],
"properties": {
"topic": {
"enum": [
"sales",
"support",
"billing",
"partnership",
"other"
],
"type": "string",
"default": "support",
"description": "What the request is about (default support)."
},
"company": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Which company to act for: its id, @handle or exact name (see list_companies). Omit for the connection's default company."
},
"message": {
"type": "string",
"maxLength": 20000,
"minLength": 1,
"description": "What the user needs help with, in plain text."
},
"subject": {
"type": "string",
"maxLength": 200,
"minLength": 3,
"description": "Short summary of the request, e.g. 'Wrong ETA on MSCU1234566'."
},
"priority": {
"enum": [
"normal",
"high"
],
"type": "string",
"default": "normal",
"description": "high only when the user says it is urgent (default normal)."
}
},
"additionalProperties": false
}{
"title": "Contact BerthTime support",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}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.
{
"type": "object",
"required": [
"shipment"
],
"properties": {
"company": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Which company to act for: its id, @handle or exact name (see list_companies). Omit for the connection's default company."
},
"shipment": {
"type": "string",
"maxLength": 64,
"minLength": 1,
"description": "BerthTime shipment id, or the tracked reference (container, bill of lading or booking number), or a container number on the shipment."
}
},
"additionalProperties": false
}{
"title": "Archive shipment",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1676 ms
- 95th percentile latency
- 1676 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1676 ms · metadata changed · 18 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http berthtime-mcp https://berthtime.com/api/v1/mcpCodex
codex mcp add berthtime-mcp --url https://berthtime.com/api/v1/mcpCursor
{
"mcpServers": {
"berthtime-mcp": {
"url": "https://berthtime.com/api/v1/mcp"
}
}
}Cline
{
"mcpServers": {
"berthtime-mcp": {
"type": "streamableHttp",
"url": "https://berthtime.com/api/v1/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"berthtime-mcp": {
"type": "http",
"url": "https://berthtime.com/api/v1/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http berthtime-mcp https://berthtime.com/api/v1/mcpClaude Desktop
https://berthtime.com/api/v1/mcpWindsurf
{
"mcpServers": {
"berthtime-mcp": {
"serverUrl": "https://berthtime.com/api/v1/mcp"
}
}
}Let your agent find its tools
Find servers like BerthTime MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other data and analytics servers
Do you run BerthTime MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.