Skip to main content
Glama

Where a vessel has been

get_vessel_track
Read-onlyIdempotent

The positions heard from one vessel over a time range, oldest first, with speed, course, and navigational status. Positions implying an impossible speed for the vessel are left out. Use for where a ship was yesterday, when it left port, or its route today. Give the vessel's mmsi, or its imo with a feeder or partner token. A call covers up to a year. By default the track is simplified by shape: the positions that hold its path, with breaks where the vessel went unheard; interval_minutes asks for even spacing instead.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
toNoend, RFC 3339 UTC; default now
imoNothe vessel's IMO number, instead of mmsi; needs a feeder or partner token. Follows the one vessel the IMO names: its only MMSI, or the only one heard in the last 30 days
fromNostart, RFC 3339 UTC; default 24 hours before to. A call covers up to 366 days
mmsiNothe vessel's MMSI; give mmsi or imo. Use search_vessels_by_name first when you only have a name
limitNopositions to return: default 50, maximum 200; when more match, the newest are kept
interval_minutesNoat most one position per this many minutes, evenly spaced; by default the track is simplified by shape instead, keeping the positions that hold its path. Anonymous and personal calls reaching past 48 hours are rounded up to whole minutes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
toYes
fromYesstart of the range covered
mmsiYes
nameNo
breaksNosimplified, always present and empty when the vessel was heard throughout: indexes of positions that start a stretch after it went unheard; draw no line into them
positionsYesoldest first
truncatedYestrue when positions were left out: simplified, the tolerance rose past 15 m to fit the limit, or the range held more than 50,000 positions and the oldest were not read; by interval, the newest were kept, so set from later or raise interval_minutes
interval_sYesat most one position per this many seconds; 0 is every position heard. Simplified, the resolution the positions were read at
simplifiedYestrue when the track was simplified by shape: the positions that hold its path, not evenly spaced
attributionYescredit line per source kind in the positions, to show with the data
tolerance_mNosimplified: every position left out lay within this many meters of the line through the ones kept

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedInput schema / properties / imo
      Added value: +{
      +  "description": "the vessel's IMO number, instead of mmsi; needs a feeder or partner token. Follows the one vessel the IMO names: its only MMSI, or the only one heard in the last 30 days",
      +  "maximum": 4294967295,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • changedInput schema / properties / mmsi / description
      Previous value: -"the vessel's MMSI; use search_vessels_by_name first when you only have a name"New value: +"the vessel's MMSI; give mmsi or imo. Use search_vessels_by_name first when you only have a name"
    • removedInput schema / required
      Removed value: -[
      -  "mmsi"
      -]
  2. Changed7 schema fields changed
    • changedInput schema / properties / interval_minutes / description
      Previous value: -"at most one position per this many minutes; by default the limit is spread over the range at a round spacing, reported as interval_s. Anonymous and personal calls reaching past 48 hours are rounded up to whole minutes"New value: +"at most one position per this many minutes, evenly spaced; by default the track is simplified by shape instead, keeping the positions that hold its path. Anonymous and personal calls reaching past 48 hours are rounded up to whole minutes"
    • addedOutput schema / properties / breaks
      Added value: +{
      +  "description": "simplified, always present and empty when the vessel was heard throughout: indexes of positions that start a stretch after it went unheard; draw no line into them",
      +  "items": {
      +    "type": "integer"
      +  },
      +  "type": [
      +    "null",
      +    "array"
      +  ]
      +}
    • changedOutput schema / properties / interval_s / description
      Previous value: -"at most one position per this many seconds; 0 is every position heard"New value: +"at most one position per this many seconds; 0 is every position heard. Simplified, the resolution the positions were read at"
    • addedOutput schema / properties / simplified
      Added value: +{
      +  "description": "true when the track was simplified by shape: the positions that hold its path, not evenly spaced",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / tolerance_m
      Added value: +{
      +  "description": "simplified: every position left out lay within this many meters of the line through the ones kept",
      +  "type": [
      +    "null",
      +    "number"
      +  ]
      +}
    • changedOutput schema / properties / truncated / description
      Previous value: -"true when more positions matched than were returned; the newest were kept, so set from later or raise interval_minutes"New value: +"true when positions were left out: simplified, the tolerance rose past 15 m to fit the limit, or the range held more than 50,000 positions and the oldest were not read; by interval, the newest were kept, so set from later or raise interval_minutes"
    • changedOutput schema / required
      Previous value: -[
      -  "mmsi",
      -  "from",
      -  "to",
      -  "interval_s",
      -  "positions",
      -  "truncated",
      -  "attribution"
      -]New value: +[
      +  "mmsi",
      +  "from",
      +  "to",
      +  "interval_s",
      +  "simplified",
      +  "positions",
      +  "truncated",
      +  "attribution"
      +]
  3. Changed3 schema fields changed
    • changedInput schema / properties / from / description
      Previous value: -"start, RFC 3339 UTC; default 24 hours before to. Anonymous and personal calls reach back 48 hours; feeder and commercial tokens reach the archive, up to 366 days per call"New value: +"start, RFC 3339 UTC; default 24 hours before to. A call covers up to 366 days"
    • changedInput schema / properties / interval_minutes / description
      Previous value: -"at most one position per this many minutes; by default the limit is spread over the range at a round spacing, reported as interval_s"New value: +"at most one position per this many minutes; by default the limit is spread over the range at a round spacing, reported as interval_s. Anonymous and personal calls reaching past 48 hours are rounded up to whole minutes"
    • changedOutput schema / properties / from / description
      Previous value: -"start of the range covered, after clamping to what the caller can reach: the last 48 hours, or the archive for feeder and commercial tokens"New value: +"start of the range covered"
  4. Changed1 schema field changed
    • changedInput schema / properties / from / description
      Previous value: -"start, RFC 3339 UTC; default 24 hours before to. Anonymous and personal calls reach back 48 hours; feeder and commercial tokens reach the archive, up to 7 days per call"New value: +"start, RFC 3339 UTC; default 24 hours before to. Anonymous and personal calls reach back 48 hours; feeder and commercial tokens reach the archive, up to 366 days per call"
  5. Changed5 schema fields changed
    • changedInput schema / properties / from / description
      Previous value: -"start, RFC 3339 UTC; default 24 hours before to. Positions reach back 48 hours"New value: +"start, RFC 3339 UTC; default 24 hours before to. Anonymous and personal calls reach back 48 hours; feeder and commercial tokens reach the archive, up to 7 days per call"
    • changedInput schema / properties / interval_minutes / description
      Previous value: -"at most one position per this many minutes; by default the positions are spread evenly over the range"New value: +"at most one position per this many minutes; by default the limit is spread over the range at a round spacing, reported as interval_s"
    • changedOutput schema / properties / from / description
      Previous value: -"start of the range covered, after clamping to the last 48 hours"New value: +"start of the range covered, after clamping to what the caller can reach: the last 48 hours, or the archive for feeder and commercial tokens"
    • addedOutput schema / properties / interval_s
      Added value: +{
      +  "description": "at most one position per this many seconds; 0 is every position heard",
      +  "type": "integer"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "mmsi",
      -  "from",
      -  "to",
      -  "positions",
      -  "truncated",
      -  "attribution"
      -]New value: +[
      +  "mmsi",
      +  "from",
      +  "to",
      +  "interval_s",
      +  "positions",
      +  "truncated",
      +  "attribution"
      +]
  6. Added

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.