Open Waters AIS
Server Details
Live AIS vessel positions by MMSI, name, area, or radius, plus coverage. No sign-in, no key.
- Status
- Healthy
- Uptime
- 100.0% over 43 days
- Last Tested
- Transport
- Streamable HTTP ยท MCP 2025-11-25
- URL
- Repository
- openwatersio/aiscast
- GitHub Stars
- 7
TDQS
Scored across 6 tools
Each tool has a clear primary purpose, but find_vessels_in_area and find_vessels_near both return 'vessels in a geographic region' and differ only in geometry (bounding box vs radius). The descriptions do explain when to use each (port/strait/coast vs around a point or vessel), which keeps confusion low but not zero. The remaining tools (coverage, identity lookup, track history, name search) are cleanly separated.
All six names are snake_case, verb-first, and follow a predictable find_/get_/search_ + resource pattern. Resource nouns are used consistently (vessels, vessel_track, coverage), making the surface easy to scan.
Six tools is well-scoped for a focused AIS domain: two spatial searches, one identity lookup, one track history, one name resolver, and one coverage/health check. No tool appears redundant or bolted on, and nothing feels padded.
The surface covers the core lifecycle: resolve a name to MMSI, fetch particulars, find nearby/in-area vessels, pull historical track, and verify coverage. The main gap is that stations can only be inspected through get_coverage by passing a station id, with no way to list available stations or sources, and there is no port-call/area-statistics operation. These are minor workarounds rather than blockers.
Available Tools
6 toolsfind_vessels_in_areaVessels in an areaARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| bbox | Yes | ||
| flag | No | only vessels flying this flag: ISO 3166-1 alpha-2, e.g. NO, FI, MH | |
| kind | No | only this kind: vessel, aton (aid to navigation), base (base station), sar (search and rescue aircraft or distress beacon), or gear (fishing gear); vessel leaves out distress beacons and gear | |
| limit | No | rows to return: default 50, maximum 200 | |
| types | No | 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 |
Output Schema
| Name | Required | Description |
|---|---|---|
| total | Yes | vessels matched before the limit was applied |
| vessels | Yes | |
| truncated | Yes | true when rows were left out: total exceeds the rows returned, so narrow the query or raise limit, or an IMO number is reported by more than the 10 vessels returned for it |
| attribution | Yes | credit line per source kind in the rows, to show with the data |
| unknown_imo | No | requested IMO numbers matching no vessel the network has heard |
| unknown_mmsi | No | requested MMSIs matching no vessel the network has heard |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, so safety is covered. The description adds genuinely useful non-obvious behavior: result ordering ('newest report first') and an anonymous-call quota ('may cover 100 square degrees per call'), which is a real constraint an agent could otherwise trip over.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with what is returned and in what order, then usage, then the quota caveat. Every sentence carries information; the only slight cost is that the trailing quota sentence is terse enough to require reading twice.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return-format explanation is unnecessary, and the description covers scope, ordering, filters, and the anonymous quota. What remains thin is the absence of any explicit contrast with the five siblings, which for a tool family this dense would help disambiguation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 80%, so the baseline is 3, and the description goes beyond it by naming the kind and ship-type filters and by tying bbox extent to the anonymous 100-square-degree limit. It doesn't restate the individual min/max lat/lon semantics, which the schema already handles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ('Vessels currently inside a latitude/longitude bounding box'), plus explicit result ordering ('newest report first') and filter scope. The bounding-box framing distinguishes it from the radius-based sibling find_vessels_near without the agent needing to open either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use for what is in a port, a strait, or a stretch of coast' gives concrete usage contexts that map naturally to the bbox parameter. It stops short of naming alternatives (e.g. find_vessels_near for radius queries), so the agent must infer the boundary itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_vessels_nearVessels near a point or vesselARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | centre latitude, degrees; give lat and lon, or mmsi | |
| lon | No | centre longitude, degrees | |
| flag | No | only vessels flying this flag: ISO 3166-1 alpha-2, e.g. NO, FI, MH | |
| kind | No | only this kind: vessel, aton, base, sar, or gear; vessel leaves out distress beacons and gear | |
| mmsi | No | centre on this vessel's last position instead of lat and lon; the vessel itself is left out of the results | |
| limit | No | rows to return: default 50, maximum 200 | |
| types | No | only these ITU ship type codes; a code ending in 0 matches its decade | |
| radius_nm | No | search radius in nautical miles: default 10, maximum 50 |
Output Schema
| Name | Required | Description |
|---|---|---|
| total | Yes | vessels matched before the limit was applied |
| vessels | Yes | |
| truncated | Yes | true when rows were left out: total exceeds the rows returned, so narrow the query or raise limit, or an IMO number is reported by more than the 10 vessels returned for it |
| attribution | Yes | credit line per source kind in the rows, to show with the data |
| unknown_imo | No | requested IMO numbers matching no vessel the network has heard |
| unknown_mmsi | No | requested MMSIs matching no vessel the network has heard |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint/idempotentHint already covering safety, the description adds value beyond annotations: ordering (nearest first), what each row carries (distance and bearing), and that the centre vessel is excluded from results. It omits error/precondition behaviour (e.g. supplying neither lat/lon nor mmsi) and any rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the resource and search mode, then defaults, ordering and return fields, ending with the use case. No padding or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is unnecessary, and the description still covers defaults, ordering and exclusion of the centre vessel. The one gap is not clarifying the precondition that either lat+lon or mmsi must be supplied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented with defaults and maxima. The description only restates the radius default/maximum already in the schema and adds no format or interaction detail beyond it; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (find vessels near a point/vessel), plus the defining mechanism (radius in NM, default 10, max 50) and result shape (nearest first, with distance and bearing). It contrasts implicitly with find_vessels_in_area via the radius/centre framing, but never names or explicitly differentiates from that sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use for what is near this position or what is around vessel X" gives clear when-to-use context matching the two centre modes. It does not name alternatives (e.g. find_vessels_in_area for polygonal/bounded regions) or state exclusions, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_coverageCoverage and sourcesARead-onlyIdempotentInspect
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. Vessel counts cover the last 30 minutes; max_age widens them, to 7d for the last week or all for every vessel the network has heard. Call this before saying a region has no traffic.
| Name | Required | Description | Default |
|---|---|---|---|
| bbox | No | report the stations covering this box and the vessels currently in it | |
| max_age | No | count vessels heard within this long, network-wide and in bbox, instead of the last 30 minutes: a duration such as 6h, 24h, or 7d, or all for every vessel the network has heard | |
| station | No | a station id from an earlier result, for that station's numbers |
Output Schema
| Name | Required | Description |
|---|---|---|
| area | No | |
| note | No | |
| time | Yes | |
| sources | Yes | |
| station | No | |
| summary | Yes | |
| vessels | Yes | |
| stations | Yes | |
| events_per_second | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, the description discloses a non-obvious default (counts cover the last 30 minutes), the widening semantics of max_age (up to 7d or 'all'), and a data-completeness caveat that warns against false negatives. That is exactly the behavioral context annotations cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences, all load-bearing, with the resource definition front-loaded and the safety caveat closing as a call to action. The opening enumeration of sources/delay/stations/freshness/counts is slightly sprawling but each item is informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema handling return values and annotations covering the safety profile, the description supplies the remaining pieces an agent needs: what selects what, the time-window defaults, and when the data is insufficient to conclude 'no traffic'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: bbox returns covering stations plus in-box vessel counts, and station refers to an id from an earlier result. max_age's effect on both network-wide and bbox counts is restated with concrete examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: reports where the AIS network is hearing traffic โ sources, delay, stations, freshness, vessel counts. This clearly separates it from the sibling vessel-lookup tools, which search for individual vessels rather than describing network coverage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit invocation triggers: pass a bbox to learn which stations cover it, pass a station id for that station's numbers, and call it before claiming a region has no traffic. It does not explicitly name or exclude the sibling tools, so routing versus find_vessels_in_area is left implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_vesselsVessels by MMSIARead-onlyIdempotentInspect
Last known position and particulars of specific vessels by MMSI (Maritime Mobile Service Identity), or by IMO number with a feeder or partner token: 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. A vessel whose IMO number has a Wikidata item also carries its type, builder, year built, tonnage, registered dimensions, registry, home port, owner, operator, former names, and Wikipedia and Commons links from there, and a documented US vessel its service type, status, official number, registered dimensions, and tonnage from the US Coast Guard. Use search_vessels_by_name first when you only have a name.
| Name | Required | Description | Default |
|---|---|---|---|
| imo | No | IMO numbers to look up, counted with mmsi against the same cap; needs a feeder or partner token. Each returns up to 10 vessels that reported it, most recently heard first, and a vessel is found by IMO only once its static data has been heard | |
| mmsi | No | MMSIs to look up; anonymous calls may pass 10 identifiers per call, a personal token 50 |
Output Schema
| Name | Required | Description |
|---|---|---|
| total | Yes | vessels matched before the limit was applied |
| vessels | Yes | |
| truncated | Yes | true when rows were left out: total exceeds the rows returned, so narrow the query or raise limit, or an IMO number is reported by more than the 10 vessels returned for it |
| attribution | Yes | credit line per source kind in the rows, to show with the data |
| unknown_imo | No | requested IMO numbers matching no vessel the network has heard |
| unknown_mmsi | No | requested MMSIs matching no vessel the network has heard |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover read-only/idempotent/closed-world, but the description adds real behavioral context beyond them: token tiering and per-call identifier caps (10 anonymous, 50 personal), the fact that IMO lookup requires static data to have been heard, that results can be arbitrarily stale ('the last report heard ... however long ago'), and that unmatched identifiers are explicitly reported back. Those are operational traits an agent cannot derive from the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and the sibling routing rule are front-loaded, but the middle of the description is a long enumeration of Wikidata and USCG enrichment fields (type, builder, year built, tonnage, registry, owner, operator, former names, Wikipedia/Commons links). Since an output schema exists, much of that is duplicated payload detail and dilutes the actionable content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description is not obligated to explain return values, and it covers identifiers, token tiers, caps, staleness, and unmatched-ID behavior. It does not say what happens when neither optional parameter is supplied (0 required parameters), which is the one gap for a two-optional-arg tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the per-field semantics are already documented and the baseline is 3. The description adds one genuinely new cross-parameter fact the schema does not state: IMO numbers are 'counted with mmsi against the same cap', which affects how an agent batches a mixed request.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource+key: 'Last known position and particulars of specific vessels by MMSI ... or by IMO number'. It also distinguishes itself from the closest sibling by routing name-only lookups to search_vessels_by_name, so an agent can separate it from the other vessel tools without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit routing rule for the name case ('Use search_vessels_by_name first when you only have a name') and a stated precondition for the IMO path ('with a feeder or partner token'). It stops short of contrasting with get_vessel_track, find_vessels_near, or find_vessels_in_area, so the agent must infer that those cover track/history and proximity rather than identifier lookup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_vessel_trackWhere a vessel has beenARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | end, RFC 3339 UTC; default now | |
| imo | No | 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 | |
| from | No | start, RFC 3339 UTC; default 24 hours before to. A call covers up to 366 days | |
| mmsi | No | the vessel's MMSI; give mmsi or imo. Use search_vessels_by_name first when you only have a name | |
| limit | No | positions to return: default 50, maximum 200; when more match, the newest are kept | |
| interval_minutes | No | 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 |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | Yes | |
| from | Yes | start of the range covered |
| mmsi | Yes | |
| name | No | |
| breaks | No | 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 |
| positions | Yes | oldest first |
| truncated | Yes | 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 |
| interval_s | Yes | at most one position per this many seconds; 0 is every position heard. Simplified, the resolution the positions were read at |
| simplified | Yes | true when the track was simplified by shape: the positions that hold its path, not evenly spaced |
| attribution | Yes | credit line per source kind in the positions, to show with the data |
| tolerance_m | No | simplified: every position left out lay within this many meters of the line through the ones kept |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover safety (readOnly, idempotent, closed-world), but the description adds substantive behavior beyond them: impossible-speed positions are filtered out, the default track is shape-simplified with breaks where the vessel was unheard, interval_minutes switches to even spacing, and a call spans up to a year. This is exactly the kind of filtering and default-behavior disclosure an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with what the tool returns and its ordering, then use cases, then identifier requirements and defaults. Four dense sentences carry a lot, though the interval_minutes clause partially duplicates schema text and could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema, 100% parameter coverage, and annotations present, the description only needs to supply behavioral context โ and it does: filtering rules, default simplification strategy, ordering, and time-span limits. An agent can invoke this tool correctly without opening anything else.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3; the description nonetheless adds meaning by pairing mmsi/imo with the feeder-or-partner token requirement and framing the year-long call limit. It reinforces rather than merely restates the schema, but does not add syntax or edge-case detail beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource (positions heard from one vessel over a time range) with concrete output attributes (speed, course, navigational status) and ordering (oldest first). This is unmistakably distinct from siblings like find_vessels_in_area or search_vessels_by_name, which locate vessels rather than replay one vessel's history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear when-to-use contexts ('where a ship was yesterday, when it left port, or its route today') and prerequisites ('give the vessel's mmsi, or its imo with a feeder or partner token'). It does not explicitly state when NOT to use it or name a sibling alternative in the description text (the schema alone points to search_vessels_by_name), so it falls just short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_vessels_by_nameSearch vessels by nameARead-onlyIdempotentInspect
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. With a feeder or partner token, text of the form IMO 9241061 finds the vessels reporting that IMO number, and a bare seven-digit number finds them ahead of the name matches.
| Name | Required | Description | Default |
|---|---|---|---|
| bbox | No | only vessels whose last position is inside this box | |
| flag | No | only vessels flying this flag: ISO 3166-1 alpha-2, e.g. NO, FI, MH | |
| name | Yes | text to find in the vessel name, at least 2 characters, case-insensitive; with a feeder or partner token, IMO followed by an IMO number finds that IMO | |
| limit | No | rows to return: default 50, maximum 200 |
Output Schema
| Name | Required | Description |
|---|---|---|
| total | Yes | vessels matched before the limit was applied |
| vessels | Yes | |
| truncated | Yes | true when rows were left out: total exceeds the rows returned, so narrow the query or raise limit, or an IMO number is reported by more than the 10 vessels returned for it |
| attribution | Yes | credit line per source kind in the rows, to show with the data |
| unknown_imo | No | requested IMO numbers matching no vessel the network has heard |
| unknown_mmsi | No | requested MMSIs matching no vessel the network has heard |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, closed-world, but the description adds real behavior beyond them: search scope spans 'every vessel the network has heard', results carry last known position, bbox narrows results, and feeder/partner tokens change matching semantics (IMO 9241061, bare seven-digit ranking ahead of name matches).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with the core behavior before routing and edge-case handling, and no filler. The token/IMO sentence is dense but earns its place by describing non-obvious matching behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A read-only search tool with an output schema, so return structure need not be explained; the description still covers search scope, result content, filtering, and token-variant matching. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds semantics the schema does not: that bbox 'narrows the search' (a filter, not a scope switch) and the priority ordering of numeric matches versus name matches. It does not restate limit/flag semantics, which is fine given the schema covers them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('vessels whose name contains the text') plus the matching rule (case-insensitive substring) and the result content ('each with its last known position'). It also differentiates itself from siblings by naming get_vessels and find_vessels_near as the follow-up tools for detail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear use case ('turn a name into an MMSI') and explicit next-step routing to get_vessels or find_vessels_near. It also explains the token-dependent IMO special form, but never states when NOT to use this tool versus the name-agnostic siblings like find_vessels_in_area.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
get_coverage2 fields changed- changed
Output schema / properties / area / properties / stations / items / properties / bbox / descriptionPrevious value: -"extent of the positions this station has heard"New value: +"extent of the positions this station has heard since the server last started; absent until it hears one" - changed
Output schema / properties / station / properties / bbox / descriptionPrevious value: -"extent of the positions this station has heard"New value: +"extent of the positions this station has heard since the server last started; absent until it hears one"
4 tool updates
- Changed
find_vessels_in_area4 fields changed- changed
Output schema / properties / vessels / items / properties / beam / descriptionPrevious value: -"beam, metres"New value: +"beam, metres; never for gear" - changed
Output schema / properties / vessels / items / properties / draught / descriptionPrevious value: -"maximum static draught, metres"New value: +"maximum static draught, metres; never for gear" - changed
Output schema / properties / vessels / items / properties / heading / descriptionPrevious value: -"true heading, degrees"New value: +"true heading, degrees, 0 to 359; never for gear" - changed
Output schema / properties / vessels / items / properties / length / descriptionPrevious value: -"overall length, metres"New value: +"overall length, metres; never for gear, whose size is a placeholder"
- Changed
find_vessels_near4 fields changed- changed
Output schema / properties / vessels / items / properties / beam / descriptionPrevious value: -"beam, metres"New value: +"beam, metres; never for gear" - changed
Output schema / properties / vessels / items / properties / draught / descriptionPrevious value: -"maximum static draught, metres"New value: +"maximum static draught, metres; never for gear" - changed
Output schema / properties / vessels / items / properties / heading / descriptionPrevious value: -"true heading, degrees"New value: +"true heading, degrees, 0 to 359; never for gear" - changed
Output schema / properties / vessels / items / properties / length / descriptionPrevious value: -"overall length, metres"New value: +"overall length, metres; never for gear, whose size is a placeholder"
- Changed
get_vessels4 fields changed- changed
Output schema / properties / vessels / items / properties / beam / descriptionPrevious value: -"beam, metres"New value: +"beam, metres; never for gear" - changed
Output schema / properties / vessels / items / properties / draught / descriptionPrevious value: -"maximum static draught, metres"New value: +"maximum static draught, metres; never for gear" - changed
Output schema / properties / vessels / items / properties / heading / descriptionPrevious value: -"true heading, degrees"New value: +"true heading, degrees, 0 to 359; never for gear" - changed
Output schema / properties / vessels / items / properties / length / descriptionPrevious value: -"overall length, metres"New value: +"overall length, metres; never for gear, whose size is a placeholder"
- Changed
search_vessels_by_name4 fields changed- changed
Output schema / properties / vessels / items / properties / beam / descriptionPrevious value: -"beam, metres"New value: +"beam, metres; never for gear" - changed
Output schema / properties / vessels / items / properties / draught / descriptionPrevious value: -"maximum static draught, metres"New value: +"maximum static draught, metres; never for gear" - changed
Output schema / properties / vessels / items / properties / heading / descriptionPrevious value: -"true heading, degrees"New value: +"true heading, degrees, 0 to 359; never for gear" - changed
Output schema / properties / vessels / items / properties / length / descriptionPrevious value: -"overall length, metres"New value: +"overall length, metres; never for gear, whose size is a placeholder"
4 tool updates
- Changed
find_vessels_in_area3 fields changed- changed
Input schema / properties / kind / descriptionPrevious value: -"only this kind: vessel, aton (aid to navigation), base (base station), or sar (search and rescue aircraft)"New value: +"only this kind: vessel, aton (aid to navigation), base (base station), sar (search and rescue aircraft or distress beacon), or gear (fishing gear); vessel leaves out distress beacons and gear" - changed
Output schema / properties / vessels / items / properties / flag / descriptionPrevious value: -"ISO 3166-1 alpha-2 code of the flag state, from the MMSI's maritime identification digits"New value: +"ISO 3166-1 alpha-2 code of the flag state, from the MMSI's maritime identification digits; never set for gear" - changed
Output schema / properties / vessels / items / properties / kind / descriptionPrevious value: -"vessel, aton (aid to navigation), base (base station), or sar (search and rescue aircraft)"New value: +"vessel, aton (aid to navigation), base (base station), sar (search and rescue aircraft or active distress beacon: AIS-SART, man-overboard, EPIRB-AIS), or gear (fishing gear, usually a net buoy, which has no flag)"
- Changed
find_vessels_near3 fields changed- changed
Input schema / properties / kind / descriptionPrevious value: -"only this kind: vessel, aton, base, or sar"New value: +"only this kind: vessel, aton, base, sar, or gear; vessel leaves out distress beacons and gear" - changed
Output schema / properties / vessels / items / properties / flag / descriptionPrevious value: -"ISO 3166-1 alpha-2 code of the flag state, from the MMSI's maritime identification digits"New value: +"ISO 3166-1 alpha-2 code of the flag state, from the MMSI's maritime identification digits; never set for gear" - changed
Output schema / properties / vessels / items / properties / kind / descriptionPrevious value: -"vessel, aton (aid to navigation), base (base station), or sar (search and rescue aircraft)"New value: +"vessel, aton (aid to navigation), base (base station), sar (search and rescue aircraft or active distress beacon: AIS-SART, man-overboard, EPIRB-AIS), or gear (fishing gear, usually a net buoy, which has no flag)"
- Changed
get_vessels2 fields changed- changed
Output schema / properties / vessels / items / properties / flag / descriptionPrevious value: -"ISO 3166-1 alpha-2 code of the flag state, from the MMSI's maritime identification digits"New value: +"ISO 3166-1 alpha-2 code of the flag state, from the MMSI's maritime identification digits; never set for gear" - changed
Output schema / properties / vessels / items / properties / kind / descriptionPrevious value: -"vessel, aton (aid to navigation), base (base station), or sar (search and rescue aircraft)"New value: +"vessel, aton (aid to navigation), base (base station), sar (search and rescue aircraft or active distress beacon: AIS-SART, man-overboard, EPIRB-AIS), or gear (fishing gear, usually a net buoy, which has no flag)"
- Changed
search_vessels_by_name2 fields changed- changed
Output schema / properties / vessels / items / properties / flag / descriptionPrevious value: -"ISO 3166-1 alpha-2 code of the flag state, from the MMSI's maritime identification digits"New value: +"ISO 3166-1 alpha-2 code of the flag state, from the MMSI's maritime identification digits; never set for gear" - changed
Output schema / properties / vessels / items / properties / kind / descriptionPrevious value: -"vessel, aton (aid to navigation), base (base station), or sar (search and rescue aircraft)"New value: +"vessel, aton (aid to navigation), base (base station), sar (search and rescue aircraft or active distress beacon: AIS-SART, man-overboard, EPIRB-AIS), or gear (fishing gear, usually a net buoy, which has no flag)"
1 tool update
- Changed
get_coverage3 fields changed- changed
Output schema / properties / area / properties / stations / items / properties / vessels / descriptionPrevious value: -"distinct vessels heard in the last 30 minutes"New value: +"distinct vessels whose positions the station heard in the last 30 minutes, its own left out, up to about 7 minutes behind" - changed
Output schema / properties / sources / items / properties / vessels / descriptionPrevious value: -"distinct vessels heard from this source in the last 30 minutes"New value: +"distinct vessels whose positions this source's stations heard in the last 30 minutes, up to about 7 minutes behind" - changed
Output schema / properties / station / properties / vessels / descriptionPrevious value: -"distinct vessels heard in the last 30 minutes"New value: +"distinct vessels whose positions the station heard in the last 30 minutes, its own left out, up to about 7 minutes behind"
5 tool updates
- Changed
find_vessels_in_area1 field changed- changed
Output schema / properties / truncated / descriptionPrevious value: -"true when total exceeds the rows returned; narrow the query or raise limit"New value: +"true when rows were left out: total exceeds the rows returned, so narrow the query or raise limit, or an IMO number is reported by more than the 10 vessels returned for it"
- Changed
find_vessels_near1 field changed- changed
Output schema / properties / truncated / descriptionPrevious value: -"true when total exceeds the rows returned; narrow the query or raise limit"New value: +"true when rows were left out: total exceeds the rows returned, so narrow the query or raise limit, or an IMO number is reported by more than the 10 vessels returned for it"
- Changed
get_vessel_track3 fields changed- added
Input schema / properties / imoAdded 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" +} - changed
Input schema / properties / mmsi / descriptionPrevious 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" - removed
Input schema / requiredRemoved value: -[ - "mmsi" -]
- Changed
get_vessels2 fields changed- changed
Input schema / properties / imo / descriptionPrevious value: -"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"New value: +"IMO numbers to look up, counted with mmsi against the same cap; needs a feeder or partner token. Each returns up to 10 vessels that reported it, most recently heard first, and a vessel is found by IMO only once its static data has been heard" - changed
Output schema / properties / truncated / descriptionPrevious value: -"true when total exceeds the rows returned; narrow the query or raise limit"New value: +"true when rows were left out: total exceeds the rows returned, so narrow the query or raise limit, or an IMO number is reported by more than the 10 vessels returned for it"
- Changed
search_vessels_by_name2 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"text to find in the vessel name, at least 2 characters, case-insensitive"New value: +"text to find in the vessel name, at least 2 characters, case-insensitive; with a feeder or partner token, IMO followed by an IMO number finds that IMO" - changed
Output schema / properties / truncated / descriptionPrevious value: -"true when total exceeds the rows returned; narrow the query or raise limit"New value: +"true when rows were left out: total exceeds the rows returned, so narrow the query or raise limit, or an IMO number is reported by more than the 10 vessels returned for it"
1 tool update
- Changed
get_vessel_track7 fields changed- changed
Input schema / properties / interval_minutes / descriptionPrevious 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" - added
Output schema / properties / breaksAdded 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" + ] +} - changed
Output schema / properties / interval_s / descriptionPrevious 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" - added
Output schema / properties / simplifiedAdded value: +{ + "description": "true when the track was simplified by shape: the positions that hold its path, not evenly spaced", + "type": "boolean" +} - added
Output schema / properties / tolerance_mAdded value: +{ + "description": "simplified: every position left out lay within this many meters of the line through the ones kept", + "type": [ + "null", + "number" + ] +} - changed
Output schema / properties / truncated / descriptionPrevious 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" - changed
Output schema / requiredPrevious value: -[ - "mmsi", - "from", - "to", - "interval_s", - "positions", - "truncated", - "attribution" -]New value: +[ + "mmsi", + "from", + "to", + "interval_s", + "simplified", + "positions", + "truncated", + "attribution" +]
1 tool update
- Changed
get_vessel_track3 fields changed- changed
Input schema / properties / from / descriptionPrevious 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" - changed
Input schema / properties / interval_minutes / descriptionPrevious 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" - changed
Output schema / properties / from / descriptionPrevious 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"
1 tool update
- Changed
get_vessel_track1 field changed- changed
Input schema / properties / from / descriptionPrevious 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"
4 tool updates
- Changed
find_vessels_in_area1 field changed- changed
Output schema / properties / vessels / items / properties / sources / additionalProperties / properties / url / descriptionPrevious value: -"the source's own page for this vessel"New value: +"the source's page for this vessel, or its public search when the source keeps no per-vessel pages"
- Changed
find_vessels_near1 field changed- changed
Output schema / properties / vessels / items / properties / sources / additionalProperties / properties / url / descriptionPrevious value: -"the source's own page for this vessel"New value: +"the source's page for this vessel, or its public search when the source keeps no per-vessel pages"
- Changed
get_vessels1 field changed- changed
Output schema / properties / vessels / items / properties / sources / additionalProperties / properties / url / descriptionPrevious value: -"the source's own page for this vessel"New value: +"the source's page for this vessel, or its public search when the source keeps no per-vessel pages"
- Changed
search_vessels_by_name1 field changed- changed
Output schema / properties / vessels / items / properties / sources / additionalProperties / properties / url / descriptionPrevious value: -"the source's own page for this vessel"New value: +"the source's page for this vessel, or its public search when the source keeps no per-vessel pages"
4 tool updates
- Changed
find_vessels_in_area1 field changed- added
Output schema / properties / vessels / items / properties / particulars / properties / callsignAdded value: +{ + "description": "call sign as registered; the callsign in the vessel's own properties is the one AIS reports", + "type": "string" +}
- Changed
find_vessels_near1 field changed- added
Output schema / properties / vessels / items / properties / particulars / properties / callsignAdded value: +{ + "description": "call sign as registered; the callsign in the vessel's own properties is the one AIS reports", + "type": "string" +}
- Changed
get_vessels1 field changed- added
Output schema / properties / vessels / items / properties / particulars / properties / callsignAdded value: +{ + "description": "call sign as registered; the callsign in the vessel's own properties is the one AIS reports", + "type": "string" +}
- Changed
search_vessels_by_name1 field changed- added
Output schema / properties / vessels / items / properties / particulars / properties / callsignAdded value: +{ + "description": "call sign as registered; the callsign in the vessel's own properties is the one AIS reports", + "type": "string" +}
4 tool updates
- Changed
find_vessels_in_area5 fields changed- added
Output schema / properties / vessels / items / properties / particularsAdded value: +{ + "additionalProperties": false, + "description": "particulars as registered, merged from the enrichment sources into one vocabulary (get_vessels)", + "properties": { + "beam": { + "description": "beam as registered, metres", + "type": "number" + }, + "builder": { + "description": "shipyard or builder", + "type": "string" + }, + "commons_category": { + "description": "the category of the ship's photos on Wikimedia Commons", + "type": "string" + }, + "deadweight": { + "description": "deadweight, tonnes", + "type": "integer" + }, + "depth": { + "description": "registered depth, metres", + "type": "number" + }, + "draught": { + "description": "design draught, metres; AIS reports the draught on the current voyage", + "type": "number" + }, + "former_names": { + "description": "names the vessel has carried before, oldest first", + "items": { + "type": "string" + }, + "type": [ + "null", + "array" + ] + }, + "gross_tonnage": { + "type": "integer" + }, + "home_port": { + "description": "port of registry", + "type": "string" + }, + "identification": { + "description": "the flag state's number for the vessel: a documented vessel's official number, else its state registration", + "type": "string" + }, + "image": { + "description": "the Commons page of a photo of the ship, which shows its license and credit", + "type": "string" + }, + "length": { + "description": "length as registered, metres; may differ from the AIS length", + "type": "number" + }, + "net_tonnage": { + "type": "integer" + }, + "operator": { + "type": "string" + }, + "owner": { + "type": "string" + }, + "registered_name": { + "description": "name as documented with the flag state, when it differs from what AIS reports", + "type": "string" + }, + "registry": { + "description": "country of registry, in English", + "type": "string" + }, + "service": { + "description": "flag-state service type, e.g. Towing Vessel, Passenger (Inspected), Recreational", + "type": "string" + }, + "ship_type": { + "description": "kind of ship, e.g. bulk carrier, container ship, ferry", + "type": "string" + }, + "status": { + "description": "flag-state status, e.g. Active, Laid Up", + "type": "string" + }, + "tonnage_measure": { + "description": "how a tonnage from the flag state was measured: Convention (the international system), Regulatory (the older US system, in register tons), or Simplified (small vessels)", + "type": "string" + }, + "wikipedia": { + "description": "the ship's English Wikipedia article", + "type": "string" + }, + "yard_number": { + "description": "the builder's hull number", + "type": "string" + }, + "year_built": { + "type": "integer" + } + }, + "type": [ + "null", + "object" + ] +} - added
Output schema / properties / vessels / items / properties / provenanceAdded value: +{ + "additionalProperties": { + "type": "string" + }, + "description": "the source of each particulars field, by the field's name; values are keys of sources (get_vessels)", + "type": "object" +} - added
Output schema / properties / vessels / items / properties / sourcesAdded value: +{ + "additionalProperties": { + "additionalProperties": false, + "properties": { + "credit": { + "description": "display credit for the source", + "type": "string" + }, + "license": { + "type": "string" + }, + "url": { + "description": "the source's own page for this vessel", + "type": "string" + } + }, + "required": [ + "credit", + "license" + ], + "type": "object" + }, + "description": "each contributing source's credit, license, and its own page for this vessel (get_vessels)", + "type": "object" +} - removed
Output schema / properties / vessels / items / properties / uscgRemoved value: -{ - "additionalProperties": false, - "description": "particulars as documented with the US Coast Guard, for a US-flag vessel whose call sign and name match a vessel in its PSIX database (get_vessels)", - "properties": { - "beam": { - "description": "registered breadth, metres", - "type": "number" - }, - "depth": { - "description": "registered depth, metres", - "type": "number" - }, - "gross_tonnage": { - "type": "integer" - }, - "id": { - "description": "the vessel's ID in PSIX", - "type": "integer" - }, - "identification": { - "description": "the official number of a documented vessel, else its state registration", - "type": "string" - }, - "length": { - "description": "registered length, metres", - "type": "number" - }, - "license": { - "description": "public domain (U.S. government work), no credit required", - "type": "string" - }, - "name": { - "description": "name as documented with the Coast Guard", - "type": "string" - }, - "net_tonnage": { - "type": "integer" - }, - "service": { - "description": "service type, e.g. Towing Vessel, Passenger (Inspected), Commercial Fishing Vessel, Recreational", - "type": "string" - }, - "status": { - "description": "Coast Guard status, e.g. Active, Laid Up", - "type": "string" - }, - "tonnage_measure": { - "description": "how the tonnage was measured: Convention (the international system), Regulatory (the older US system, in register tons), or Simplified (small vessels)", - "type": "string" - }, - "year_built": { - "type": "integer" - } - }, - "required": [ - "id", - "license", - "name" - ], - "type": [ - "null", - "object" - ] -} - removed
Output schema / properties / vessels / items / properties / wikidataRemoved value: -{ - "additionalProperties": false, - "description": "particulars as registered, from the vessel's Wikidata item found by its IMO number (get_vessels)", - "properties": { - "beam": { - "description": "beam as registered, metres", - "type": "number" - }, - "builder": { - "description": "shipyard or builder", - "type": "string" - }, - "commons_category": { - "description": "the category of the ship's photos on Wikimedia Commons", - "type": "string" - }, - "deadweight": { - "description": "deadweight, tonnes", - "type": "integer" - }, - "draught": { - "description": "design draught, metres; AIS reports the draught on the current voyage", - "type": "number" - }, - "former_names": { - "description": "names the vessel has carried before, oldest first", - "items": { - "type": "string" - }, - "type": [ - "null", - "array" - ] - }, - "gross_tonnage": { - "type": "integer" - }, - "home_port": { - "description": "port of registry", - "type": "string" - }, - "id": { - "description": "Wikidata item ID", - "type": "string" - }, - "image": { - "description": "the Commons page of a photo of the ship, which shows its license and credit", - "type": "string" - }, - "length": { - "description": "length as registered, metres; may differ from the AIS length", - "type": "number" - }, - "license": { - "description": "CC0-1.0: public domain, no credit required; the photos image and commons_category lead to carry their own licenses", - "type": "string" - }, - "operator": { - "type": "string" - }, - "owner": { - "type": "string" - }, - "registry": { - "description": "country of registry, in English", - "type": "string" - }, - "ship_type": { - "description": "kind of ship, e.g. bulk carrier, container ship, oil tanker, ferry", - "type": "string" - }, - "url": { - "description": "the item's page on Wikidata", - "type": "string" - }, - "wikipedia": { - "description": "the ship's English Wikipedia article", - "type": "string" - }, - "yard_number": { - "description": "the builder's hull number", - "type": "string" - }, - "year_built": { - "description": "year the vessel entered service", - "type": "integer" - } - }, - "required": [ - "id", - "url", - "license" - ], - "type": [ - "null", - "object" - ] -}
- Changed
find_vessels_near5 fields changed- added
Output schema / properties / vessels / items / properties / particularsAdded value: +{ + "additionalProperties": false, + "description": "particulars as registered, merged from the enrichment sources into one vocabulary (get_vessels)", + "properties": { + "beam": { + "description": "beam as registered, metres", + "type": "number" + }, + "builder": { + "description": "shipyard or builder", + "type": "string" + }, + "commons_category": { + "description": "the category of the ship's photos on Wikimedia Commons", + "type": "string" + }, + "deadweight": { + "description": "deadweight, tonnes", + "type": "integer" + }, + "depth": { + "description": "registered depth, metres", + "type": "number" + }, + "draught": { + "description": "design draught, metres; AIS reports the draught on the current voyage", + "type": "number" + }, + "former_names": { + "description": "names the vessel has carried before, oldest first", + "items": { + "type": "string" + }, + "type": [ + "null", + "array" + ] + }, + "gross_tonnage": { + "type": "integer" + }, + "home_port": { + "description": "port of registry", + "type": "string" + }, + "identification": { + "description": "the flag state's number for the vessel: a documented vessel's official number, else its state registration", + "type": "string" + }, + "image": { + "description": "the Commons page of a photo of the ship, which shows its license and credit", + "type": "string" + }, + "length": { + "description": "length as registered, metres; may differ from the AIS length", + "type": "number" + }, + "net_tonnage": { + "type": "integer" + }, + "operator": { + "type": "string" + }, + "owner": { + "type": "string" + }, + "registered_name": { + "description": "name as documented with the flag state, when it differs from what AIS reports", + "type": "string" + }, + "registry": { + "description": "country of registry, in English", + "type": "string" + }, + "service": { + "description": "flag-state service type, e.g. Towing Vessel, Passenger (Inspected), Recreational", + "type": "string" + }, + "ship_type": { + "description": "kind of ship, e.g. bulk carrier, container ship, ferry", + "type": "string" + }, + "status": { + "description": "flag-state status, e.g. Active, Laid Up", + "type": "string" + }, + "tonnage_measure": { + "description": "how a tonnage from the flag state was measured: Convention (the international system), Regulatory (the older US system, in register tons), or Simplified (small vessels)", + "type": "string" + }, + "wikipedia": { + "description": "the ship's English Wikipedia article", + "type": "string" + }, + "yard_number": { + "description": "the builder's hull number", + "type": "string" + }, + "year_built": { + "type": "integer" + } + }, + "type": [ + "null", + "object" + ] +} - added
Output schema / properties / vessels / items / properties / provenanceAdded value: +{ + "additionalProperties": { + "type": "string" + }, + "description": "the source of each particulars field, by the field's name; values are keys of sources (get_vessels)", + "type": "object" +} - added
Output schema / properties / vessels / items / properties / sourcesAdded value: +{ + "additionalProperties": { + "additionalProperties": false, + "properties": { + "credit": { + "description": "display credit for the source", + "type": "string" + }, + "license": { + "type": "string" + }, + "url": { + "description": "the source's own page for this vessel", + "type": "string" + } + }, + "required": [ + "credit", + "license" + ], + "type": "object" + }, + "description": "each contributing source's credit, license, and its own page for this vessel (get_vessels)", + "type": "object" +} - removed
Output schema / properties / vessels / items / properties / uscgRemoved value: -{ - "additionalProperties": false, - "description": "particulars as documented with the US Coast Guard, for a US-flag vessel whose call sign and name match a vessel in its PSIX database (get_vessels)", - "properties": { - "beam": { - "description": "registered breadth, metres", - "type": "number" - }, - "depth": { - "description": "registered depth, metres", - "type": "number" - }, - "gross_tonnage": { - "type": "integer" - }, - "id": { - "description": "the vessel's ID in PSIX", - "type": "integer" - }, - "identification": { - "description": "the official number of a documented vessel, else its state registration", - "type": "string" - }, - "length": { - "description": "registered length, metres", - "type": "number" - }, - "license": { - "description": "public domain (U.S. government work), no credit required", - "type": "string" - }, - "name": { - "description": "name as documented with the Coast Guard", - "type": "string" - }, - "net_tonnage": { - "type": "integer" - }, - "service": { - "description": "service type, e.g. Towing Vessel, Passenger (Inspected), Commercial Fishing Vessel, Recreational", - "type": "string" - }, - "status": { - "description": "Coast Guard status, e.g. Active, Laid Up", - "type": "string" - }, - "tonnage_measure": { - "description": "how the tonnage was measured: Convention (the international system), Regulatory (the older US system, in register tons), or Simplified (small vessels)", - "type": "string" - }, - "year_built": { - "type": "integer" - } - }, - "required": [ - "id", - "license", - "name" - ], - "type": [ - "null", - "object" - ] -} - removed
Output schema / properties / vessels / items / properties / wikidataRemoved value: -{ - "additionalProperties": false, - "description": "particulars as registered, from the vessel's Wikidata item found by its IMO number (get_vessels)", - "properties": { - "beam": { - "description": "beam as registered, metres", - "type": "number" - }, - "builder": { - "description": "shipyard or builder", - "type": "string" - }, - "commons_category": { - "description": "the category of the ship's photos on Wikimedia Commons", - "type": "string" - }, - "deadweight": { - "description": "deadweight, tonnes", - "type": "integer" - }, - "draught": { - "description": "design draught, metres; AIS reports the draught on the current voyage", - "type": "number" - }, - "former_names": { - "description": "names the vessel has carried before, oldest first", - "items": { - "type": "string" - }, - "type": [ - "null", - "array" - ] - }, - "gross_tonnage": { - "type": "integer" - }, - "home_port": { - "description": "port of registry", - "type": "string" - }, - "id": { - "description": "Wikidata item ID", - "type": "string" - }, - "image": { - "description": "the Commons page of a photo of the ship, which shows its license and credit", - "type": "string" - }, - "length": { - "description": "length as registered, metres; may differ from the AIS length", - "type": "number" - }, - "license": { - "description": "CC0-1.0: public domain, no credit required; the photos image and commons_category lead to carry their own licenses", - "type": "string" - }, - "operator": { - "type": "string" - }, - "owner": { - "type": "string" - }, - "registry": { - "description": "country of registry, in English", - "type": "string" - }, - "ship_type": { - "description": "kind of ship, e.g. bulk carrier, container ship, oil tanker, ferry", - "type": "string" - }, - "url": { - "description": "the item's page on Wikidata", - "type": "string" - }, - "wikipedia": { - "description": "the ship's English Wikipedia article", - "type": "string" - }, - "yard_number": { - "description": "the builder's hull number", - "type": "string" - }, - "year_built": { - "description": "year the vessel entered service", - "type": "integer" - } - }, - "required": [ - "id", - "url", - "license" - ], - "type": [ - "null", - "object" - ] -}
- Changed
get_vessels5 fields changed- added
Output schema / properties / vessels / items / properties / particularsAdded value: +{ + "additionalProperties": false, + "description": "particulars as registered, merged from the enrichment sources into one vocabulary (get_vessels)", + "properties": { + "beam": { + "description": "beam as registered, metres", + "type": "number" + }, + "builder": { + "description": "shipyard or builder", + "type": "string" + }, + "commons_category": { + "description": "the category of the ship's photos on Wikimedia Commons", + "type": "string" + }, + "deadweight": { + "description": "deadweight, tonnes", + "type": "integer" + }, + "depth": { + "description": "registered depth, metres", + "type": "number" + }, + "draught": { + "description": "design draught, metres; AIS reports the draught on the current voyage", + "type": "number" + }, + "former_names": { + "description": "names the vessel has carried before, oldest first", + "items": { + "type": "string" + }, + "type": [ + "null", + "array" + ] + }, + "gross_tonnage": { + "type": "integer" + }, + "home_port": { + "description": "port of registry", + "type": "string" + }, + "identification": { + "description": "the flag state's number for the vessel: a documented vessel's official number, else its state registration", + "type": "string" + }, + "image": { + "description": "the Commons page of a photo of the ship, which shows its license and credit", + "type": "string" + }, + "length": { + "description": "length as registered, metres; may differ from the AIS length", + "type": "number" + }, + "net_tonnage": { + "type": "integer" + }, + "operator": { + "type": "string" + }, + "owner": { + "type": "string" + }, + "registered_name": { + "description": "name as documented with the flag state, when it differs from what AIS reports", + "type": "string" + }, + "registry": { + "description": "country of registry, in English", + "type": "string" + }, + "service": { + "description": "flag-state service type, e.g. Towing Vessel, Passenger (Inspected), Recreational", + "type": "string" + }, + "ship_type": { + "description": "kind of ship, e.g. bulk carrier, container ship, ferry", + "type": "string" + }, + "status": { + "description": "flag-state status, e.g. Active, Laid Up", + "type": "string" + }, + "tonnage_measure": { + "description": "how a tonnage from the flag state was measured: Convention (the international system), Regulatory (the older US system, in register tons), or Simplified (small vessels)", + "type": "string" + }, + "wikipedia": { + "description": "the ship's English Wikipedia article", + "type": "string" + }, + "yard_number": { + "description": "the builder's hull number", + "type": "string" + }, + "year_built": { + "type": "integer" + } + }, + "type": [ + "null", + "object" + ] +} - added
Output schema / properties / vessels / items / properties / provenanceAdded value: +{ + "additionalProperties": { + "type": "string" + }, + "description": "the source of each particulars field, by the field's name; values are keys of sources (get_vessels)", + "type": "object" +} - added
Output schema / properties / vessels / items / properties / sourcesAdded value: +{ + "additionalProperties": { + "additionalProperties": false, + "properties": { + "credit": { + "description": "display credit for the source", + "type": "string" + }, + "license": { + "type": "string" + }, + "url": { + "description": "the source's own page for this vessel", + "type": "string" + } + }, + "required": [ + "credit", + "license" + ], + "type": "object" + }, + "description": "each contributing source's credit, license, and its own page for this vessel (get_vessels)", + "type": "object" +} - removed
Output schema / properties / vessels / items / properties / uscgRemoved value: -{ - "additionalProperties": false, - "description": "particulars as documented with the US Coast Guard, for a US-flag vessel whose call sign and name match a vessel in its PSIX database (get_vessels)", - "properties": { - "beam": { - "description": "registered breadth, metres", - "type": "number" - }, - "depth": { - "description": "registered depth, metres", - "type": "number" - }, - "gross_tonnage": { - "type": "integer" - }, - "id": { - "description": "the vessel's ID in PSIX", - "type": "integer" - }, - "identification": { - "description": "the official number of a documented vessel, else its state registration", - "type": "string" - }, - "length": { - "description": "registered length, metres", - "type": "number" - }, - "license": { - "description": "public domain (U.S. government work), no credit required", - "type": "string" - }, - "name": { - "description": "name as documented with the Coast Guard", - "type": "string" - }, - "net_tonnage": { - "type": "integer" - }, - "service": { - "description": "service type, e.g. Towing Vessel, Passenger (Inspected), Commercial Fishing Vessel, Recreational", - "type": "string" - }, - "status": { - "description": "Coast Guard status, e.g. Active, Laid Up", - "type": "string" - }, - "tonnage_measure": { - "description": "how the tonnage was measured: Convention (the international system), Regulatory (the older US system, in register tons), or Simplified (small vessels)", - "type": "string" - }, - "year_built": { - "type": "integer" - } - }, - "required": [ - "id", - "license", - "name" - ], - "type": [ - "null", - "object" - ] -} - removed
Output schema / properties / vessels / items / properties / wikidataRemoved value: -{ - "additionalProperties": false, - "description": "particulars as registered, from the vessel's Wikidata item found by its IMO number (get_vessels)", - "properties": { - "beam": { - "description": "beam as registered, metres", - "type": "number" - }, - "builder": { - "description": "shipyard or builder", - "type": "string" - }, - "commons_category": { - "description": "the category of the ship's photos on Wikimedia Commons", - "type": "string" - }, - "deadweight": { - "description": "deadweight, tonnes", - "type": "integer" - }, - "draught": { - "description": "design draught, metres; AIS reports the draught on the current voyage", - "type": "number" - }, - "former_names": { - "description": "names the vessel has carried before, oldest first", - "items": { - "type": "string" - }, - "type": [ - "null", - "array" - ] - }, - "gross_tonnage": { - "type": "integer" - }, - "home_port": { - "description": "port of registry", - "type": "string" - }, - "id": { - "description": "Wikidata item ID", - "type": "string" - }, - "image": { - "description": "the Commons page of a photo of the ship, which shows its license and credit", - "type": "string" - }, - "length": { - "description": "length as registered, metres; may differ from the AIS length", - "type": "number" - }, - "license": { - "description": "CC0-1.0: public domain, no credit required; the photos image and commons_category lead to carry their own licenses", - "type": "string" - }, - "operator": { - "type": "string" - }, - "owner": { - "type": "string" - }, - "registry": { - "description": "country of registry, in English", - "type": "string" - }, - "ship_type": { - "description": "kind of ship, e.g. bulk carrier, container ship, oil tanker, ferry", - "type": "string" - }, - "url": { - "description": "the item's page on Wikidata", - "type": "string" - }, - "wikipedia": { - "description": "the ship's English Wikipedia article", - "type": "string" - }, - "yard_number": { - "description": "the builder's hull number", - "type": "string" - }, - "year_built": { - "description": "year the vessel entered service", - "type": "integer" - } - }, - "required": [ - "id", - "url", - "license" - ], - "type": [ - "null", - "object" - ] -}
- Changed
search_vessels_by_name5 fields changed- added
Output schema / properties / vessels / items / properties / particularsAdded value: +{ + "additionalProperties": false, + "description": "particulars as registered, merged from the enrichment sources into one vocabulary (get_vessels)", + "properties": { + "beam": { + "description": "beam as registered, metres", + "type": "number" + }, + "builder": { + "description": "shipyard or builder", + "type": "string" + }, + "commons_category": { + "description": "the category of the ship's photos on Wikimedia Commons", + "type": "string" + }, + "deadweight": { + "description": "deadweight, tonnes", + "type": "integer" + }, + "depth": { + "description": "registered depth, metres", + "type": "number" + }, + "draught": { + "description": "design draught, metres; AIS reports the draught on the current voyage", + "type": "number" + }, + "former_names": { + "description": "names the vessel has carried before, oldest first", + "items": { + "type": "string" + }, + "type": [ + "null", + "array" + ] + }, + "gross_tonnage": { + "type": "integer" + }, + "home_port": { + "description": "port of registry", + "type": "string" + }, + "identification": { + "description": "the flag state's number for the vessel: a documented vessel's official number, else its state registration", + "type": "string" + }, + "image": { + "description": "the Commons page of a photo of the ship, which shows its license and credit", + "type": "string" + }, + "length": { + "description": "length as registered, metres; may differ from the AIS length", + "type": "number" + }, + "net_tonnage": { + "type": "integer" + }, + "operator": { + "type": "string" + }, + "owner": { + "type": "string" + }, + "registered_name": { + "description": "name as documented with the flag state, when it differs from what AIS reports", + "type": "string" + }, + "registry": { + "description": "country of registry, in English", + "type": "string" + }, + "service": { + "description": "flag-state service type, e.g. Towing Vessel, Passenger (Inspected), Recreational", + "type": "string" + }, + "ship_type": { + "description": "kind of ship, e.g. bulk carrier, container ship, ferry", + "type": "string" + }, + "status": { + "description": "flag-state status, e.g. Active, Laid Up", + "type": "string" + }, + "tonnage_measure": { + "description": "how a tonnage from the flag state was measured: Convention (the international system), Regulatory (the older US system, in register tons), or Simplified (small vessels)", + "type": "string" + }, + "wikipedia": { + "description": "the ship's English Wikipedia article", + "type": "string" + }, + "yard_number": { + "description": "the builder's hull number", + "type": "string" + }, + "year_built": { + "type": "integer" + } + }, + "type": [ + "null", + "object" + ] +} - added
Output schema / properties / vessels / items / properties / provenanceAdded value: +{ + "additionalProperties": { + "type": "string" + }, + "description": "the source of each particulars field, by the field's name; values are keys of sources (get_vessels)", + "type": "object" +} - added
Output schema / properties / vessels / items / properties / sourcesAdded value: +{ + "additionalProperties": { + "additionalProperties": false, + "properties": { + "credit": { + "description": "display credit for the source", + "type": "string" + }, + "license": { + "type": "string" + }, + "url": { + "description": "the source's own page for this vessel", + "type": "string" + } + }, + "required": [ + "credit", + "license" + ], + "type": "object" + }, + "description": "each contributing source's credit, license, and its own page for this vessel (get_vessels)", + "type": "object" +} - removed
Output schema / properties / vessels / items / properties / uscgRemoved value: -{ - "additionalProperties": false, - "description": "particulars as documented with the US Coast Guard, for a US-flag vessel whose call sign and name match a vessel in its PSIX database (get_vessels)", - "properties": { - "beam": { - "description": "registered breadth, metres", - "type": "number" - }, - "depth": { - "description": "registered depth, metres", - "type": "number" - }, - "gross_tonnage": { - "type": "integer" - }, - "id": { - "description": "the vessel's ID in PSIX", - "type": "integer" - }, - "identification": { - "description": "the official number of a documented vessel, else its state registration", - "type": "string" - }, - "length": { - "description": "registered length, metres", - "type": "number" - }, - "license": { - "description": "public domain (U.S. government work), no credit required", - "type": "string" - }, - "name": { - "description": "name as documented with the Coast Guard", - "type": "string" - }, - "net_tonnage": { - "type": "integer" - }, - "service": { - "description": "service type, e.g. Towing Vessel, Passenger (Inspected), Commercial Fishing Vessel, Recreational", - "type": "string" - }, - "status": { - "description": "Coast Guard status, e.g. Active, Laid Up", - "type": "string" - }, - "tonnage_measure": { - "description": "how the tonnage was measured: Convention (the international system), Regulatory (the older US system, in register tons), or Simplified (small vessels)", - "type": "string" - }, - "year_built": { - "type": "integer" - } - }, - "required": [ - "id", - "license", - "name" - ], - "type": [ - "null", - "object" - ] -} - removed
Output schema / properties / vessels / items / properties / wikidataRemoved value: -{ - "additionalProperties": false, - "description": "particulars as registered, from the vessel's Wikidata item found by its IMO number (get_vessels)", - "properties": { - "beam": { - "description": "beam as registered, metres", - "type": "number" - }, - "builder": { - "description": "shipyard or builder", - "type": "string" - }, - "commons_category": { - "description": "the category of the ship's photos on Wikimedia Commons", - "type": "string" - }, - "deadweight": { - "description": "deadweight, tonnes", - "type": "integer" - }, - "draught": { - "description": "design draught, metres; AIS reports the draught on the current voyage", - "type": "number" - }, - "former_names": { - "description": "names the vessel has carried before, oldest first", - "items": { - "type": "string" - }, - "type": [ - "null", - "array" - ] - }, - "gross_tonnage": { - "type": "integer" - }, - "home_port": { - "description": "port of registry", - "type": "string" - }, - "id": { - "description": "Wikidata item ID", - "type": "string" - }, - "image": { - "description": "the Commons page of a photo of the ship, which shows its license and credit", - "type": "string" - }, - "length": { - "description": "length as registered, metres; may differ from the AIS length", - "type": "number" - }, - "license": { - "description": "CC0-1.0: public domain, no credit required; the photos image and commons_category lead to carry their own licenses", - "type": "string" - }, - "operator": { - "type": "string" - }, - "owner": { - "type": "string" - }, - "registry": { - "description": "country of registry, in English", - "type": "string" - }, - "ship_type": { - "description": "kind of ship, e.g. bulk carrier, container ship, oil tanker, ferry", - "type": "string" - }, - "url": { - "description": "the item's page on Wikidata", - "type": "string" - }, - "wikipedia": { - "description": "the ship's English Wikipedia article", - "type": "string" - }, - "yard_number": { - "description": "the builder's hull number", - "type": "string" - }, - "year_built": { - "description": "year the vessel entered service", - "type": "integer" - } - }, - "required": [ - "id", - "url", - "license" - ], - "type": [ - "null", - "object" - ] -}
4 tool updates
- Changed
find_vessels_in_area2 fields changed- added
Output schema / properties / vessels / items / properties / uscgAdded value: +{ + "additionalProperties": false, + "description": "particulars as documented with the US Coast Guard, for a US-flag vessel whose call sign and name match a vessel in its PSIX database (get_vessels)", + "properties": { + "beam": { + "description": "registered breadth, metres", + "type": "number" + }, + "depth": { + "description": "registered depth, metres", + "type": "number" + }, + "gross_tonnage": { + "type": "integer" + }, + "id": { + "description": "the vessel's ID in PSIX", + "type": "integer" + }, + "identification": { + "description": "the official number of a documented vessel, else its state registration", + "type": "string" + }, + "length": { + "description": "registered length, metres", + "type": "number" + }, + "license": { + "description": "public domain (U.S. government work), no credit required", + "type": "string" + }, + "name": { + "description": "name as documented with the Coast Guard", + "type": "string" + }, + "net_tonnage": { + "type": "integer" + }, + "service": { + "description": "service type, e.g. Towing Vessel, Passenger (Inspected), Commercial Fishing Vessel, Recreational", + "type": "string" + }, + "status": { + "description": "Coast Guard status, e.g. Active, Laid Up", + "type": "string" + }, + "tonnage_measure": { + "description": "how the tonnage was measured: Convention (the international system), Regulatory (the older US system, in register tons), or Simplified (small vessels)", + "type": "string" + }, + "year_built": { + "type": "integer" + } + }, + "required": [ + "id", + "license", + "name" + ], + "type": [ + "null", + "object" + ] +} - added
Output schema / properties / vessels / items / properties / wikidataAdded value: +{ + "additionalProperties": false, + "description": "particulars as registered, from the vessel's Wikidata item found by its IMO number (get_vessels)", + "properties": { + "beam": { + "description": "beam as registered, metres", + "type": "number" + }, + "builder": { + "description": "shipyard or builder", + "type": "string" + }, + "commons_category": { + "description": "the category of the ship's photos on Wikimedia Commons", + "type": "string" + }, + "deadweight": { + "description": "deadweight, tonnes", + "type": "integer" + }, + "draught": { + "description": "design draught, metres; AIS reports the draught on the current voyage", + "type": "number" + }, + "former_names": { + "description": "names the vessel has carried before, oldest first", + "items": { + "type": "string" + }, + "type": [ + "null", + "array" + ] + }, + "gross_tonnage": { + "type": "integer" + }, + "home_port": { + "description": "port of registry", + "type": "string" + }, + "id": { + "description": "Wikidata item ID", + "type": "string" + }, + "image": { + "description": "the Commons page of a photo of the ship, which shows its license and credit", + "type": "string" + }, + "length": { + "description": "length as registered, metres; may differ from the AIS length", + "type": "number" + }, + "license": { + "description": "CC0-1.0: public domain, no credit required; the photos image and commons_category lead to carry their own licenses", + "type": "string" + }, + "operator": { + "type": "string" + }, + "owner": { + "type": "string" + }, + "registry": { + "description": "country of registry, in English", + "type": "string" + }, + "ship_type": { + "description": "kind of ship, e.g. bulk carrier, container ship, oil tanker, ferry", + "type": "string" + }, + "url": { + "description": "the item's page on Wikidata", + "type": "string" + }, + "wikipedia": { + "description": "the ship's English Wikipedia article", + "type": "string" + }, + "yard_number": { + "description": "the builder's hull number", + "type": "string" + }, + "year_built": { + "description": "year the vessel entered service", + "type": "integer" + } + }, + "required": [ + "id", + "url", + "license" + ], + "type": [ + "null", + "object" + ] +}
- Changed
find_vessels_near2 fields changed- added
Output schema / properties / vessels / items / properties / uscgAdded value: +{ + "additionalProperties": false, + "description": "particulars as documented with the US Coast Guard, for a US-flag vessel whose call sign and name match a vessel in its PSIX database (get_vessels)", + "properties": { + "beam": { + "description": "registered breadth, metres", + "type": "number" + }, + "depth": { + "description": "registered depth, metres", + "type": "number" + }, + "gross_tonnage": { + "type": "integer" + }, + "id": { + "description": "the vessel's ID in PSIX", + "type": "integer" + }, + "identification": { + "description": "the official number of a documented vessel, else its state registration", + "type": "string" + }, + "length": { + "description": "registered length, metres", + "type": "number" + }, + "license": { + "description": "public domain (U.S. government work), no credit required", + "type": "string" + }, + "name": { + "description": "name as documented with the Coast Guard", + "type": "string" + }, + "net_tonnage": { + "type": "integer" + }, + "service": { + "description": "service type, e.g. Towing Vessel, Passenger (Inspected), Commercial Fishing Vessel, Recreational", + "type": "string" + }, + "status": { + "description": "Coast Guard status, e.g. Active, Laid Up", + "type": "string" + }, + "tonnage_measure": { + "description": "how the tonnage was measured: Convention (the international system), Regulatory (the older US system, in register tons), or Simplified (small vessels)", + "type": "string" + }, + "year_built": { + "type": "integer" + } + }, + "required": [ + "id", + "license", + "name" + ], + "type": [ + "null", + "object" + ] +} - added
Output schema / properties / vessels / items / properties / wikidataAdded value: +{ + "additionalProperties": false, + "description": "particulars as registered, from the vessel's Wikidata item found by its IMO number (get_vessels)", + "properties": { + "beam": { + "description": "beam as registered, metres", + "type": "number" + }, + "builder": { + "description": "shipyard or builder", + "type": "string" + }, + "commons_category": { + "description": "the category of the ship's photos on Wikimedia Commons", + "type": "string" + }, + "deadweight": { + "description": "deadweight, tonnes", + "type": "integer" + }, + "draught": { + "description": "design draught, metres; AIS reports the draught on the current voyage", + "type": "number" + }, + "former_names": { + "description": "names the vessel has carried before, oldest first", + "items": { + "type": "string" + }, + "type": [ + "null", + "array" + ] + }, + "gross_tonnage": { + "type": "integer" + }, + "home_port": { + "description": "port of registry", + "type": "string" + }, + "id": { + "description": "Wikidata item ID", + "type": "string" + }, + "image": { + "description": "the Commons page of a photo of the ship, which shows its license and credit", + "type": "string" + }, + "length": { + "description": "length as registered, metres; may differ from the AIS length", + "type": "number" + }, + "license": { + "description": "CC0-1.0: public domain, no credit required; the photos image and commons_category lead to carry their own licenses", + "type": "string" + }, + "operator": { + "type": "string" + }, + "owner": { + "type": "string" + }, + "registry": { + "description": "country of registry, in English", + "type": "string" + }, + "ship_type": { + "description": "kind of ship, e.g. bulk carrier, container ship, oil tanker, ferry", + "type": "string" + }, + "url": { + "description": "the item's page on Wikidata", + "type": "string" + }, + "wikipedia": { + "description": "the ship's English Wikipedia article", + "type": "string" + }, + "yard_number": { + "description": "the builder's hull number", + "type": "string" + }, + "year_built": { + "description": "year the vessel entered service", + "type": "integer" + } + }, + "required": [ + "id", + "url", + "license" + ], + "type": [ + "null", + "object" + ] +}
- Changed
get_vessels2 fields changed- added
Output schema / properties / vessels / items / properties / uscgAdded value: +{ + "additionalProperties": false, + "description": "particulars as documented with the US Coast Guard, for a US-flag vessel whose call sign and name match a vessel in its PSIX database (get_vessels)", + "properties": { + "beam": { + "description": "registered breadth, metres", + "type": "number" + }, + "depth": { + "description": "registered depth, metres", + "type": "number" + }, + "gross_tonnage": { + "type": "integer" + }, + "id": { + "description": "the vessel's ID in PSIX", + "type": "integer" + }, + "identification": { + "description": "the official number of a documented vessel, else its state registration", + "type": "string" + }, + "length": { + "description": "registered length, metres", + "type": "number" + }, + "license": { + "description": "public domain (U.S. government work), no credit required", + "type": "string" + }, + "name": { + "description": "name as documented with the Coast Guard", + "type": "string" + }, + "net_tonnage": { + "type": "integer" + }, + "service": { + "description": "service type, e.g. Towing Vessel, Passenger (Inspected), Commercial Fishing Vessel, Recreational", + "type": "string" + }, + "status": { + "description": "Coast Guard status, e.g. Active, Laid Up", + "type": "string" + }, + "tonnage_measure": { + "description": "how the tonnage was measured: Convention (the international system), Regulatory (the older US system, in register tons), or Simplified (small vessels)", + "type": "string" + }, + "year_built": { + "type": "integer" + } + }, + "required": [ + "id", + "license", + "name" + ], + "type": [ + "null", + "object" + ] +} - added
Output schema / properties / vessels / items / properties / wikidataAdded value: +{ + "additionalProperties": false, + "description": "particulars as registered, from the vessel's Wikidata item found by its IMO number (get_vessels)", + "properties": { + "beam": { + "description": "beam as registered, metres", + "type": "number" + }, + "builder": { + "description": "shipyard or builder", + "type": "string" + }, + "commons_category": { + "description": "the category of the ship's photos on Wikimedia Commons", + "type": "string" + }, + "deadweight": { + "description": "deadweight, tonnes", + "type": "integer" + }, + "draught": { + "description": "design draught, metres; AIS reports the draught on the current voyage", + "type": "number" + }, + "former_names": { + "description": "names the vessel has carried before, oldest first", + "items": { + "type": "string" + }, + "type": [ + "null", + "array" + ] + }, + "gross_tonnage": { + "type": "integer" + }, + "home_port": { + "description": "port of registry", + "type": "string" + }, + "id": { + "description": "Wikidata item ID", + "type": "string" + }, + "image": { + "description": "the Commons page of a photo of the ship, which shows its license and credit", + "type": "string" + }, + "length": { + "description": "length as registered, metres; may differ from the AIS length", + "type": "number" + }, + "license": { + "description": "CC0-1.0: public domain, no credit required; the photos image and commons_category lead to carry their own licenses", + "type": "string" + }, + "operator": { + "type": "string" + }, + "owner": { + "type": "string" + }, + "registry": { + "description": "country of registry, in English", + "type": "string" + }, + "ship_type": { + "description": "kind of ship, e.g. bulk carrier, container ship, oil tanker, ferry", + "type": "string" + }, + "url": { + "description": "the item's page on Wikidata", + "type": "string" + }, + "wikipedia": { + "description": "the ship's English Wikipedia article", + "type": "string" + }, + "yard_number": { + "description": "the builder's hull number", + "type": "string" + }, + "year_built": { + "description": "year the vessel entered service", + "type": "integer" + } + }, + "required": [ + "id", + "url", + "license" + ], + "type": [ + "null", + "object" + ] +}
- Changed
search_vessels_by_name2 fields changed- added
Output schema / properties / vessels / items / properties / uscgAdded value: +{ + "additionalProperties": false, + "description": "particulars as documented with the US Coast Guard, for a US-flag vessel whose call sign and name match a vessel in its PSIX database (get_vessels)", + "properties": { + "beam": { + "description": "registered breadth, metres", + "type": "number" + }, + "depth": { + "description": "registered depth, metres", + "type": "number" + }, + "gross_tonnage": { + "type": "integer" + }, + "id": { + "description": "the vessel's ID in PSIX", + "type": "integer" + }, + "identification": { + "description": "the official number of a documented vessel, else its state registration", + "type": "string" + }, + "length": { + "description": "registered length, metres", + "type": "number" + }, + "license": { + "description": "public domain (U.S. government work), no credit required", + "type": "string" + }, + "name": { + "description": "name as documented with the Coast Guard", + "type": "string" + }, + "net_tonnage": { + "type": "integer" + }, + "service": { + "description": "service type, e.g. Towing Vessel, Passenger (Inspected), Commercial Fishing Vessel, Recreational", + "type": "string" + }, + "status": { + "description": "Coast Guard status, e.g. Active, Laid Up", + "type": "string" + }, + "tonnage_measure": { + "description": "how the tonnage was measured: Convention (the international system), Regulatory (the older US system, in register tons), or Simplified (small vessels)", + "type": "string" + }, + "year_built": { + "type": "integer" + } + }, + "required": [ + "id", + "license", + "name" + ], + "type": [ + "null", + "object" + ] +} - added
Output schema / properties / vessels / items / properties / wikidataAdded value: +{ + "additionalProperties": false, + "description": "particulars as registered, from the vessel's Wikidata item found by its IMO number (get_vessels)", + "properties": { + "beam": { + "description": "beam as registered, metres", + "type": "number" + }, + "builder": { + "description": "shipyard or builder", + "type": "string" + }, + "commons_category": { + "description": "the category of the ship's photos on Wikimedia Commons", + "type": "string" + }, + "deadweight": { + "description": "deadweight, tonnes", + "type": "integer" + }, + "draught": { + "description": "design draught, metres; AIS reports the draught on the current voyage", + "type": "number" + }, + "former_names": { + "description": "names the vessel has carried before, oldest first", + "items": { + "type": "string" + }, + "type": [ + "null", + "array" + ] + }, + "gross_tonnage": { + "type": "integer" + }, + "home_port": { + "description": "port of registry", + "type": "string" + }, + "id": { + "description": "Wikidata item ID", + "type": "string" + }, + "image": { + "description": "the Commons page of a photo of the ship, which shows its license and credit", + "type": "string" + }, + "length": { + "description": "length as registered, metres; may differ from the AIS length", + "type": "number" + }, + "license": { + "description": "CC0-1.0: public domain, no credit required; the photos image and commons_category lead to carry their own licenses", + "type": "string" + }, + "operator": { + "type": "string" + }, + "owner": { + "type": "string" + }, + "registry": { + "description": "country of registry, in English", + "type": "string" + }, + "ship_type": { + "description": "kind of ship, e.g. bulk carrier, container ship, oil tanker, ferry", + "type": "string" + }, + "url": { + "description": "the item's page on Wikidata", + "type": "string" + }, + "wikipedia": { + "description": "the ship's English Wikipedia article", + "type": "string" + }, + "yard_number": { + "description": "the builder's hull number", + "type": "string" + }, + "year_built": { + "description": "year the vessel entered service", + "type": "integer" + } + }, + "required": [ + "id", + "url", + "license" + ], + "type": [ + "null", + "object" + ] +}
1 tool update
- Changed
get_coverage8 fields changed- added
Input schema / properties / max_ageAdded value: +{ + "description": "count vessels heard within this long, network-wide and in bbox, instead of the last 30 minutes: a duration such as 6h, 24h, or 7d, or all for every vessel the network has heard", + "type": "string" +} - changed
Output schema / properties / area / properties / vessels / descriptionPrevious value: -"vessels with a position inside the box"New value: +"vessels whose last known position is inside the box, heard in the last 30 minutes or within max_age" - added
Output schema / properties / vessels / properties / activeAdded value: +{ + "description": "vessels heard in the last 30 minutes", + "type": "integer" +} - added
Output schema / properties / vessels / properties / heardAdded value: +{ + "description": "vessels heard within max_age; present when max_age is given", + "type": [ + "null", + "integer" + ] +} - added
Output schema / properties / vessels / properties / newAdded value: +{ + "description": "vessels first heard within max_age; present when max_age is a duration", + "type": [ + "null", + "integer" + ] +} - changed
Output schema / properties / vessels / properties / total / descriptionPrevious value: -"vessels heard in the last 30 minutes"New value: +"every vessel the network has heard" - added
Output schema / properties / vessels / properties / with_position / descriptionAdded value: +"of the active vessels, those with a position" - changed
Output schema / properties / vessels / requiredPrevious value: -[ - "total", - "with_position" -]New value: +[ + "total", + "active", + "with_position" +]
1 tool update
- Changed
get_vessel_track5 fields changed- changed
Input schema / properties / from / descriptionPrevious 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" - changed
Input schema / properties / interval_minutes / descriptionPrevious 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" - changed
Output schema / properties / from / descriptionPrevious 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" - added
Output schema / properties / interval_sAdded value: +{ + "description": "at most one position per this many seconds; 0 is every position heard", + "type": "integer" +} - changed
Output schema / requiredPrevious value: -[ - "mmsi", - "from", - "to", - "positions", - "truncated", - "attribution" -]New value: +[ + "mmsi", + "from", + "to", + "interval_s", + "positions", + "truncated", + "attribution" +]
1 tool update
- Added
get_vessel_track
4 tool updates
- Changed
find_vessels_in_area2 fields changed- changed
Output schema / properties / unknown_imo / descriptionPrevious value: -"requested IMO numbers matching no vessel heard in the last 30 minutes"New value: +"requested IMO numbers matching no vessel the network has heard" - changed
Output schema / properties / unknown_mmsi / descriptionPrevious value: -"requested MMSIs not heard in the last 30 minutes"New value: +"requested MMSIs matching no vessel the network has heard"
- Changed
find_vessels_near2 fields changed- changed
Output schema / properties / unknown_imo / descriptionPrevious value: -"requested IMO numbers matching no vessel heard in the last 30 minutes"New value: +"requested IMO numbers matching no vessel the network has heard" - changed
Output schema / properties / unknown_mmsi / descriptionPrevious value: -"requested MMSIs not heard in the last 30 minutes"New value: +"requested MMSIs matching no vessel the network has heard"
- Changed
get_vessels2 fields changed- changed
Output schema / properties / unknown_imo / descriptionPrevious value: -"requested IMO numbers matching no vessel heard in the last 30 minutes"New value: +"requested IMO numbers matching no vessel the network has heard" - changed
Output schema / properties / unknown_mmsi / descriptionPrevious value: -"requested MMSIs not heard in the last 30 minutes"New value: +"requested MMSIs matching no vessel the network has heard"
- Changed
search_vessels_by_name2 fields changed- changed
Output schema / properties / unknown_imo / descriptionPrevious value: -"requested IMO numbers matching no vessel heard in the last 30 minutes"New value: +"requested IMO numbers matching no vessel the network has heard" - changed
Output schema / properties / unknown_mmsi / descriptionPrevious value: -"requested MMSIs not heard in the last 30 minutes"New value: +"requested MMSIs matching no vessel the network has heard"
Related MCP Connectors
Vessel Tracking โ live worldwide ship positions from AIS.
Vessel tracking for 750,000+ ships, with ownership, inspections, port records, routes, and more.
Live AIS vessel tracking for the Baltic Sea and Gulf of Finland via Fintraffic's open Digitraffic
Live AIS ship positions, vessel history, port calls and events, plus sanctions flags. Read-only.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceProvides live vessel positions from Fintraffic's AIS receivers in Finnish and Baltic waters, with tools to query vessels near a point, count vessels in an area, and get details by MMSI. No authentication required.13 npmMIT
- AlicenseNot gradedqualityBmaintenanceMCP server for live ship tracking via AIS data. Provides tools to get vessels in an area, live position by MMSI, and AIS coverage checks.12 npmMIT

Datalastic MCP Serverofficial
AlicenseNot gradedqualityCmaintenanceEnables real-time vessel tracking, port data, maritime weather, and maritime intelligence through 25 tools, allowing AI clients to query live vessel positions, registry, port info, area searches, weather, and more.MIT- AlicenseNot gradedqualityBmaintenanceProvides live AIS vessel positions from datalastic.com, enabling querying of vessel data through natural language via the Pipeworx MCP gateway.266 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.