ShipsGo MCP by usefulapi

Track ocean containers and air cargo, read their routes, and manage shipments in ShipsGo.

Should I use this

Quality & Safety

A
Description quality
95%
Schema completeness
97%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (2)

  • LOWTool 'shipsgo_update_ocean_shipment' description lacks action verbin shipsgo_update_ocean_shipment
  • LOWTool 'shipsgo_update_air_shipment' description lacks action verbin shipsgo_update_air_shipment

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,544Tokens (tool definitions)
~1.3 KBTypical response size
Moderate attention impact (1.99% of 128k context)

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-http

What it can do

Tool inventory

Tools (13)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded13 tools