Skip to main content
Glama

Screen a vessel (full record, API key)

screen_vessel
Idempotent

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: a new self-serve key includes a one-time free allowance of live screenings; get_usage reports what is left. 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.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "imo": "<imo>"
    },
    "name": "screen_vessel"
  }
}

Input 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

Output Schema

NameRequiredDescriptionDefault
idNoScreening record id, retained ten years
imoNo
vettingNo
ownershipNo
sanctionsNo
screened_atNoISO-8601 time the sources were read
vessel_nameNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "id": {
      +      "description": "Screening record id, retained ten years",
      +      "type": "string"
      +    },
      +    "imo": {
      +      "type": "string"
      +    },
      +    "ownership": {
      +      "additionalProperties": true,
      +      "properties": {
      +        "opacity": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "score": {
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "sanctions": {
      +      "additionalProperties": true,
      +      "properties": {
      +        "detail": {
      +          "type": "string"
      +        },
      +        "status": {
      +          "description": "RED | AMBER | GREEN | INCOMPLETE",
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "screened_at": {
      +      "description": "ISO-8601 time the sources were read",
      +      "type": "string"
      +    },
      +    "vessel_name": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "vetting": {
      +      "additionalProperties": true,
      +      "properties": {
      +        "grade": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "status": {
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    }
      +  },
      +  "type": "object"
      +}
  2. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond annotations by disclosing auth requirement (ARCNAUTICAL_API_KEY), the metered cost model and free allowance, and the caching semantics that justify idempotentHint=true. readOnlyHint=false is consistent with a metered screening that retains a record id. No contradiction, and the added operational context is significant.

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?

Front-loads the most important fact (what the record contains) and then layers requirements, cost and retry guidance in a sensible order. The opening sentence is a dense enumeration, but every clause maps to real behavior rather than filler.

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 metered, authenticated screening tool this covers the essentials an agent needs to call it correctly: auth, cost/allowance, free replay, and the recovery path for incomplete results. An output schema exists, so the return-value enumeration is supplementary rather than load-bearing.

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 workflow meaning: it explains that vessel_name is a conditional retry input triggered by an INCOMPLETE identity result, and 'graded vetting factors' hints at the include_vetting toggle. It stops short of explaining customer_reference behavior beyond what the schema already says.

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?

Names a specific verb+resource (screening record for one vessel) and enumerates the payload an agent will get (sanctions matches, source list, programme, confidence class, ownership opacity, vetting factors, freshness, record id). This is clearly distinguishable from siblings like check_vessel, get_screening and screen_vessels.

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 an explicit retry path ('If the result is INCOMPLETE for identity, call again with vessel_name') and a cost-avoidance tip (same vessel same day replays free), plus a pointer to get_usage. It does not explicitly contrast against check_vessel/get_screening, so routing between siblings is still partly left to inference.

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.