Skip to main content
Glama

Screen a vessel (full record, API key)

screen_vessel
Idempotent

Screen a commercial vessel by IMO number for sanctions matches across OFAC, EU, UN, UK OFSI and OpenSanctions, returning ownership opacity and A–E vetting grades.

Instructions

The authenticated screening record for one vessel: every sanctions match with its source list, programme and confidence class, ownership opacity, the graded vetting factors, per-source freshness, and a retained record id. Needs ARCNAUTICAL_API_KEY. Metered: 5,000 live screenings a month are included with a self-serve key. The same vessel asked again on the same day replays the stored record free. If the result is INCOMPLETE for identity, call again with vessel_name.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
imoYesSeven-digit IMO number of the vessel
vessel_nameNoOnly when a previous screen was INCOMPLETE for identity; a name you can confirm
include_vettingNofalse skips the vetting grade for a faster sanctions-only screen
customer_referenceNoYour own reference (order id, voyage id); echoed on the record

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses the API key requirement, the metering model (5,000 live screenings/month), the free same-day replay semantics, and the INCOMPLETE-for-identity recovery path. This is exactly the cost/auth/idempotency context the readOnlyHint=false, idempotentHint=true annotations cannot express.

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 payload fields, auth, metering and recovery path are all front-loaded into three tight sentences with no filler. It is on the longer side, but every clause carries operational information rather than restating the schema.

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 enumerates the return surface (sanctions matches, source list, programme, confidence class, ownership opacity, vetting factors, freshness, record id) and covers auth, cost and the incomplete-result escape hatch. Nothing needed to call it correctly is missing.

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

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 imo, vessel_name, include_vetting and customer_reference. The description adds only the conditional re-invocation semantics for vessel_name, which the schema itself already states; include_vetting is unexplained in prose. 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?

States a specific verb and resource ('authenticated screening record for one vessel') and enumerates the record's contents. The singular scope distinguishes it from the plural sibling screen_vessels, so an agent can choose between them without opening a schema.

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

Usage Guidelines4/5

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

Gives a concrete operating path: if the result is INCOMPLETE for identity, call again with vessel_name. It also notes the same-day replay is free, implying repeat calls are safe. It never explicitly contrasts itself with get_screening or check_vessel, so it falls short of full when/when-not guidance.

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