Skip to main content
Glama

Ship records and sanctions (API key)

lookup_vessels
Read-onlyIdempotent

Records of up to 20 ships at once from the AIS Trail archive, by mmsi and/or imo (lists): identity and particulars (name, IMO, call sign, type, flag from the MMSI, length, beam, estimated deadweight, first and last seen) and sanctions flags by IMO number from three official lists: OFAC SDN, UK Sanctions List and EU Regulation 833/2014 Annex XLII (list, programmes, date listed). An IMO number resolves to the MMSI that reported it last; ships not in the plan's sources come back with found false. Sanctions flags are informational, not a compliance determination: only ships a list names by IMO number are matched, ownership-based sanctions are not covered. Needs an AIS Trail API key sent by the MCP client as the HTTP header 'Authorization: Bearer ap_live_…'. Credits: 1 per ship returned (none for ships not found); the plan's sources and 24-hour delay (on plans without live data) apply.

Input Schema

NameRequiredDescriptionDefault
imoNo7-digit IMO numbers; mmsi and imo together at most 20
mmsiNo9-digit MMSIs

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.1/5.0
Behavior5/5

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

Annotations already declare the read-only, idempotent, open-world, non-destructive profile, and the description layers on genuinely new operational context: required 'Authorization: Bearer ap_live_…' header, credit cost (1 per ship returned, free for misses), the plan's source set and 24-hour delay, and the explicit limits of the sanctions matching. This is well beyond what the structured fields convey.

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 inputs are front-loaded in the opening clause, and the later sentences (sanctions caveat, auth, credits, delay) all carry decision-relevant information rather than filler. It is a single dense block that would read better broken into lines, but little 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 carries the return-shape burden and does so thoroughly: enumerates identity/particular fields, sanctions fields (list, programmes, date listed), and the found-false sentinel. Auth, cost, and data-freshness caveats complete the picture for a 2-parameter 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%, so the baseline is 3, but the description adds real semantics: the 20-item cap applies to mmsi and imo combined, and 'an IMO number resolves to the MMSI that reported it last' explains resolution behavior the schema cannot express.

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

Purpose4/5

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

States a specific verb (lookup) plus resource (ships/vessels) and pins down the input mode: batch of up to 20 by mmsi and/or imo lists from the AIS Trail archive. That scope statement is enough to distinguish it from single-vessel or name-based siblings, though it never names those siblings explicitly.

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?

Usage is implied rather than stated: the batch-of-20, identifier-list framing tells an agent this is for bulk identity resolution rather than search or tracking, and the 'found false' note covers the miss case. There is no explicit when-to-use/when-not or named alternative (e.g. search_vessels for name lookup, get_vessel for a single ship).

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.