Open Waters AIS
Live AIS vessel positions by MMSI, name, area, or radius, plus coverage. No sign-in, no key.
我該用這個嗎
品質與安全性
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"ais": {
"url": "https://ais.openwaters.io/mcp"
}
}
}遠端端點
https://ais.openwaters.io/mcpstreamable-http它能做什麼
工具清單
工具(6)
🟢find_vessels_in_area(bbox, kind, flag, types, limit)
Vessels currently inside a latitude/longitude bounding box, newest report first, with optional kind and ship-type filters. Use for what is in a port, a strait, or a stretch of coast. Anonymous calls may cover 100 square degrees per call.
輸入結構描述
{
"type": "object",
"properties": {
"bbox": {
"type": "object",
"properties": {
"min_lat": {
"type": "number",
"description": "south edge, degrees, -90 to 90"
},
"min_lon": {
"type": "number",
"description": "west edge, degrees, -180 to 180"
},
"max_lat": {
"type": "number",
"description": "north edge, degrees, -90 to 90"
},
"max_lon": {
"type": "number",
"description": "east edge, degrees, -180 to 180"
}
},
"required": [
"min_lat",
"min_lon",
"max_lat",
"max_lon"
],
"additionalProperties": false
},
"kind": {
"type": "string",
"description": "only this kind: vessel, aton (aid to navigation), base (base station), or sar (search and rescue aircraft)"
},
"flag": {
"type": "string",
"description": "only vessels flying this flag: ISO 3166-1 alpha-2, e.g. NO, FI, MH"
},
"types": {
"type": [
"null",
"array"
],
"items": {
"type": "integer",
"minimum": 0,
"maximum": 255
},
"description": "only these ITU ship type codes, e.g. 30 fishing, 36 sailing, 37 pleasure craft, 52 tug, 60 passenger, 70 cargo, 80 tanker; a code ending in 0 matches its decade, so 70 matches 70 to 79"
},
"limit": {
"type": "integer",
"description": "rows to return: default 50, maximum 200"
}
},
"required": [
"bbox"
],
"additionalProperties": false
}輸出結構描述
{
"type": "object",
"properties": {
"vessels": {
"type": [
"null",
"array"
],
"items": {
"type": "object",
"properties": {
"mmsi": {
"type": "integer",
"minimum": 0,
"maximum": 4294967295
},
"name": {
"type": "string",
"description": "name from the vessel's static data, when heard"
},
"kind": {
"type": "string",
"description": "vessel, aton (aid to navigation), base (base station), or sar (search and rescue aircraft)"
},
"type": {
"type": "integer",
"description": "ITU ship and cargo type code, or the aid type for an aton",
"minimum": 0,
"maximum": 255
},
"type_name": {
"type": "string"
},
"lat": {
"type": [
"null",
"number"
],
"description": "latitude of the last position, degrees; absent when no position has been heard"
},
"lon": {
"type": [
"null",
"number"
],
"description": "longitude of the last position, degrees"
},
"cog": {
"type": [
"null",
"number"
],
"description": "course over ground, degrees true"
},
"sog": {
"type": [
"null",
"number"
],
"description": "speed over ground, knots"
},
"heading": {
"type": [
"null",
"integer"
],
"description": "true heading, degrees",
"minimum": 0,
"maximum": 65535
},
"nav_status": {
"type": [
"null",
"integer"
],
"description": "AIS navigational status code",
"minimum": 0,
"maximum": 255
},
"nav_status_name": {
"type": "string"
},
"flag": {
"type": "string",
"description": "ISO 3166-1 alpha-2 code of the flag state, from the MMSI's maritime identification digits"
},
"imo": {
"type": "integer",
"description": "IMO number, once the vessel's static data has been heard",
"minimum": 0,
"maximum": 4294967295
},
"callsign": {
"type": "string"
},
"destination": {
"type": "string",
"description": "destination as typed by the crew: a port name, a UN/LOCODE, or nothing useful"
},
"eta": {
"type": "string",
"description": "estimated arrival as sent, MM-DD HH:MM UTC or MM-DD; AIS carries no year, so read it as the next occurrence"
},
"draught": {
"type": [
"null",
"number"
],
"description": "maximum static draught, metres"
},
"length": {
"type": [
"null",
"integer"
],
"description": "overall length, metres",
"minimum": 0,
"maximum": 65535
},
"beam": {
"type": [
"null",
"integer"
],
"description": "beam, metres",
"minimum": 0,
"maximum": 65535
},
"seen": {
"type": "string",
"description": "time of the last message heard, RFC 3339 UTC"
},
"age_s": {
"type": "integer",
"description": "seconds since seen"
},
"source": {
"type": "string",
"description": "feed or station kind the last message came from"
},
"station": {
"type": "string"
},
"distance_nm": {
"type": [
"null",
"number"
],
"description": "nautical miles from the search centre (find_vessels_near)"
},
"bearing": {
"type": [
"null",
"number"
],
"description": "degrees true from the search centre to the vessel (find_vessels_near)"
}
},
"required": [
"mmsi",
"kind",
"seen",
"age_s",
"source",
"station"
],
"additionalProperties": false
}
},
"total": {
"type": "integer",
"description": "vessels matched before the limit was applied"
},
"truncated": {
"type": "boolean",
"description": "true when total exceeds the rows returned; narrow the query or raise limit"
},
"unknown_mmsi": {
"type": [
"null",
"array"
],
"items": {
"type": "integer",
"minimum": 0,
"maximum": 4294967295
},
"description": "requested MMSIs matching no vessel the network has heard"
},
"unknown_imo": {
"type": [
"null",
"array"
],
"items": {
"type": "integer",
"minimum": 0,
"maximum": 4294967295
},
"description": "requested IMO numbers matching no vessel the network has heard"
},
"attribution": {
"type": "object",
"description": "credit line per source kind in the rows, to show with the data",
"additionalProperties": {
"type": "string"
}
}
},
"required": [
"vessels",
"total",
"truncated",
"attribution"
],
"additionalProperties": false
}🟢find_vessels_near(lat, lon, mmsi, radius_nm, kind, ...)
Vessels within a radius (default 10 NM, maximum 50) of a point or of another vessel's last known position, nearest first, each with distance and bearing from the centre. Use for what is near this position or what is around vessel X.
輸入結構描述
{
"type": "object",
"properties": {
"lat": {
"type": [
"null",
"number"
],
"description": "centre latitude, degrees; give lat and lon, or mmsi"
},
"lon": {
"type": [
"null",
"number"
],
"description": "centre longitude, degrees"
},
"mmsi": {
"type": "integer",
"description": "centre on this vessel's last position instead of lat and lon; the vessel itself is left out of the results",
"minimum": 0,
"maximum": 4294967295
},
"radius_nm": {
"type": "number",
"description": "search radius in nautical miles: default 10, maximum 50"
},
"kind": {
"type": "string",
"description": "only this kind: vessel, aton, base, or sar"
},
"flag": {
"type": "string",
"description": "only vessels flying this flag: ISO 3166-1 alpha-2, e.g. NO, FI, MH"
},
"types": {
"type": [
"null",
"array"
],
"items": {
"type": "integer",
"minimum": 0,
"maximum": 255
},
"description": "only these ITU ship type codes; a code ending in 0 matches its decade"
},
"limit": {
"type": "integer",
"description": "rows to return: default 50, maximum 200"
}
},
"additionalProperties": false
}輸出結構描述
{
"type": "object",
"properties": {
"vessels": {
"type": [
"null",
"array"
],
"items": {
"type": "object",
"properties": {
"mmsi": {
"type": "integer",
"minimum": 0,
"maximum": 4294967295
},
"name": {
"type": "string",
"description": "name from the vessel's static data, when heard"
},
"kind": {
"type": "string",
"description": "vessel, aton (aid to navigation), base (base station), or sar (search and rescue aircraft)"
},
"type": {
"type": "integer",
"description": "ITU ship and cargo type code, or the aid type for an aton",
"minimum": 0,
"maximum": 255
},
"type_name": {
"type": "string"
},
"lat": {
"type": [
"null",
"number"
],
"description": "latitude of the last position, degrees; absent when no position has been heard"
},
"lon": {
"type": [
"null",
"number"
],
"description": "longitude of the last position, degrees"
},
"cog": {
"type": [
"null",
"number"
],
"description": "course over ground, degrees true"
},
"sog": {
"type": [
"null",
"number"
],
"description": "speed over ground, knots"
},
"heading": {
"type": [
"null",
"integer"
],
"description": "true heading, degrees",
"minimum": 0,
"maximum": 65535
},
"nav_status": {
"type": [
"null",
"integer"
],
"description": "AIS navigational status code",
"minimum": 0,
"maximum": 255
},
"nav_status_name": {
"type": "string"
},
"flag": {
"type": "string",
"description": "ISO 3166-1 alpha-2 code of the flag state, from the MMSI's maritime identification digits"
},
"imo": {
"type": "integer",
"description": "IMO number, once the vessel's static data has been heard",
"minimum": 0,
"maximum": 4294967295
},
"callsign": {
"type": "string"
},
"destination": {
"type": "string",
"description": "destination as typed by the crew: a port name, a UN/LOCODE, or nothing useful"
},
"eta": {
"type": "string",
"description": "estimated arrival as sent, MM-DD HH:MM UTC or MM-DD; AIS carries no year, so read it as the next occurrence"
},
"draught": {
"type": [
"null",
"number"
],
"description": "maximum static draught, metres"
},
"length": {
"type": [
"null",
"integer"
],
"description": "overall length, metres",
"minimum": 0,
"maximum": 65535
},
"beam": {
"type": [
"null",
"integer"
],
"description": "beam, metres",
"minimum": 0,
"maximum": 65535
},
"seen": {
"type": "string",
"description": "time of the last message heard, RFC 3339 UTC"
},
"age_s": {
"type": "integer",
"description": "seconds since seen"
},
"source": {
"type": "string",
"description": "feed or station kind the last message came from"
},
"station": {
"type": "string"
},
"distance_nm": {
"type": [
"null",
"number"
],
"description": "nautical miles from the search centre (find_vessels_near)"
},
"bearing": {
"type": [
"null",
"number"
],
"description": "degrees true from the search centre to the vessel (find_vessels_near)"
}
},
"required": [
"mmsi",
"kind",
"seen",
"age_s",
"source",
"station"
],
"additionalProperties": false
}
},
"total": {
"type": "integer",
"description": "vessels matched before the limit was applied"
},
"truncated": {
"type": "boolean",
"description": "true when total exceeds the rows returned; narrow the query or raise limit"
},
"unknown_mmsi": {
"type": [
"null",
"array"
],
"items": {
"type": "integer",
"minimum": 0,
"maximum": 4294967295
},
"description": "requested MMSIs matching no vessel the network has heard"
},
"unknown_imo": {
"type": [
"null",
"array"
],
"items": {
"type": "integer",
"minimum": 0,
"maximum": 4294967295
},
"description": "requested IMO numbers matching no vessel the network has heard"
},
"attribution": {
"type": "object",
"description": "credit line per source kind in the rows, to show with the data",
"additionalProperties": {
"type": "string"
}
}
},
"required": [
"vessels",
"total",
"truncated",
"attribution"
],
"additionalProperties": false
}🟢get_coverage(bbox, station)
Where Open Waters AIS is hearing AIS right now: sources with their current delay, stations, freshness, and vessel counts. Pass a bounding box to learn which stations cover it and how many vessels are in it, or a station id for that station's numbers. Call this before saying a region has no traffic.
輸入結構描述
{
"type": "object",
"properties": {
"bbox": {
"type": [
"null",
"object"
],
"properties": {
"min_lat": {
"type": "number",
"description": "south edge, degrees, -90 to 90"
},
"min_lon": {
"type": "number",
"description": "west edge, degrees, -180 to 180"
},
"max_lat": {
"type": "number",
"description": "north edge, degrees, -90 to 90"
},
"max_lon": {
"type": "number",
"description": "east edge, degrees, -180 to 180"
}
},
"description": "report the stations covering this box and the vessels currently in it",
"required": [
"min_lat",
"min_lon",
"max_lat",
"max_lon"
],
"additionalProperties": false
},
"station": {
"type": "string",
"description": "a station id from an earlier result, for that station's numbers"
}
},
"additionalProperties": false
}輸出結構描述
{
"type": "object",
"properties": {
"time": {
"type": "string"
},
"summary": {
"type": "string"
},
"sources": {
"type": [
"null",
"array"
],
"items": {
"type": "object",
"properties": {
"kind": {
"type": "string"
},
"description": {
"type": "string"
},
"vessels": {
"type": "integer",
"description": "distinct vessels heard from this source in the last 30 minutes"
},
"vessels_exclusive": {
"type": "integer",
"description": "of those, heard by no other source"
},
"events_24h": {
"type": "integer"
},
"last_age_s": {
"type": "integer",
"description": "seconds since the source last delivered a message"
},
"delay": {
"type": [
"null",
"object"
],
"properties": {
"p50": {
"type": "number",
"description": "median delay in seconds"
},
"p99": {
"type": "number",
"description": "99th percentile delay in seconds"
}
},
"description": "seconds from broadcast to arrival over the last position reports from this source",
"required": [
"p50",
"p99"
],
"additionalProperties": false
},
"license": {
"type": "string"
},
"attribution": {
"type": "string"
}
},
"required": [
"kind",
"vessels",
"vessels_exclusive",
"events_24h",
"last_age_s",
"license",
"attribution"
],
"additionalProperties": false
}
},
"stations": {
"type": "object",
"properties": {
"total": {
"type": "integer"
},
"active": {
"type": "integer",
"description": "heard within the last 5 minutes"
}
},
"required": [
"total",
"active"
],
"additionalProperties": false
},
"vessels": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"description": "vessels heard in the last 30 minutes"
},
"with_position": {
"type": "integer"
}
},
"required": [
"total",
"with_position"
],
"additionalProperties": false
},
"events_per_second": {
"type": "number"
},
"area": {
"type": [
"null",
"object"
],
"properties": {
"bbox": {
"type": "object",
"properties": {
"min_lat": {
"type": "number",
"description": "south edge, degrees, -90 to 90"
},
"min_lon": {
"type": "number",
"description": "west edge, degrees, -180 to 180"
},
"max_lat": {
"type": "number",
"description": "north edge, degrees, -90 to 90"
},
"max_lon": {
"type": "number",
"description": "east edge, degrees, -180 to 180"
}
},
"required": [
"min_lat",
"min_lon",
"max_lat",
"max_lon"
],
"additionalProperties": false
},
"vessels": {
"type": "integer",
"description": "vessels with a position inside the box"
},
"stations": {
"type": [
"null",
"array"
],
"items": {
"type": "object",
"properties": {
"station": {
"type": "string"
},
"source": {
"type": "string"
},
"vessels": {
"type": "integer",
"description": "distinct vessels heard in the last 30 minutes"
},
"events_24h": {
"type": "integer"
},
"last_age_s": {
"type": "integer"
},
"bbox": {
"type": [
"null",
"object"
],
"properties": {
"min_lat": {
"type": "number",
"description": "south edge, degrees, -90 to 90"
},
"min_lon": {
"type": "number",
"description": "west edge, degrees, -180 to 180"
},
"max_lat": {
"type": "number",
"description": "north edge, degrees, -90 to 90"
},
"max_lon": {
"type": "number",
"description": "east edge, degrees, -180 to 180"
}
},
"description": "extent of the positions this station has heard",
"required": [
"min_lat",
"min_lon",
"max_lat",
"max_lon"
],
"additionalProperties": false
}
},
"required": [
"station",
"source",
"vessels",
"events_24h",
"last_age_s"
],
"additionalProperties": false
},
"description": "stations whose heard extent overlaps the box"
}
},
"required": [
"bbox",
"vessels",
"stations"
],
"additionalProperties": false
},
"station": {
"type": [
"null",
"object"
],
"properties": {
"station": {
"type": "string"
},
"source": {
"type": "string"
},
"vessels": {
"type": "integer",
"description": "distinct vessels heard in the last 30 minutes"
},
"events_24h": {
"type": "integer"
},
"last_age_s": {
"type": "integer"
},
"bbox": {
"type": [
"null",
"object"
],
"properties": {
"min_lat": {
"type": "number",
"description": "south edge, degrees, -90 to 90"
},
"min_lon": {
"type": "number",
"description": "west edge, degrees, -180 to 180"
},
"max_lat": {
"type": "number",
"description": "north edge, degrees, -90 to 90"
},
"max_lon": {
"type": "number",
"description": "east edge, degrees, -180 to 180"
}
},
"description": "extent of the positions this station has heard",
"required": [
"min_lat",
"min_lon",
"max_lat",
"max_lon"
],
"additionalProperties": false
}
},
"required": [
"station",
"source",
"vessels",
"events_24h",
"last_age_s"
],
"additionalProperties": false
},
"note": {
"type": "string"
}
},
"required": [
"time",
"summary",
"sources",
"stations",
"vessels",
"events_per_second"
],
"additionalProperties": false
}🟢get_vessel_track(mmsi, from, to, interval_minutes, limit)
The positions heard from one vessel over a time range in the last 48 hours, oldest first, with speed, course, and navigational status. Use for where a ship was yesterday, when it left port, or its route today. By default the positions are spread evenly over the range; interval_minutes sets the spacing.
輸入結構描述
{
"type": "object",
"properties": {
"mmsi": {
"type": "integer",
"description": "the vessel's MMSI; use search_vessels_by_name first when you only have a name",
"minimum": 0,
"maximum": 4294967295
},
"from": {
"type": "string",
"description": "start, RFC 3339 UTC; default 24 hours before to. Positions reach back 48 hours"
},
"to": {
"type": "string",
"description": "end, RFC 3339 UTC; default now"
},
"interval_minutes": {
"type": "integer",
"description": "at most one position per this many minutes; by default the positions are spread evenly over the range"
},
"limit": {
"type": "integer",
"description": "positions to return: default 50, maximum 200; when more match, the newest are kept"
}
},
"required": [
"mmsi"
],
"additionalProperties": false
}輸出結構描述
{
"type": "object",
"properties": {
"mmsi": {
"type": "integer",
"minimum": 0,
"maximum": 4294967295
},
"name": {
"type": "string"
},
"from": {
"type": "string",
"description": "start of the range covered, after clamping to the last 48 hours"
},
"to": {
"type": "string"
},
"positions": {
"type": [
"null",
"array"
],
"items": {
"type": "object",
"properties": {
"seen": {
"type": "string",
"description": "time of the report, RFC 3339 UTC"
},
"lat": {
"type": "number"
},
"lon": {
"type": "number"
},
"sog": {
"type": [
"null",
"number"
],
"description": "speed over ground, knots"
},
"cog": {
"type": [
"null",
"number"
],
"description": "course over ground, degrees true"
},
"heading": {
"type": [
"null",
"integer"
],
"description": "true heading, degrees",
"minimum": 0,
"maximum": 65535
},
"nav_status": {
"type": [
"null",
"integer"
],
"description": "AIS navigational status code",
"minimum": 0,
"maximum": 255
},
"nav_status_name": {
"type": "string"
}
},
"required": [
"seen",
"lat",
"lon"
],
"additionalProperties": false
},
"description": "oldest first"
},
"truncated": {
"type": "boolean",
"description": "true when more positions matched than were returned; the newest were kept, so set from later or raise interval_minutes"
},
"attribution": {
"type": "object",
"description": "credit line per source kind in the positions, to show with the data",
"additionalProperties": {
"type": "string"
}
}
},
"required": [
"mmsi",
"from",
"to",
"positions",
"truncated",
"attribution"
],
"additionalProperties": false
}🟢get_vessels(mmsi, imo)
Last known position and particulars of specific vessels by MMSI (Maritime Mobile Service Identity) or IMO number: the last report heard for each, however long ago, with destination, ETA, draught, and dimensions once its static data has been heard, and which identifiers match no vessel the network has heard. Use search_vessels_by_name first when you only have a name.
輸入結構描述
{
"type": "object",
"properties": {
"mmsi": {
"type": [
"null",
"array"
],
"items": {
"type": "integer",
"minimum": 0,
"maximum": 4294967295
},
"description": "MMSIs to look up; anonymous calls may pass 10 identifiers per call, a personal token 50"
},
"imo": {
"type": [
"null",
"array"
],
"items": {
"type": "integer",
"minimum": 0,
"maximum": 4294967295
},
"description": "IMO numbers to look up, counted with mmsi against the same cap; a vessel is found by IMO only once its static data has been heard"
}
},
"additionalProperties": false
}輸出結構描述
{
"type": "object",
"properties": {
"vessels": {
"type": [
"null",
"array"
],
"items": {
"type": "object",
"properties": {
"mmsi": {
"type": "integer",
"minimum": 0,
"maximum": 4294967295
},
"name": {
"type": "string",
"description": "name from the vessel's static data, when heard"
},
"kind": {
"type": "string",
"description": "vessel, aton (aid to navigation), base (base station), or sar (search and rescue aircraft)"
},
"type": {
"type": "integer",
"description": "ITU ship and cargo type code, or the aid type for an aton",
"minimum": 0,
"maximum": 255
},
"type_name": {
"type": "string"
},
"lat": {
"type": [
"null",
"number"
],
"description": "latitude of the last position, degrees; absent when no position has been heard"
},
"lon": {
"type": [
"null",
"number"
],
"description": "longitude of the last position, degrees"
},
"cog": {
"type": [
"null",
"number"
],
"description": "course over ground, degrees true"
},
"sog": {
"type": [
"null",
"number"
],
"description": "speed over ground, knots"
},
"heading": {
"type": [
"null",
"integer"
],
"description": "true heading, degrees",
"minimum": 0,
"maximum": 65535
},
"nav_status": {
"type": [
"null",
"integer"
],
"description": "AIS navigational status code",
"minimum": 0,
"maximum": 255
},
"nav_status_name": {
"type": "string"
},
"flag": {
"type": "string",
"description": "ISO 3166-1 alpha-2 code of the flag state, from the MMSI's maritime identification digits"
},
"imo": {
"type": "integer",
"description": "IMO number, once the vessel's static data has been heard",
"minimum": 0,
"maximum": 4294967295
},
"callsign": {
"type": "string"
},
"destination": {
"type": "string",
"description": "destination as typed by the crew: a port name, a UN/LOCODE, or nothing useful"
},
"eta": {
"type": "string",
"description": "estimated arrival as sent, MM-DD HH:MM UTC or MM-DD; AIS carries no year, so read it as the next occurrence"
},
"draught": {
"type": [
"null",
"number"
],
"description": "maximum static draught, metres"
},
"length": {
"type": [
"null",
"integer"
],
"description": "overall length, metres",
"minimum": 0,
"maximum": 65535
},
"beam": {
"type": [
"null",
"integer"
],
"description": "beam, metres",
"minimum": 0,
"maximum": 65535
},
"seen": {
"type": "string",
"description": "time of the last message heard, RFC 3339 UTC"
},
"age_s": {
"type": "integer",
"description": "seconds since seen"
},
"source": {
"type": "string",
"description": "feed or station kind the last message came from"
},
"station": {
"type": "string"
},
"distance_nm": {
"type": [
"null",
"number"
],
"description": "nautical miles from the search centre (find_vessels_near)"
},
"bearing": {
"type": [
"null",
"number"
],
"description": "degrees true from the search centre to the vessel (find_vessels_near)"
}
},
"required": [
"mmsi",
"kind",
"seen",
"age_s",
"source",
"station"
],
"additionalProperties": false
}
},
"total": {
"type": "integer",
"description": "vessels matched before the limit was applied"
},
"truncated": {
"type": "boolean",
"description": "true when total exceeds the rows returned; narrow the query or raise limit"
},
"unknown_mmsi": {
"type": [
"null",
"array"
],
"items": {
"type": "integer",
"minimum": 0,
"maximum": 4294967295
},
"description": "requested MMSIs matching no vessel the network has heard"
},
"unknown_imo": {
"type": [
"null",
"array"
],
"items": {
"type": "integer",
"minimum": 0,
"maximum": 4294967295
},
"description": "requested IMO numbers matching no vessel the network has heard"
},
"attribution": {
"type": "object",
"description": "credit line per source kind in the rows, to show with the data",
"additionalProperties": {
"type": "string"
}
}
},
"required": [
"vessels",
"total",
"truncated",
"attribution"
],
"additionalProperties": false
}🟢search_vessels_by_name(name, bbox, flag, limit)
Vessels whose name contains the text, case-insensitive, among every vessel the network has heard, each with its last known position. Use to turn a name into an MMSI, then get_vessels or find_vessels_near for detail. An optional bounding box narrows the search.
輸入結構描述
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "text to find in the vessel name, at least 2 characters, case-insensitive"
},
"bbox": {
"type": [
"null",
"object"
],
"properties": {
"min_lat": {
"type": "number",
"description": "south edge, degrees, -90 to 90"
},
"min_lon": {
"type": "number",
"description": "west edge, degrees, -180 to 180"
},
"max_lat": {
"type": "number",
"description": "north edge, degrees, -90 to 90"
},
"max_lon": {
"type": "number",
"description": "east edge, degrees, -180 to 180"
}
},
"description": "only vessels whose last position is inside this box",
"required": [
"min_lat",
"min_lon",
"max_lat",
"max_lon"
],
"additionalProperties": false
},
"flag": {
"type": "string",
"description": "only vessels flying this flag: ISO 3166-1 alpha-2, e.g. NO, FI, MH"
},
"limit": {
"type": "integer",
"description": "rows to return: default 50, maximum 200"
}
},
"required": [
"name"
],
"additionalProperties": false
}輸出結構描述
{
"type": "object",
"properties": {
"vessels": {
"type": [
"null",
"array"
],
"items": {
"type": "object",
"properties": {
"mmsi": {
"type": "integer",
"minimum": 0,
"maximum": 4294967295
},
"name": {
"type": "string",
"description": "name from the vessel's static data, when heard"
},
"kind": {
"type": "string",
"description": "vessel, aton (aid to navigation), base (base station), or sar (search and rescue aircraft)"
},
"type": {
"type": "integer",
"description": "ITU ship and cargo type code, or the aid type for an aton",
"minimum": 0,
"maximum": 255
},
"type_name": {
"type": "string"
},
"lat": {
"type": [
"null",
"number"
],
"description": "latitude of the last position, degrees; absent when no position has been heard"
},
"lon": {
"type": [
"null",
"number"
],
"description": "longitude of the last position, degrees"
},
"cog": {
"type": [
"null",
"number"
],
"description": "course over ground, degrees true"
},
"sog": {
"type": [
"null",
"number"
],
"description": "speed over ground, knots"
},
"heading": {
"type": [
"null",
"integer"
],
"description": "true heading, degrees",
"minimum": 0,
"maximum": 65535
},
"nav_status": {
"type": [
"null",
"integer"
],
"description": "AIS navigational status code",
"minimum": 0,
"maximum": 255
},
"nav_status_name": {
"type": "string"
},
"flag": {
"type": "string",
"description": "ISO 3166-1 alpha-2 code of the flag state, from the MMSI's maritime identification digits"
},
"imo": {
"type": "integer",
"description": "IMO number, once the vessel's static data has been heard",
"minimum": 0,
"maximum": 4294967295
},
"callsign": {
"type": "string"
},
"destination": {
"type": "string",
"description": "destination as typed by the crew: a port name, a UN/LOCODE, or nothing useful"
},
"eta": {
"type": "string",
"description": "estimated arrival as sent, MM-DD HH:MM UTC or MM-DD; AIS carries no year, so read it as the next occurrence"
},
"draught": {
"type": [
"null",
"number"
],
"description": "maximum static draught, metres"
},
"length": {
"type": [
"null",
"integer"
],
"description": "overall length, metres",
"minimum": 0,
"maximum": 65535
},
"beam": {
"type": [
"null",
"integer"
],
"description": "beam, metres",
"minimum": 0,
"maximum": 65535
},
"seen": {
"type": "string",
"description": "time of the last message heard, RFC 3339 UTC"
},
"age_s": {
"type": "integer",
"description": "seconds since seen"
},
"source": {
"type": "string",
"description": "feed or station kind the last message came from"
},
"station": {
"type": "string"
},
"distance_nm": {
"type": [
"null",
"number"
],
"description": "nautical miles from the search centre (find_vessels_near)"
},
"bearing": {
"type": [
"null",
"number"
],
"description": "degrees true from the search centre to the vessel (find_vessels_near)"
}
},
"required": [
"mmsi",
"kind",
"seen",
"age_s",
"source",
"station"
],
"additionalProperties": false
}
},
"total": {
"type": "integer",
"description": "vessels matched before the limit was applied"
},
"truncated": {
"type": "boolean",
"description": "true when total exceeds the rows returned; narrow the query or raise limit"
},
"unknown_mmsi": {
"type": [
"null",
"array"
],
"items": {
"type": "integer",
"minimum": 0,
"maximum": 4294967295
},
"description": "requested MMSIs matching no vessel the network has heard"
},
"unknown_imo": {
"type": [
"null",
"array"
],
"items": {
"type": "integer",
"minimum": 0,
"maximum": 4294967295
},
"description": "requested IMO numbers matching no vessel the network has heard"
},
"attribution": {
"type": "object",
"description": "credit line per source kind in the rows, to show with the data",
"additionalProperties": {
"type": "string"
}
}
},
"required": [
"vessels",
"total",
"truncated",
"attribution"
],
"additionalProperties": false
}建議的提示詞
find_vessels_in_areafind_vessels_in_areaget_coverageget_coveragefind_vessels_in_areaget_coverage社群
證據