Skip to main content
Glama

gulf_maritime_exposure

Triage sanctions and chokepoint-disruption exposure for vessels transiting Hormuz, the Gulf, Bab-el-Mandeb, or the Red Sea; returns readiness scores, signals, and evidence gaps.

Instructions

Triage maritime sanctions and chokepoint-disruption exposure for a vessel/voyage transiting the Strait of Hormuz, Persian/Arabian Gulf, Gulf of Oman, Bab-el-Mandeb, or Red Sea (Iran-oil, Russia price-cap, dark-fleet, STS transfer, flag-hopping, P&I gap, AIS manipulation). Pass a structured exposure_request (vessel/voyage, route, cargo, counterparties, dated_sources, risk_question, decision_stage) matching gulf-maritime-exposure-request.schema.json. Returns a triage recommendation, exposure signal, decision-readiness score, supplied vs. minimum-required sources, and evidence gaps. Pre-compliance evidence triage only: no live retrieval, does not resolve vessel ownership or verify identity, no legal or sanctions advice; human review is required.

Input Schema

NameRequiredDescriptionDefault
exposure_requestYesStructured Gulf maritime exposure request. Call get_schema('gulf_maritime_exposure_request') for the full nested contract.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.23.0
    • addedInput schema / properties / exposure_request / properties / vessel / properties / mmsi
      Added value: +{
      +  "minLength": 1,
      +  "type": "string"
      +}
  2. Changed4 schema fields changedv1.5.0
    • changedInput schema / properties / exposure_request / description
      Previous value: -"Structured Gulf maritime exposure request matching gulf-maritime-exposure-request.schema.json."New value: +"Structured Gulf maritime exposure request. Call get_schema('gulf_maritime_exposure_request') for the full nested contract."
    • addedInput schema / properties / exposure_request / examples
      Added value: +[
      +  {
      +    "cargo": "crude oil",
      +    "counterparties": [
      +      {
      +        "jurisdiction": "Marshall Islands",
      +        "name": "Example Holding Ltd",
      +        "role": "registered_owner"
      +      },
      +      {
      +        "name": "Unknown",
      +        "role": "insurer_or_pi_club"
      +      }
      +    ],
      +    "dated_sources": [
      +      {
      +        "date": "2026-05-28",
      +        "id": "g1",
      +        "source_type": "ais_track_record",
      +        "title": "AIS track extract"
      +      }
      +    ],
      +    "decision_stage": "pre_fixture",
      +    "exposure_facets": [
      +      "iran_oil_exposure",
      +      "dark_fleet_indicators",
      +      "sts_transfer",
      +      "insurance_or_pi_gap"
      +    ],
      +    "jurisdictions_in_scope": [
      +      "OFAC",
      +      "EU",
      +      "UK_OFSI"
      +    ],
      +    "requested_output": "structured_json",
      +    "risk_question": "Is this Hormuz transit ready to fix, or should it be escalated before fixture?",
      +    "vessel": {
      +      "flag": "Panama",
      +      "name": "Example Tanker",
      +      "vessel_type": "crude oil tanker"
      +    },
      +    "voyage": {
      +      "chokepoint": "strait_of_hormuz",
      +      "destination": "ship-to-ship area, Gulf of Oman",
      +      "origin": "undisclosed Gulf terminal"
      +    }
      +  }
      +]
    • addedInput schema / properties / exposure_request / properties
      Added value: +{
      +  "cargo": {
      +    "minLength": 1,
      +    "type": "string"
      +  },
      +  "counterparties": {
      +    "items": {
      +      "type": "object"
      +    },
      +    "type": "array"
      +  },
      +  "dated_sources": {
      +    "items": {
      +      "type": "object"
      +    },
      +    "type": "array"
      +  },
      +  "decision_stage": {
      +    "enum": [
      +      "pre_fixture",
      +      "pre_voyage",
      +      "pre_port_call",
      +      "post_alert",
      +      "committee_review",
      +      "other"
      +    ],
      +    "type": "string"
      +  },
      +  "exposure_facets": {
      +    "items": {
      +      "enum": [
      +        "iran_oil_exposure",
      +        "russia_oil_price_cap",
      +        "dark_fleet_indicators",
      +        "sts_transfer",
      +        "flag_hopping",
      +        "insurance_or_pi_gap",
      +        "ais_manipulation",
      +        "ownership_or_control",
      +        "dual_use_cargo",
      +        "chokepoint_disruption"
      +      ],
      +      "type": "string"
      +    },
      +    "minItems": 1,
      +    "type": "array"
      +  },
      +  "jurisdictions_in_scope": {
      +    "items": {
      +      "enum": [
      +        "OFAC",
      +        "EU",
      +        "UK_OFSI",
      +        "UN",
      +        "OTHER"
      +      ],
      +      "type": "string"
      +    },
      +    "type": "array"
      +  },
      +  "notes": {
      +    "minLength": 1,
      +    "type": "string"
      +  },
      +  "requested_output": {
      +    "enum": [
      +      "structured_json",
      +      "markdown_summary",
      +      "both"
      +    ],
      +    "type": "string"
      +  },
      +  "risk_question": {
      +    "minLength": 1,
      +    "type": "string"
      +  },
      +  "vessel": {
      +    "properties": {
      +      "flag": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "imo": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "name": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "vessel_type": {
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "voyage": {
      +    "properties": {
      +      "chokepoint": {
      +        "enum": [
      +          "strait_of_hormuz",
      +          "persian_gulf",
      +          "gulf_of_oman",
      +          "bab_el_mandeb",
      +          "red_sea",
      +          "suez_canal",
      +          "other"
      +        ],
      +        "type": "string"
      +      },
      +      "destination": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "origin": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "route_note": {
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "chokepoint"
      +    ],
      +    "type": "object"
      +  }
      +}
    • addedInput schema / properties / exposure_request / required
      Added value: +[
      +  "voyage",
      +  "exposure_facets",
      +  "decision_stage",
      +  "dated_sources",
      +  "risk_question"
      +]
  3. Addedv1.1.0

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does so well: it discloses that there is no live retrieval, no ownership resolution or identity verification, no legal/sanctions advice, and that human review is required. It also summarizes what is returned. It stops short of rate limits or determinism guarantees, so a 4 rather than a 5.

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?

Dense but well front-loaded: purpose and scope come first, then input contract, then return shape, then limitations. It is a long single block and could be broken up, but every clause carries 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?

There is no output schema, yet the description still names what comes back (triage recommendation, exposure signal, decision-readiness score, source sufficiency, evidence gaps), and it covers input contract and limitations. Nearly complete for a single nested 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 description coverage is 100%, so the baseline is 3, but the description adds real meaning by enumerating the intended contents of exposure_request (vessel/voyage, route, cargo, counterparties, dated_sources, risk_question, decision_stage) and pointing to the named nested contract 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?

States a specific verb ("Triage") and a precise resource (maritime sanctions and chokepoint-disruption exposure), scoped to named chokepoints and enumerated risk facets. An agent can distinguish this from cis_secondary_sanctions_exposure or middle_corridor_deal_risk without opening any 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?

Clear about the situation that selects it: a vessel/voyage transiting Hormuz, the Gulf, Bab-el-Mandeb or the Red Sea, and about the stage ("pre-compliance evidence triage only"). It doesn't name an explicit alternative or exclusion against sibling tools, so it falls short of a 5.

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