Skip to main content
Glama

AIS Trail

Ship port calls (API key)

vessel_port_calls
Read-onlyIdempotent

Port calls of a ship between two times (UTC, ISO 8601), from the AIS Trail archive: port, arrival, departure, draught on arrival and departure, cargo estimate (loaded, ballast or unchanged, from the draught change), previous and next port. Give mmsi or imo. A port call starts when the ship stops for at least 15 minutes inside a port area and ends when it leaves; departure is null while it is still in port. Needs an AIS Trail API key sent by the MCP client as the HTTP header 'Authorization: Bearer ap_live_…'. At most 100 port calls per call and at most 366 days; the plan's history depth, credits (1 per port call returned), rate limit and 24-hour delay (on plans without live data) apply.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
toYesEnd, e.g. 2026-10-01T00:00:00Z
imoNo
fromYesStart, e.g. 2026-09-01T00:00:00Z
mmsiNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the readOnly/idempotent annotations: it discloses the required auth header format, the 100-port-call and 366-day caps, per-call credit cost, rate limits, plan history depth, and 24-hour delay on non-live plans. It also defines the domain rule for what constitutes a port call (15-minute stop) and that departure is null while in port.

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?

Purpose and return fields are front-loaded, and nearly every clause earns its place (auth, limits, edge cases). It is a dense run-on paragraph that could be split into structured bullets for scannability, but nothing is wasted.

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 no output schema, the description correctly enumerates return fields, plus auth, rate limits, page caps, history depth and the null-departure edge case. An agent has everything needed to call it correctly and interpret the result.

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?

With 50% schema coverage (imo/mmsi undocumented in schema), the description compensates by explaining that a ship is identified via 'mmsi or imo' and that times are UTC/ISO 8601. It adds the identity semantics the schema lacks, though it doesn't clarify that the two identifiers are alternatives or how conflicts are resolved.

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?

States a specific verb+resource ('Port calls of a ship between two times') and enumerates the returned fields (port, arrival, departure, draught, cargo estimate, prev/next port), which distinguishes it from the sibling 'port_calls' by scoping to a single identified ship. An agent can tell exactly what this returns.

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?

Names the required ship identifier ('Give mmsi or imo') and defines the time-window inputs, giving implied usage, but there is no explicit statement of when to prefer this over the sibling 'port_calls', nor any exclusions. Usage is inferable but not routed.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources