Open Waters AIS

Live AIS vessel positions by MMSI, name, area, or radius, plus coverage. No sign-in, no key.

我该使用它吗

质量与安全性

A
描述质量
97%
模式完整度
94%
命名质量
100%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

基于对工具定义和协议合规性的自动分析。

上下文开销

~6,257token 数(工具定义)
~11.7 KB典型响应大小
对注意力有显著影响(占 128k 上下文窗口的 4.89%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 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
}

推荐提示词

search_research
Search for information about [topic] using Open Waters AIS
预期工具: find_vessels_in_area
find_specific
Find [specific item] using Open Waters AIS
预期工具: find_vessels_in_area
retrieve_data
Get details about [item] from Open Waters AIS
预期工具: get_coverage
fetch_info
Fetch [information type] using Open Waters AIS
预期工具: get_coverage
research_workflow
Search for [topic], then get detailed information about the top results using Open Waters AIS
预期工具: find_vessels_in_areaget_coverage

社区

评价此服务器

证据

最近观测

已验证未记录版本6 个工具
已验证未记录版本5 个工具