ShipsGo MCP by usefulapi
Track ocean containers and air cargo, read their routes, and manage shipments in ShipsGo.
Should I use this
Quality & Safety
Findings (2)
- LOWin shipsgo_update_ocean_shipment
- LOWin shipsgo_update_air_shipment
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"shipsgo": {
"url": "https://shipsgo.usefulapi.io/mcp"
}
}
}Remote endpoints
https://shipsgo.usefulapi.io/mcpstreamable-httpWhat it can do
Tool inventory
Tools (13)
🟢shipsgo_list_ocean_carriers(filters, order_by, skip, take)
List the ocean carriers ShipsGo supports, with their SCAC codes and status. Use the codes in ocean shipment tools. ShipsGo API: GET /v2/ocean/carriers.
Input Schema
{
"type": "object",
"properties": {
"filters": {
"description": "Filters as field → 'operator:value' pairs, for example { \"status\": \"in:NEW,BOOKED\" }. Operators: eq, not_eq, in, not_in, contains, not_contains, gt, gte, lt, lte, between. Fields include status, carrier, container_number, booking_number, reference, port_of_loading, date_of_loading.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
},
"order_by": {
"description": "Sort as 'field,direction', for example 'created_at,desc' (default created_at,desc).",
"type": "string"
},
"skip": {
"description": "Records to skip (default 0).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"take": {
"description": "Records to return, 1 to 100 (default 25).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢shipsgo_list_ocean_shipments(filters, order_by, skip, take)
List ocean container shipments on the account with status, carrier, route and dates. Filter by status, carrier, reference or container number. A sub-account with the Co-Worker role sees only its own shipments. ShipsGo API: GET /v2/ocean/shipments.
Input Schema
{
"type": "object",
"properties": {
"filters": {
"description": "Filters as field → 'operator:value' pairs, for example { \"status\": \"in:NEW,BOOKED\" }. Operators: eq, not_eq, in, not_in, contains, not_contains, gt, gte, lt, lte, between. Fields include status, carrier, container_number, booking_number, reference, port_of_loading, date_of_loading.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
},
"order_by": {
"description": "Sort as 'field,direction', for example 'created_at,desc' (default created_at,desc).",
"type": "string"
},
"skip": {
"description": "Records to skip (default 0).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"take": {
"description": "Records to return, 1 to 100 (default 25).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢shipsgo_get_ocean_shipment(shipment_id)
Get one ocean shipment with its status, containers, carrier and movement events. ShipsGo API: GET /v2/ocean/shipments/{shipment_id}.
Input Schema
{
"type": "object",
"properties": {
"shipment_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Shipment id, from a list or create tool."
}
},
"required": [
"shipment_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢shipsgo_get_ocean_route(shipment_id)
Get the route of one ocean shipment as GeoJSON (ports and track points). ShipsGo API: GET /v2/ocean/shipments/{shipment_id}/geojson.
Input Schema
{
"type": "object",
"properties": {
"shipment_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Shipment id, from a list or create tool."
}
},
"required": [
"shipment_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡shipsgo_create_ocean_shipment(reference, carrier, booking_number, container_number)
Start tracking an ocean shipment by booking number or container number. Creating a shipment uses account credits (HTTP 402 when none are left). A repeat with the same reference and booking number (or container number when no booking number is given) returns HTTP 409 with the existing shipment, at no cost. ShipsGo API: POST /v2/ocean/shipments.
Input Schema
{
"type": "object",
"properties": {
"reference": {
"description": "Your own reference, 5 to 128 characters. It is also the default title of tracking emails.",
"type": "string",
"minLength": 5,
"maxLength": 128
},
"carrier": {
"type": "string",
"pattern": "^(SG_)?[A-Z0-9]{4}$",
"description": "Carrier SCAC code, for example MSCU. List codes with shipsgo_list_ocean_carriers."
},
"booking_number": {
"description": "Ocean booking number, for example MEDUQY000000.",
"type": "string",
"pattern": "^[a-zA-Z0-9/-]+$"
},
"container_number": {
"description": "Container number, for example MSCU1234567.",
"type": "string",
"pattern": "^[A-Z]{4}[0-9]{7}$"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡shipsgo_update_ocean_shipment(shipment_id, reference)
Change the reference of an ocean shipment. Only the reference can be changed here. ShipsGo API: PATCH /v2/ocean/shipments/{shipment_id}.
Input Schema
{
"type": "object",
"properties": {
"shipment_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Shipment id, from a list or create tool."
},
"reference": {
"type": "string",
"description": "The new reference for the shipment."
}
},
"required": [
"shipment_id",
"reference"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴shipsgo_delete_ocean_shipment(shipment_id)
Delete an ocean shipment from the account. Tracking stops and the shipment cannot be restored by this server. ShipsGo API: DELETE /v2/ocean/shipments/{shipment_id}.
Input Schema
{
"type": "object",
"properties": {
"shipment_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Shipment id, from a list or create tool."
}
},
"required": [
"shipment_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢shipsgo_list_air_shipments(filters, order_by, skip, take)
List air cargo shipments on the account with status and dates. Filter by status, reference or AWB number. A sub-account with the Co-Worker role sees only its own shipments. ShipsGo API: GET /v2/air/shipments.
Input Schema
{
"type": "object",
"properties": {
"filters": {
"description": "Filters as field → 'operator:value' pairs, for example { \"status\": \"in:NEW,BOOKED\" }. Operators: eq, not_eq, in, not_in, contains, not_contains, gt, gte, lt, lte, between. Fields include status, carrier, container_number, booking_number, reference, port_of_loading, date_of_loading.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
},
"order_by": {
"description": "Sort as 'field,direction', for example 'created_at,desc' (default created_at,desc).",
"type": "string"
},
"skip": {
"description": "Records to skip (default 0).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"take": {
"description": "Records to return, 1 to 100 (default 25).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢shipsgo_get_air_shipment(shipment_id)
Get one air shipment with its status, movements and AWB details. ShipsGo API: GET /v2/air/shipments/{shipment_id}.
Input Schema
{
"type": "object",
"properties": {
"shipment_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Shipment id, from a list or create tool."
}
},
"required": [
"shipment_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢shipsgo_get_air_route(shipment_id)
Get the route of one air shipment as GeoJSON (airports and track points). ShipsGo API: GET /v2/air/shipments/{shipment_id}/geojson.
Input Schema
{
"type": "object",
"properties": {
"shipment_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Shipment id, from a list or create tool."
}
},
"required": [
"shipment_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡shipsgo_create_air_shipment(awb_number, reference)
Start tracking an air cargo shipment by AWB number. Creating a shipment uses account credits (HTTP 402 when none are left). A repeat with the same AWB number (and the same reference, when one is given) returns HTTP 409 with the existing shipment, at no cost. ShipsGo API: POST /v2/air/shipments.
Input Schema
{
"type": "object",
"properties": {
"awb_number": {
"type": "string",
"pattern": "^[0-9]{3}(-)?[0-9]{8}$",
"description": "Air waybill number, for example 333-88888888."
},
"reference": {
"description": "Your own reference, 5 to 128 characters.",
"type": "string",
"minLength": 5,
"maxLength": 128
}
},
"required": [
"awb_number"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡shipsgo_update_air_shipment(shipment_id, reference)
Change the reference of an air shipment. Only the reference can be changed here. ShipsGo API: PATCH /v2/air/shipments/{shipment_id}.
Input Schema
{
"type": "object",
"properties": {
"shipment_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Shipment id, from a list or create tool."
},
"reference": {
"type": "string",
"description": "The new reference for the shipment."
}
},
"required": [
"shipment_id",
"reference"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴shipsgo_delete_air_shipment(shipment_id)
Delete an air shipment from the account. Tracking stops and the shipment cannot be restored by this server. ShipsGo API: DELETE /v2/air/shipments/{shipment_id}.
Input Schema
{
"type": "object",
"properties": {
"shipment_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Shipment id, from a list or create tool."
}
},
"required": [
"shipment_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence