Skip to main content
Glama

Datalastic Vessel Tracking & Maritime Intelligence

Server Details

Vessel tracking for 750,000+ ships, with ownership, inspections, port records, routes, and more.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
datalastic/mcp-server-datalastic
GitHub Stars
0
Server Listing
Datalastic MCP Server

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.4/5 across 25 of 25 tools scored. Lowest: 3.7/5.

Server CoherenceA
Disambiguation5/5

Each tool has a clearly distinct purpose: vessel tracking (get_vessel, get_vessel_pro, get_vessel_history, get_vessel_info, estimated_vessel_position), registry search (find_vessels, find_ports), port details (get_port), weather (get_weather), sea route (sea_route), async reports (report_*), and intelligence modules (intel_*). Even similar tools like find_vessels vs get_vessel are well-differentiated by their descriptions.

Naming Consistency5/5

All tool names follow a consistent lowercase underscore pattern with a verb_noun structure (e.g., get_vessel, find_ports, sea_route). The intel_* tools use a uniform prefix for intelligence operations, maintaining predictability across the set.

Tool Count3/5

With 25 tools, this server is at the upper boundary of the borderline range. While the tools are well-organized and necessary for the comprehensive maritime intelligence domain, the count feels slightly heavy compared to an ideal 3-15 tool scope.

Completeness5/5

The tool surface is remarkably complete: it covers vessel tracking (live, historic, estimated), registry search, port details, weather, sea route calculation, async report management, and a full suite of intelligence reports (casualties, inspections, ownership, etc.). There are no obvious gaps for maritime vessel tracking and intelligence tasks.

Available Tools

25 tools
estimated_vessel_positionEstimate a vessel's current position (SAT-E)AInspect

Estimate where a vessel is right now when its last AIS position is stale — Datalastic uses terrestrial AIS only, so a ship in open ocean can be many hours old. The position is calculated from the last known fix, the recognized destination port, and the route-based ETA. It is an ESTIMATE, not an observed position.

Tool selection — use this LAST: prefer get_vessel for a live position (cheapest); prefer get_vessel_pro when the user wants the ETA or recognized destination. Only reach for this tool when BOTH hold: (1) a prior get_vessel/get_vessel_pro lookup shows the last known position is old, and (2) the vessel has a destination and an ETA. It is the heaviest call (it builds a route) and adds nothing when get_vessel already returns a recent position.

Because it is an estimate, OFFER it to the user first rather than calling it silently, and when you present the result make clear it is an estimated position, not a real fix. If estimated_position equals the last known lat/lon, the system could not extrapolate (the position is recent, or the ETA is missing/outdated) — say so instead of implying movement.

ParametersJSON Schema
NameRequiredDescriptionDefault
imoNoVessel IMO number, exactly 7 digits. Provide exactly one of mmsi, imo, or uuid.
mmsiNoVessel MMSI identifier, exactly 9 digits. Provide exactly one of mmsi, imo, or uuid.
uuidNoDatalastic internal vessel UUID. Provide exactly one of mmsi, imo, or uuid.

Output Schema

ParametersJSON Schema
NameRequiredDescription
eniYes
imoYes
latYes
lonYes
mmsiYes
nameYes
typeYes
uuidYes
speedYes
courseYes
atd_UTCYes
eta_UTCYes
headingYes
dep_portYes
timezoneYes
atd_epochYes
dest_portYes
eta_epochYes
country_isoYes
destinationYes
dep_port_uuidYes
type_specificYes
dest_port_uuidYes
current_draughtYes
dep_port_unlocodeYes
last_position_UTCYes
navigation_statusYes
dest_port_unlocodeYes
estimated_positionYes
last_position_epochYes
timezone_offset_secYes
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations, but description discloses it's an estimate, explains calculation method, and warns when extrapolation fails. Full transparency on behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with purpose first, then usage, then behavioral notes. Dense with useful info but slightly lengthy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return values not needed. Covers use case, alternatives, error cases, and user presentation. Very complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear descriptions of each parameter. Description does not add new parameter info but baseline is appropriate for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool estimates a vessel's current position when last AIS is stale, distinguishing it from siblings like get_vessel (live position) and get_vessel_pro (ETA/destination).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises to use this LAST after get_vessel and get_vessel_pro, only when both conditions hold, and suggests offering to user first. Also provides guidance on interpreting the result.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_portsSearch for portsAInspect

Search the port registry and return matching ports (identity, country, UN/LOCODE, classification, coordinates, maritime area). Search by name (optionally fuzzy), UN/LOCODE, classification, country, or geographically (lat + lon + radius in nautical miles). Always returns a list, even for a single match. Use this to discover ports or resolve a name to a UN/LOCODE/uuid; for full detail on one known port (including terminals) use get_port.

ParametersJSON Schema
NameRequiredDescriptionDefault
latNoCenter latitude for a geographic search (use with lon and radius).
lonNoCenter longitude for a geographic search (use with lat and radius).
nameNoPort name to search for (set fuzzy for approximate matching).
uuidNoDatalastic port UUID.
fuzzyNoMatch the name approximately instead of exactly.
radiusNoSearch radius in nautical miles (max 50); requires lat and lon.
unlocodeNoPort UN/LOCODE: 5 alphanumeric characters (case-insensitive).
port_typeNoFilter by classification. One of: Port, Anchorage, Marina, Offshore Terminal, Shelter, Demolition Yard, Canal, Fishing Harbour.
country_isoNo2-letter ISO country code (e.g. GB).

Output Schema

ParametersJSON Schema
NameRequiredDescription
portsYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses that the tool always returns a list, even for a single match, and lists return fields. However, it does not explicitly state that the tool is read-only or safe, which is a minor gap. Overall, good transparency for a search tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each packed with information: first states function and output, second lists search options, third clarifies always-returns-list and distinguishes sibling. No redundant words, front-loaded with key details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 9 parameters, 0 required, and an output schema, the description covers main use cases, search capabilities, and return behavior. It provides a fallback to get_port. Lacks mention of pagination or maximum results, but schema covers radius limit. Very good completeness for agent to understand tool scope.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description provides a higher-level summary of search methods but does not significantly add meaning beyond the schema. The always-returns-list behavior is context, not parameter-specific. Score remains at baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches the port registry and returns matching ports with specific fields. It distinguishes from the sibling tool get_port by noting that get_port is for full detail on a known port.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use: to discover ports or resolve a name to UN/LOCODE/uuid. Also specifies when not to use: for full detail on one known port, use get_port. Provides clear context for agent decision-making.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_vesselsFind vessels (registry search)AInspect

Search the vessel registry by any combination of name (optionally fuzzy), type, flag country, dimensions, tonnage, or year built — no MMSI or IMO needed. Returns up to 500 static specification records per page (tonnage, dimensions, year built, home port, callsign, etc.) — this is reference data, NOT live position. Provide at least one search criterion; use the response's next token via the next argument to page. Credits: 1 per vessel found. For a vessel's live position use get_vessel; for vessels currently in an area use get_vessels_in_radius.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoVessel name to search for. Combine with fuzzy for similar-name matching.
nextNoPagination token from a previous response's next field, to fetch the next page (up to 500 results per page).
typeNoFilter by vessel type (e.g. Cargo, Tanker).
fuzzyNoIf true, match similar/approximate names; if false (default) the name must match exactly. Only meaningful together with name.
length_maxNoMaximum length (meters).
length_minNoMinimum length (meters).
breadth_maxNoMaximum breadth (meters).
breadth_minNoMinimum breadth (meters).
country_isoNoFilter by flag country, 2-letter ISO code (e.g. MT).
type_specificNoFilter by vessel subtype (e.g. Bulk Carrier).
deadweight_maxNoMaximum deadweight (tonnes).
deadweight_minNoMinimum deadweight (tonnes).
year_built_maxNoLatest year built.
year_built_minNoEarliest year built.
gross_tonnage_maxNoMaximum gross tonnage.
gross_tonnage_minNoMinimum gross tonnage.
include_unknown_typeNoInclude vessels with no/unknown type. Maps to the API's _empty_.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nextYes
vesselsYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description fully bears the burden. It discloses that the tool returns static specification records (reference data, not live position), pagination limits, and credits per vessel. It lacks explicit mention of read-only nature, but it is implied by the context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is about 4 sentences, front-loaded with the main purpose, and concisely covers key details. Every sentence adds value, with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (17 parameters) and the presence of an output schema, the description is complete. It covers the type of data returned, pagination, credits, and usage prerequisites. An output schema exists, so return values are handled there.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds context like 'no MMSI or IMO needed' and 'at least one search criterion', but the schema already documents each parameter. The added value is marginal but sufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: searching the vessel registry by multiple criteria. It specifies the verb 'search' and the resource 'vessel registry', and distinguishes from siblings like get_vessel (live position) and get_vessels_in_radius (area search).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells when to use this tool (for reference data), when not to use it (for live positions or area vessels), and provides alternatives like get_vessel and get_vessels_in_radius. It also gives requirements like needing at least one search criterion and pagination guidance using 'next' token.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_portGet one port with its terminalsAInspect

Return detailed information for a single port — identity, country, UN/LOCODE, classification, coordinates, maritime area, and the list of terminals (name, operating company, coordinates, address, website). Look up the port by its Datalastic uuid or its UN/LOCODE (exactly one). To search for a port by name or location, or when you don't have an exact identifier, use find_ports first.

ParametersJSON Schema
NameRequiredDescriptionDefault
uuidNoDatalastic port UUID. Provide exactly one of uuid or unlocode.
unlocodeNoPort UN/LOCODE: 5 alphanumeric characters, e.g. ESMPG (case-insensitive). Provide exactly one of uuid or unlocode.

Output Schema

ParametersJSON Schema
NameRequiredDescription
latYes
lonYes
uuidYes
unlocodeYes
area_lvl1Yes
area_lvl2Yes
port_nameYes
port_typeYes
terminalsYes
country_isoYes
country_nameYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It describes the operation as returning detailed info, implying read-only, and lists output fields. It does not explicitly declare idempotency or absence of side effects, but for a get operation this is sufficient. A 4 reflects good transparency without being exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the return value list, followed by lookup method and alternative. No wasted words; every sentence earns its place. Very concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple get tool with full schema coverage and an output schema, the description adequately covers what is returned, how to query, and when to use an alternative. No additional context (error handling, auth) is necessary for this straightforward operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already has descriptions for both parameters with 100% coverage, including the mutual exclusivity hint. The description restates this ('exactly one') but adds no new semantic value beyond what the schema provides. Hence a baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns detailed information for a single port, listing specific fields (identity, country, UN/LOCODE, etc.). It explicitly distinguishes from find_ports, which is for search by name or location, leaving no ambiguity about this tool's purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains exactly when to use this tool (when you have a Datalastic uuid or UN/LOCODE) and when not to (for name/location search, use find_ports). This provides clear context against siblings and gives an alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_vesselGet vessel positionAInspect

Return the current position and basic information for a single vessel, identified by exactly one of: MMSI (9 digits), IMO (7 digits), or Datalastic UUID. Includes live coordinates, speed, course, heading, navigation status and the raw AIS destination text. This is the default tool for vessel lookups. For the recognized destination or origin port (name + UNLOCODE), actual departure time (ATD), a reliable estimated time of arrival (ETA), or draught, use get_vessel_pro instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
imoNoVessel IMO number, exactly 7 digits (e.g. 9839179). Provide exactly one of mmsi, imo, or uuid.
mmsiNoVessel MMSI identifier, exactly 9 digits (e.g. 477553000). Provide exactly one of mmsi, imo, or uuid.
uuidNoDatalastic internal vessel UUID. Provide exactly one of mmsi, imo, or uuid.

Output Schema

ParametersJSON Schema
NameRequiredDescription
eniYes
imoYes
latYes
lonYes
mmsiYes
nameYes
typeYes
uuidYes
speedYes
courseYes
eta_UTCYes
headingYes
eta_epochYes
country_isoYes
destinationYes
type_specificYes
last_position_UTCYes
navigation_statusYes
last_position_epochYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, description carries full burden. It discloses what data is returned (coordinates, speed, etc.) and the identification requirement. Lacks discussion of error handling or rate limits, but for a simple read tool this is acceptable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no excess. Key purpose and usage immediately front-loaded. Every sentence adds distinct value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists, the description adequately covers return fields, identification method, and differentiation from sibling tools. No gaps for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. Description repeats schema info (e.g., 'exactly 7 digits') and adds no novel semantic value beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'return', the resource 'current position and basic information for a single vessel', and lists specific fields. It distinguishes from sibling tool get_vessel_pro by contrasting the data provided.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states 'This is the default tool for vessel lookups' and provides clear guidance on when to use get_vessel_pro instead. Also specifies the identification constraint: exactly one of MMSI, IMO, or UUID.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_vessel_historyGet vessel historyAInspect

Return the historical track (ordered position records) for a single vessel, identified by exactly one of: MMSI (9 digits), IMO (7 digits), or Datalastic UUID. Specify the time range with either 'days' (last N days) or 'from'/'to' dates (YYYY-MM-DD, 'to' at most 30 days after 'from'). Data is available since 2021-08-10; only position changes are stored, so stationary periods may have gaps.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnd date YYYY-MM-DD (at most 30 days after 'from'). Requires 'from'. Defaults to now if omitted.
imoNoVessel IMO number, exactly 7 digits. Provide exactly one of mmsi, imo, or uuid.
daysNoNumber of past days from today to include (e.g. 3). Use either days OR from/to, not both.
fromNoStart date YYYY-MM-DD. Data is available since 2021-08-10. Use either from/to OR days, not both.
mmsiNoVessel MMSI identifier, exactly 9 digits. Provide exactly one of mmsi, imo, or uuid.
uuidNoDatalastic internal vessel UUID. Provide exactly one of mmsi, imo, or uuid.

Output Schema

ParametersJSON Schema
NameRequiredDescription
eniYes
imoYes
mmsiYes
nameYes
typeYes
uuidYes
positionsYes
country_isoYes
type_specificYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully carries the burden of behavioral transparency. It discloses data availability since 2021-08-10, that only position changes are stored (stationary gaps possible), and the constraint that 'to' must be within 30 days of 'from'. This provides essential behavioral context beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, efficiently front-loaded with the purpose, then details. Every sentence adds value without redundancy. It is well-structured and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of the tool (multiple identification methods, time range options, data constraints) and the presence of an output schema, the description is complete. It covers all essential aspects: identification, time range specification, data availability, and behavioral notes on gaps. No gaps in context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds significant meaning by explaining the mutual exclusivity of identifiers (exactly one of mmsi, imo, uuid), the relationship between days and from/to (mutually exclusive), and the data availability date. This goes beyond the schema descriptions, providing critical usage logic.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Return the historical track (ordered position records) for a single vessel', specifying a specific verb and resource. It distinguishes from sibling tools by detailing unique identification methods (MMSI, IMO, UUID) and time range options (days or from/to), making it clear that this tool is for historical track retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit context for when to use the tool (historical track of a single vessel) and outlines specific constraints (exactly one identifier, use either days or from/to, not both, max 30-day range). While it does not explicitly state when not to use it versus siblings, the context is clear and helpful for correct invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_vessel_infoGet vessel specificationsAInspect

Return static specifications for a single vessel, identified by exactly one of: MMSI (9 digits), IMO (7 digits), or Datalastic UUID. Includes physical dimensions (length, breadth, draught), tonnage and cargo capacity (gross tonnage, deadweight, TEU, liquid gas), speed characteristics, year built, flag country, callsign and home port. This is reference data, NOT live position — use get_vessel for the current position, or find_vessels to search the registry by attributes.

ParametersJSON Schema
NameRequiredDescriptionDefault
imoNoVessel IMO number, exactly 7 digits (e.g. 9525338). Provide exactly one of mmsi, imo, or uuid.
mmsiNoVessel MMSI identifier, exactly 9 digits (e.g. 566093000). Provide exactly one of mmsi, imo, or uuid.
uuidNoDatalastic internal vessel UUID. Provide exactly one of mmsi, imo, or uuid.

Output Schema

ParametersJSON Schema
NameRequiredDescription
eniYes
imoYes
teuYes
mmsiYes
nameYes
typeYes
uuidYes
lengthYes
breadthYes
callsignYes
name_aisYes
home_portYes
is_navaidYes
speed_avgYes
speed_maxYes
deadweightYes
liquid_gasYes
year_builtYes
country_isoYes
draught_avgYes
draught_maxYes
country_nameYes
gross_tonnageYes
type_specificYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses that the tool returns static reference data, not live positions, and lists the types of fields returned. It does not describe error behavior for missing identifiers or multiple identifiers, but given the read-only nature, this is mostly sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences: first states purpose and identification requirement, second lists returned fields, third clarifies not live position. No redundant information, well front-loaded, every sentence earned.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (3 params, output schema present), the description explains how to identify the vessel, what data is returned, and how it differs from siblings. No gaps remain for an agent to misuse this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for each parameter. The description adds value by clarifying mutual exclusivity ('exactly one of') and providing digit count examples, which aids correct invocation beyond schema basics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns static specifications for a single vessel, using verb 'Return' and resource 'static specifications'. It explicitly distinguishes from siblings by mentioning get_vessel for live position and find_vessels for registry search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-not guidance: 'This is reference data, NOT live position — use get_vessel for the current position, or find_vessels to search the registry by attributes.' It also states the identification requirement: 'identified by exactly one of: MMSI, IMO, or Datalastic UUID.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_vessel_proGet vessel position (enriched)AInspect

Richer, heavier variant of get_vessel for a single vessel, identified by exactly one of: MMSI (9 digits), IMO (7 digits), or Datalastic UUID. In addition to the basic position and identity, it returns the recognized destination port and origin port (name + UNLOCODE), the actual time of departure (ATD), a reliable estimated time of arrival (ETA), and current draught. Prefer get_vessel for ordinary position or identity lookups; use get_vessel_pro only when the user asks about the destination or origin port, departure time, arrival time or ETA, or draught, as it is heavier on the backend. If the last known position is stale (the vessel may be out of terrestrial AIS range) and it has a destination and ETA, consider offering estimated_vessel_position to estimate where it is now.

ParametersJSON Schema
NameRequiredDescriptionDefault
imoNoVessel IMO number, exactly 7 digits (e.g. 9839179). Provide exactly one of mmsi, imo, or uuid.
mmsiNoVessel MMSI identifier, exactly 9 digits (e.g. 477553000). Provide exactly one of mmsi, imo, or uuid.
uuidNoDatalastic internal vessel UUID. Provide exactly one of mmsi, imo, or uuid.

Output Schema

ParametersJSON Schema
NameRequiredDescription
eniYes
imoYes
latYes
lonYes
mmsiYes
nameYes
typeYes
uuidYes
speedYes
courseYes
atd_UTCYes
eta_UTCYes
headingYes
dep_portYes
timezoneYes
atd_epochYes
dest_portYes
eta_epochYes
country_isoYes
destinationYes
dep_port_uuidYes
type_specificYes
dest_port_uuidYes
current_draughtYes
dep_port_unlocodeYes
last_position_UTCYes
navigation_statusYes
dest_port_unlocodeYes
last_position_epochYes
timezone_offset_secYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It notes the tool is 'heavier on the backend' and mentions staleness condition. Could explicitly state read-only nature, but overall discloses behavioral traits well.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three efficiently written sentences, front-loading purpose, then guidelines, then a behavioral note. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (multiple identifiers, enriched output, sibling tools), the description fully covers use case, return fields, and when to consider alternatives. Output schema exists but description explains return values sufficiently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage 100% with descriptions for each parameter. Description reinforces mutual exclusivity and format constraints (9-digit MMSI, 7-digit IMO, UUID). Adds value by explaining the identification requirement beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool is a richer variant of get_vessel for a single vessel, enumerating the additional fields (destination port, origin port, ATD, ETA, draught). Distinguishes from sibling get_vessel by specifying the enriched data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly recommends get_vessel for ordinary lookups and get_vessel_pro only when specific enriched fields are needed. Also suggests estimated_vessel_position for stale positions, providing clear when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_vessels_bulkGet many vessels at once (bulk position)AInspect

Return the current position and basic information for many vessels in a single call — supply any mix of MMSI, IMO and UUID lists, up to 100 identifiers in total. Each result has the same fields as get_vessel. Only successfully found vessels are returned (the response includes how many were found). Use this instead of many get_vessel calls when looking up a known set of vessels; for a single vessel use get_vessel.

ParametersJSON Schema
NameRequiredDescriptionDefault
imoNoList of vessel IMO numbers (each exactly 7 digits).
mmsiNoList of vessel MMSI identifiers (each exactly 9 digits).
uuidNoList of Datalastic vessel UUIDs.

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalYes
vesselsYes
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. Description mentions only found vessels are returned and includes count, but lacks details on limit enforcement, error handling, or data freshness. Adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no redundant words, front-loaded with core purpose. Highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given output schema exists and schema covers params, description provides sufficient context. References comparable fields to get_vessel and clarifies result structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage with descriptions. Description adds the ability to mix identifier types and notes the 100 total limit, adding value beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it returns current position and basic info for many vessels by supplying MMSI, IMO, UUID lists. Distinguishes from get_vessel by specifying bulk vs single.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says use this instead of many get_vessel calls for a known set, and for a single vessel use get_vessel. Provides clear when-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_vessels_in_radiusGet vessels in radius (area scan)AInspect

Scan a circular area and return all vessels currently within a given radius (nautical miles, greater than 0 and at most 50). Specify the center in exactly one way: lat+lon coordinates, a port (port_unlocode or port_uuid), or a vessel to center on (mmsi/imo/uuid). Optional filters: type, type_specific, exclude, nav_status, and include_unknown_type. Returns up to 500 vessels per page, each with its distance (nautical miles) from the center; if more remain, pass the response's 'next' token via the 'next' argument to page through them. Credits are charged per vessel found.

ParametersJSON Schema
NameRequiredDescriptionDefault
imoNoCenter the scan on a vessel, by IMO (exactly 7 digits).
latNoCenter latitude (-90..90). Must be used together with lon. Provide exactly one center: lat+lon, a port, or a vessel identifier.
lonNoCenter longitude (-180..180). Must be used together with lat.
mmsiNoCenter the scan on a vessel, by MMSI (exactly 9 digits).
nextNoOptional: pagination token from a previous response's 'next' field, to fetch the next page (up to 500 vessels per page).
typeNoOptional: only include vessels of this type (e.g. Tanker, Cargo).
uuidNoCenter the scan on a vessel, by Datalastic vessel UUID.
radiusYesRequired. Scan radius in nautical miles, greater than 0 and at most 50.
excludeNoOptional: exclude vessels of this type.
port_uuidNoCenter the scan on a port, by Datalastic port UUID.
nav_statusNoOptional: filter by AIS navigational status number (e.g. 0 = under way using engine).
port_unlocodeNoCenter the scan on a port, by UN/LOCODE (e.g. ESVLC).
type_specificNoOptional: only include vessels of this specific subtype (e.g. LPG Tanker).
include_unknown_typeNoOptional: include vessels that have no/unknown type. Defaults to the API default when omitted.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nextYes
pointYes
totalYes
vesselsYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses key behaviors: charges credits per vessel found, returns up to 500 per page, pagination via 'next' token, and enforces exclusive center specification. It lacks details on rate limits or authentication, but for a read-only scan, it is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise while covering all essential aspects. It uses front-loaded sentences and a clear structure, with no wasted words. Every sentence adds necessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the 14 parameters, 100% schema coverage, and existence of an output schema, the description is complete. It covers the core operation, center specification options, filters, pagination, and cost implications, leaving no major gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds meaningful context beyond the schema: explains scan concept, center exclusivity, pagination output structure, and credit charging. It helps agents understand parameter purpose beyond type/constraint.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: scan a circular area and return all vessels within a given radius. It uses specific verbs (scan, return) and resource (vessels), distinguishing it from siblings like get_vessel (single vessel) or find_vessels (search by name).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit instructions on when to use the tool (area scan) and how to specify the center (lat+lon, port, or vessel). It also explains optional filters and pagination. However, it does not explicitly mention when not to use it or compare to alternatives, though the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_weatherGet weather for a locationAInspect

Return weather for one location: marine conditions (wave height/direction/period, swell, sea-surface temperature, ocean currents, sea level, …) plus general atmospheric conditions (air temperature, precipitation, wind speed/direction/gusts, humidity, cloud cover, visibility, pressure, weather code, …). Specify the location as exactly one of: coordinates (lat+lon), a vessel (mmsi/imo/uuid — weather near its last known position), or a port (port_unlocode/port_uuid). Use mode to choose current conditions (default), a 7-day daily forecast, a 7-day hourly forecast, or any combination. Each weather field has a matching entry in the corresponding *_units object.

ParametersJSON Schema
NameRequiredDescriptionDefault
imoNoWeather near this vessel by IMO (7 digits).
latNoLatitude of the location (use together with lon).
lonNoLongitude of the location (use together with lat).
mmsiNoWeather near this vessel by MMSI (9 digits).
modeNoForecast mode(s); omit for current. One or more of: current (now), daily (7-day daily forecast), hourly (7-day hourly forecast). Combine for several at once.
uuidNoWeather near this vessel by Datalastic UUID.
port_uuidNoWeather near this port by Datalastic port UUID.
port_unlocodeNoWeather near this port by UN/LOCODE (5 alphanumeric, case-insensitive).

Output Schema

ParametersJSON Schema
NameRequiredDescription
weatherYes
locationYes
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility. It lists return fields and the units object but omits any behavioral details like error handling, rate limits, or prerequisites. It does not contradict annotations (none exist).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences: first sentence states purpose and scope, second covers location input, third covers mode and units. Every sentence adds essential information; no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the 8 parameters, 100% schema coverage, and presence of output schema, the description fully explains what weather data is available, how to specify location (with multiple options), and how to request different modes. It is comprehensive for an agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds context: location must be exactly one of coordinates, vessel, or port; explains mode combinations; and mentions units objects. This provides meaning beyond parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns weather for one location, listing marine and atmospheric conditions. It differentiates from sibling tools by focusing on weather data, while siblings like find_ports or get_vessel serve different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description specifies location input options (coordinates, vessel, port) and mode (current, forecast). It is clear when to use, though it does not explicitly exclude scenarios where alternatives like sea_route might be better.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

intel_casualtiesVessel casualty & incident historyAInspect

Retrieve a vessel's recorded maritime incidents — groundings, collisions, fires, machinery breakdowns, detentions and similar events — each with a date, category and a narrative description. Useful for risk and condition assessment. Identify the vessel by imo or name, and optionally bound the period with from / to. Part of the Maritime Reports add-on.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoOnly include incidents on or before this date (YYYY-MM-DD).
imoNoVessel IMO number (exactly 7 digits) to look up.
fromNoOnly include incidents on or after this date (YYYY-MM-DD).
nameNoVessel name to look up (use when the IMO is unknown).

Output Schema

ParametersJSON Schema
NameRequiredDescription
recordsYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It clearly states it retrieves incidents with date, category, and narrative, and mentions it is part of an add-on, implying subscription requirements. No contradictions or hidden effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the main action and examples, no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 doesn't need to detail return values beyond mentioning date, category, narrative. It covers usage and hints at access control, though could mention error handling for missing vessels.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds context by noting that imo and name are alternative identifiers and from/to bound the period, adding marginal value beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Retrieve', the resource 'vessel's recorded maritime incidents', and provides specific examples like groundings, collisions, fires. It distinguishes itself from sibling tools like intel_inspections by focusing on casualties and incidents.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states 'Useful for risk and condition assessment' and explains how to identify the vessel, but does not explicitly mention when not to use this tool or provide comparisons to alternative sibling tools like intel_inspections or intel_engine.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

intel_classVessel classification & technical particularsAInspect

Return a vessel's classification society together with its principal technical particulars: gross and net tonnage, deadweight, length overall, length between perpendiculars, beam, depth, design draft, propulsion and engine maker, plus owner/manager and next survey dates. Identify the vessel by imo or name (set fuzzy for loose name matching), or filter by owner/manager. Part of the Maritime Reports add-on.

ParametersJSON Schema
NameRequiredDescriptionDefault
imoNoVessel IMO number (exactly 7 digits) to look up.
nameNoVessel name to look up (use when the IMO is unknown).
fuzzyNoMatch the name loosely instead of exactly.
updated_fromNoOnly include records updated on or after this date (YYYY-MM-DD).
beneficial_ownerNoFilter by beneficial owner company name.
technical_managerNoFilter by technical manager company name.
beneficial_owner_imoNoFilter by beneficial owner company IMO number.
technical_manager_imoNoFilter by technical manager company IMO number.

Output Schema

ParametersJSON Schema
NameRequiredDescription
recordsYes
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It implies a read operation but does not explicitly state it is read-only, mention authentication needs, rate limits, or any side effects. The 'Part of the Maritime Reports add-on' hint about prerequisites could be clearer.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences: the first states what the tool returns, the second explains identification methods and add-on context. It is front-loaded, concise, and every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the 8 parameters and existence of an output schema, the description covers the main purpose and parameter usage. It lists the returned data fields, which is helpful. It lacks details about behavior on multiple matches or error scenarios, but with output schema present, it is still fairly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds meaning by explaining the 'fuzzy' parameter for loose name matching and grouping usage into identification vs. filtering. It omits the 'updated_from' date parameter but overall compensates well.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns a vessel's classification society and principal technical particulars, listing specific items like tonnage, dimensions, propulsion, etc. It distinguishes itself from sibling tools like intel_info or intel_ownership by focusing on classification and technical details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains how to identify a vessel (by imo, name, or fuzzy matching) and how to filter by owner/manager. However, it does not explicitly state when to use this tool versus alternatives like intel_info, nor does it provide when-not scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

intel_companiesMaritime company profileAInspect

Look up a maritime company profile — owners, operators, managers and charterers — returning its full and short name, company type, registration country, operating status, contact details, and parent company. Search by the company's own IMO number (company_imo) or by name. This is a company directory, so company_imo refers to the company (not a vessel); to find the companies behind a specific ship use intel_ownership. Part of the Maritime Reports add-on.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoCompany name to search for.
company_imoNoCompany IMO number (exactly 7 digits). Note this is the company's own IMO, not a vessel IMO.
updated_fromNoOnly include records updated on or after this date (YYYY-MM-DD).

Output Schema

ParametersJSON Schema
NameRequiredDescription
recordsYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. Description implies read-only lookup and describes returned fields, but does not explicitly state no side effects or authentication requirements. Still, behavioral context is sufficient for a directory tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no redundancy. Information is front-loaded and every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With output schema present, description sufficiently covers purpose, usage, parameters, and distinctions from siblings. No missing details for effective tool selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage 100%, baseline 3. Description adds value by explaining company_imo is not a vessel IMO and must be exactly 7 digits, and clarifies updated_from filters by update date, going beyond schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb 'look up' and resource 'maritime company profile'. Explicitly distinguishes from sibling intel_ownership by stating it searches by company IMO or name, while intel_ownership finds companies behind a ship.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit search methods (IMO or name) and includes a clear when-not statement: 'to find the companies behind a specific ship use intel_ownership', offering an alternative tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

intel_drydockVessel drydock & survey scheduleAInspect

Look up planned and past dry-dock dates, special-survey dates, and IOPP (oil-pollution) certificate dates for a vessel, along with its technical manager's contact details. Target a single vessel by imo or name, or scan a forward window across the fleet with dry_dock_from / dry_dock_to to find vessels due for drydocking in a date range. Part of the Maritime Reports add-on.

ParametersJSON Schema
NameRequiredDescriptionDefault
imoNoVessel IMO number (exactly 7 digits) to look up.
nameNoVessel name to look up (use when the IMO is unknown).
dry_dock_toNoOnly include vessels whose next dry dock falls on or before this date (YYYY-MM-DD).
dry_dock_fromNoOnly include vessels whose next dry dock falls on or after this date (YYYY-MM-DD).

Output Schema

ParametersJSON Schema
NameRequiredDescription
recordsYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It discloses that the tool is 'Part of the Maritime Reports add-on,' implying a subscription requirement. It lists the types of data returned (dry-dock dates, survey dates, IOPP dates, contact details) and explains the scanning feature. It does not elaborate on error handling, rate limits, or data freshness, but covers the core behavioral aspects adequately for a read-only lookup.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of two succinct sentences plus a one-phrase add-on note. It is front-loaded with the primary purpose and efficiently covers both single-vessel and fleet-scan modes. No redundant or vague language; every sentence serves a distinct purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that an output schema exists (so return values are defined there), the description sufficiently covers usage context: the two query modes, the types of data returned, and the add-on dependency. It does not discuss pagination or ordering, but these are often implicit in JSON array outputs. The description is complete enough for an agent to understand when and how to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes all four parameters (100% coverage). The description adds meaning by explaining the alternative usage of imo vs name for single-vessel lookup, and how dry_dock_from/dry_dock_to define a date range for fleet scans. This clarifies parameter relationships and intended use beyond the schema's individual descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool 'looks up planned and past dry-dock dates, special-survey dates, and IOPP certificate dates for a vessel, along with its technical manager's contact details.' It specifies distinct use cases: single vessel by IMO/name or fleet scan by date range. The unique subject (drydock/survey) distinguishes it from sibling intel_* tools that cover casualties, class, companies, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly outlines two usage modes: target a single vessel by imo or name, or scan a forward window across the fleet using dry_dock_from/dry_dock_to. This gives clear guidance on when to use each set of parameters. However, it does not state when not to use this tool or mention alternatives among sibling tools for similar purposes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

intel_engineVessel main-engine specificationsAInspect

Return the main-engine specification for a vessel: engine designation (model), builder and designer, propulsion type, and maximum continuous output (MCO) with its unit and rpm. Identify the vessel by imo or name (set fuzzy for loose name matching). Part of the Maritime Reports add-on.

ParametersJSON Schema
NameRequiredDescriptionDefault
imoNoVessel IMO number (exactly 7 digits) to look up.
nameNoVessel name to look up (use when the IMO is unknown).
fuzzyNoMatch the name loosely instead of exactly.
updated_fromNoOnly include records updated on or after this date (YYYY-MM-DD).

Output Schema

ParametersJSON Schema
NameRequiredDescription
recordsYes
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden. It discloses the return fields and the add-on context but does not mention potential failure modes, authentication requirements, or rate limits. For a read-only lookup tool, this is minimally acceptable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is exceptionally concise with two sentences. The first sentence front-loads the core function and outputs, and the second covers identification and the add-on. Every word adds value with no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that an output schema exists, the description need not detail return values. The tool has four parameters all fully described in the schema. The description could be more complete by differentiating from sibling tools, but it adequately covers the essential context for an engine-specific lookup tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents each parameter. The description adds context about using fuzzy for loose matching but does not elaborate on the 'updated_from' parameter or provide additional detail beyond the schema. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns main-engine specifications including specific fields like engine designation, builder, propulsion type, and MCO. It distinguishes itself from sibling tools like intel_class or intel_info by focusing on engine specs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains how to identify vessels by IMO or name, and mentions fuzzy matching for loose name matching. However, it does not explicitly advise when not to use this tool or list alternatives among siblings, leaving some ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

intel_infoMaritime Reports add-on statusAInspect

Check whether the Maritime Reports add-on is active on the connected Datalastic account, and what it offers: vessel ownership/management, classification, engine specs, Port State Control inspections, casualties, drydock schedules, sale & purchase records, company profiles, sea routes, estimated out-of-AIS positions, and bulk dataset exports. Use this when the user asks whether they have (or what is included in) the add-on, when an intel_* tool reports the add-on is missing, or after the user says they have purchased or updated their subscription.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageYes
addon_activeYes
capabilitiesYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden. It describes the tool as a status check and lists offerings, implying it is read-only and non-destructive. However, it does not explicitly state side effects or authorization needs, but for a simple query tool this is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is informative and front-loaded with the core purpose, but it lists many offerings in a long sentence. While not overly verbose, it could be slightly more concise. Still effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters, and there is an output schema, the description covers purpose and usage completely. It answers what the tool does and when to use it, leaving no gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema coverage is 100%. The description does not need to add parameter details; the baseline score of 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool checks whether the Maritime Reports add-on is active and lists what it offers. It distinguishes from sibling intel_* tools by specifying when to use it (e.g., when another tool reports the add-on is missing).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly provides three scenarios for use: when the user asks about the add-on, when an intel_* tool reports it missing, or after a subscription update. This is clear guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

intel_inspectionsVessel Port State Control inspectionsAInspect

Retrieve a vessel's Port State Control (PSC) inspection record: the inspecting authority and port, the inspection type and date, whether the vessel was detained, and the number and description of any deficiencies found. Identify the vessel by imo or name, and optionally bound the period with from / to. Part of the Maritime Reports add-on.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoOnly include inspections on or before this date (YYYY-MM-DD).
imoNoVessel IMO number (exactly 7 digits) to look up.
fromNoOnly include inspections on or after this date (YYYY-MM-DD).
nameNoVessel name to look up (use when the IMO is unknown).

Output Schema

ParametersJSON Schema
NameRequiredDescription
recordsYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It clearly indicates a read operation ('Retrieve') and lists the data returned. No mention of side effects, auth, or rate limits, but the read-only nature is implied. The description is transparent enough for safe invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (three sentences), front-loaded with the main purpose, and every sentence adds value. No redundant or extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the moderate complexity (4 params, output schema present), the description covers the purpose, key parameters, and return fields adequately. The existence of an output schema reduces the need to detail return structure. Could mention prerequisites, but not essential.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents each parameter. The description restates that 'imo' and 'name' identify the vessel, and 'from'/'to' bound the period, but adds minimal new meaning. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies the exact resource ('vessel's Port State Control inspection record'), the action ('Retrieve'), and the key data fields (authority, port, type, date, detention, deficiencies). It clearly distinguishes from sibling tools that cover different maritime data (e.g., casualties, class, engine).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use the tool (to get PSC inspections) and how to specify the vessel (by imo or name) with optional date bounds. While it doesn't explicitly list alternatives or when not to use, the sibling tool names imply distinct purposes, making the usage sufficiently clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

intel_ownershipVessel ownership & management chainAInspect

Reveal the commercial control behind a vessel: beneficial owner, operator, technical manager and commercial manager — each with its company IMO and country — plus the P&I club and flag. Look up one vessel by imo or name, or turn the question around and pass a company name (beneficial_owner, operator, technical_manager or commercial_manager) to list every vessel that company controls. Part of the Maritime Reports add-on.

ParametersJSON Schema
NameRequiredDescriptionDefault
imoNoVessel IMO number (exactly 7 digits) to look up.
nameNoVessel name to look up (use when the IMO is unknown).
operatorNoCompany name of the operator; returns every vessel under that operator.
updated_fromNoOnly include records updated on or after this date (YYYY-MM-DD).
beneficial_ownerNoCompany name of the beneficial owner; returns every vessel under that owner.
technical_managerNoCompany name of the technical manager; returns every vessel under that manager.
commercial_managerNoCompany name of the commercial manager; returns every vessel under that manager.

Output Schema

ParametersJSON Schema
NameRequiredDescription
recordsYes
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses the tool returns ownership details and can list vessels, implying read-only behavior. However, it omits details on rate limits, authorization requirements, or behavior when no results are found.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loading the main purpose and covering key functionality without unnecessary words. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, return values are covered. The description covers primary functionality and parameters. Lacks mention of pagination or limits when listing vessels by company, but overall complete for the tool's purpose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds context by explaining the reverse lookup capability, but does not significantly extend meaning beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it reveals the commercial control behind a vessel, listing specific entities (beneficial owner, operator, manager, P&I club, flag). It distinguishes itself by offering both vessel lookup and reverse company lookup, differentiating from sibling tools like intel_companies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly provides two usage modes: lookup by vessel (IMO or name) or by company name to list vessels. It implies context by stating 'Part of the Maritime Reports add-on,' but lacks explicit when-not-to-use guidance or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

intel_report_requestRequest a bulk intelligence report (async)AInspect

Submit an async job to export a FULL bulk dataset for one of the Maritime Reports add-on datasets (dry_dock_dates, casualty, inspections, sales_purchase_demolitions, ownership, class_society, engine, companies). This returns the ENTIRE dataset (all records), not one vessel — for a single vessel use the matching lookup tool instead (e.g. intel_ownership, intel_inspections). Like all reports it is asynchronous: this returns a report_id and a PENDING status without waiting; submit ONCE, then poll report_status with that report_id until DONE, which yields a result_url to hand to the user to download. The server never downloads the file itself. Part of the Maritime Reports add-on.

ParametersJSON Schema
NameRequiredDescriptionDefault
report_typeYesWhich bulk dataset report to generate. One of: dry_dock_dates, casualty, inspections, sales_purchase_demolitions, ownership, class_society, engine, companies.

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYes
report_idYes
created_atYes
result_urlYes
updated_atYes
report_typeYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description fully bears the burden. It discloses async nature, returns _PENDING_ status, polling requirement, and that the server never downloads the file. It could further mention typical completion time or report_id format, but is already strong.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences plus a brief note, front-loading the action and result. Every sentence adds value with no redundancy. Clear structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists, the description effectively covers return values (report_id, status, polling, result_url). It also explains the async flow and dataset scope. No gaps remain for agent understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The sole parameter 'report_type' is fully described in the schema (100% coverage). The description adds meaning by explaining that selecting a type returns the entire dataset for that report, contrasting with single-vessel tools. This goes beyond the schema's enum listing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it submits an async job to export a full bulk dataset for Maritime Reports add-on datasets. It distinguishes from sibling tools for single vessel lookups (e.g., intel_ownership, intel_inspections).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly guides when to use this tool (for bulk dataset) vs. alternatives (single vessel lookup tools). Provides step-by-step async workflow: submit once, poll report_status, hand result_url to user. Notes it is part of the Maritime Reports add-on.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

intel_spdShip sale & purchase / demolition recordsAInspect

Retrieve ship sale-and-purchase transactions for a vessel: second-hand sales, newbuilding deliveries and demolition (scrap) sales, including seller, buyer, reported price, price per lightweight ton, and demolition destination. Useful for asset valuation and market tracking. Identify the vessel by imo or name, and optionally bound the period with from / to. Part of the Maritime Reports add-on.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoOnly include transactions reported on or before this date (YYYY-MM-DD).
imoNoVessel IMO number (exactly 7 digits) to look up.
fromNoOnly include transactions reported on or after this date (YYYY-MM-DD).
nameNoVessel name to look up (use when the IMO is unknown).

Output Schema

ParametersJSON Schema
NameRequiredDescription
recordsYes
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the full burden of behavioral disclosure. It explains that the tool retrieves data (read-only) and lists the types of transactions and data fields. However, it does not mention any side effects, authentication requirements, rate limits, or data freshness, which would enhance transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single paragraph of three sentences, each carrying useful information. It is front-loaded with the core purpose, followed by use case and parameter guidance, with no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that an output schema exists, the description does not need to detail return values. It covers the main parameters, use case, and the add-on context. However, it could mention that the tool returns a list of transactions and any pagination or result limits for full completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage, with clear descriptions for all four parameters. The description reiterates that the vessel can be identified by IMO or name and that from/to can bound the period, but it adds minimal extra meaning beyond the schema definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves ship sale-and-purchase transactions, including specific types (second-hand, newbuilding, demolition) and data fields (seller, buyer, price, etc.). It distinguishes itself from sibling intel tools that focus on casualties, class, companies, etc., by focusing on commercial transactions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description notes the tool is useful for 'asset valuation and market tracking,' providing context for when to use it. It also explains that the vessel can be identified by IMO or name with optional date bounds. However, it does not explicitly compare with sibling tools or indicate when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

report_listList async reportsAInspect

List the caller's recent async report jobs with their statuses (and result_url once DONE). Use this to recover a report_id or see which reports have finished — for example if a report was submitted earlier and its id was lost.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
reportsYes
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It mentions the output includes statuses and result_url, but does not disclose whether the operation is read-only, any rate limits, or what 'recent' means. This is adequate for a simple list tool but lacks some behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words, action is front-loaded. Efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and an output schema exists, the description provides sufficient high-level context. It mentions statuses and result_url, but does not define 'recent' or explain pagination. However, for a list tool with output schema, this is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so the baseline is 4. The description does not need to add parameter details, and the schema coverage is 100% implicitly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists the caller's recent async report jobs with statuses and result_url. The verb 'list' and resource 'async report jobs' are specific, and the tool is distinguished from siblings like report_request (which submits) and report_status (which might check specific ones).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says to use this to recover a report_id or check finished reports, with a concrete example. However, it does not contrast with sibling tool report_status or mention when not to use this tool, which slightly limits guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

report_requestRequest an async reportAInspect

Submit an async report job. Reports are generated in the background and can take a while (seconds to many minutes), so this returns a report_id and an initial status (PENDING) — it does NOT wait. Submit ONCE, then poll report_status with the returned report_id until DONE, which yields a result_url. Do not resubmit while a job is running. When done, give the user the result_url to download; the server never downloads report files itself.

Supported report_type values:

  • request_usage: a FREE log of your account's API usage (endpoint, credits, timestamp); optional from/to (<=31 days), default last month.

  • vessel_list: the full vessel database (no other parameters).

  • port_list: the full ports database (no other parameters).

  • inradius_history: all vessels that passed through an area in a time window; REQUIRES lat, lon, radius (<=50 NM), from and to (<=7 days apart).

Note: vessel_list, port_list and inradius_history consume API credits (vessel_list and inradius_history can be substantial) — it's good to tell the user before submitting. For the add-on bulk datasets (ownership, inspections, etc.) use intel_report_request instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnd date YYYY-MM-DD. Optional for request_usage (<=31 days after from); required for inradius_history (<=7 days after from).
latNoCenter latitude. Required for inradius_history.
lonNoCenter longitude. Required for inradius_history.
fromNoStart date YYYY-MM-DD. Optional for request_usage; required for inradius_history.
radiusNoRadius in nautical miles, max 50. Required for inradius_history.
report_typeYesWhich report to generate: request_usage, vessel_list, port_list, or inradius_history.

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYes
report_idYes
created_atYes
result_urlYes
updated_atYes
report_typeYes
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries full burden. It fully discloses async nature, return value, polling requirement, credit consumption for some types, and that the server never downloads files. Detailed behavioral context is given.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and concise. It front-loads the main purpose and flow, then lists report types in a clear bullet-like format. Every sentence adds value, with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (async, multiple report types with different parameters), the description covers all necessary aspects: submission, polling, resubmission prohibition, credit consumption, and sibling tool differentiation. The presence of an output schema further supports completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds significant value by explaining supported report_type values and their specific parameter requirements (e.g., optional for request_usage, required for inradius_history) and constraints like radius max 50 NM and date ranges. This goes beyond the schema's parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool submits an async report job, returns a report_id and initial status, and explains the async flow. It distinguishes from sibling tools like intel_report_request for add-on datasets and report_status for polling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to submit once, then poll until done, and not to resubmit while running. Advises informing the user about credit consumption before submitting certain report types. Also directs users to intel_report_request for add-on datasets.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

report_statusCheck an async reportAInspect

Check an async report job by report_id (from report_request or report_list). Returns its status: PENDING or IN_PROGRESS (still generating — wait a bit and check again) or DONE. When DONE, result_url is a download link for the result ZIP; hand it to the user. Links are time-limited — if one has expired, run report_status again for a fresh link. The server never downloads the file itself.

ParametersJSON Schema
NameRequiredDescriptionDefault
report_idYesThe report_id returned by report_request (or seen in report_list).

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYes
report_idYes
created_atYes
result_urlYes
updated_atYes
report_typeYes
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, description fully discloses behavior: returns status values, result_url on DONE, time-limited links, server never downloads file. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Five sentences, front-loaded with purpose, no unnecessary words. Each sentence adds essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given output schema exists and simple polling pattern, description covers all needed behavioral context: status meanings, URL handling, expiration. No gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema already covers parameter with full description. Description adds value by context hint 'from report_request or report_list', but schema already says it's the report_id.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it checks an async report job by report_id, with specific resource and action. Distinguishes from siblings report_request (submit) and report_list (list reports) by context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells when to use: after report_request or report_list. Provides guidance for each status: wait for PENDING/IN_PROGRESS, hand URL to user when DONE, re-run if link expired.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sea_routeSchematic sea route between two pointsAInspect

Calculate a schematic sea route between two points and return it as GeoJSON (a LineString of waypoints) with the total distance in kilometres and nautical miles. Specify the origin and destination each as either coordinates (lat+lon), a port UUID, or a port UN/LOCODE. ⚠️ This is a SCHEMATIC sea route, not a navigable one. It does not account for actual navigation, hazards, traffic separation, drafts or local rules — do NOT use it for real-world sailing. Use it for estimating distance and travel time, visualizing the approximate path/shape, and similar analysis. Part of the Maritime Reports add-on.

ParametersJSON Schema
NameRequiredDescriptionDefault
lat_toNoDestination latitude (use together with lon_to).
lon_toNoDestination longitude (use together with lat_to).
lat_fromNoOrigin latitude (use together with lon_from).
lon_fromNoOrigin longitude (use together with lat_from).
port_uuid_toNoDestination port UUID.
port_uuid_fromNoOrigin port UUID.
port_unlocode_toNoDestination port UN/LOCODE (5 alphanumeric, case-insensitive).
port_unlocode_fromNoOrigin port UN/LOCODE (5 alphanumeric, case-insensitive).

Output Schema

ParametersJSON Schema
NameRequiredDescription
toYes
fromYes
routeYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries full burden and warns about schematic nature, hazards, and limitations. Lacks details on authentication or rate limits, but provides honest caution.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise multi-sentence description with front-loaded main action, clear warning, and use cases, no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers key aspects: purpose, inputs, limitations, use cases. Minor gap: doesn't clarify behavior when multiple input options are provided (e.g., both coordinates and port UUID). Output schema exists to detail return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear parameter descriptions. The description adds grouping of input methods but doesn't resolve potential conflicts (e.g., multiple input types for same endpoint). Baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool calculates a schematic sea route, returns GeoJSON LineString with distance, and distinguishes from sibling maritime tools by emphasizing it is not for real-world sailing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use (estimating distance/time, visualization) and when not to use (not for navigation), and describes three input methods, providing clear guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.