Skip to main content
Glama

Vessels in an area

find_vessels_in_area
Read-onlyIdempotent

Vessels currently inside a latitude/longitude bounding box, newest report first, with optional kind and ship-type filters. Use for what is in a port, a strait, or a stretch of coast. Anonymous calls may cover 100 square degrees per call.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bboxYes
flagNoonly vessels flying this flag: ISO 3166-1 alpha-2, e.g. NO, FI, MH
kindNoonly this kind: vessel, aton (aid to navigation), base (base station), or sar (search and rescue aircraft)
limitNorows to return: default 50, maximum 200
typesNoonly these ITU ship type codes, e.g. 30 fishing, 36 sailing, 37 pleasure craft, 52 tug, 60 passenger, 70 cargo, 80 tanker; a code ending in 0 matches its decade, so 70 matches 70 to 79

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
totalYesvessels matched before the limit was applied
vesselsYes
truncatedYestrue when rows were left out: total exceeds the rows returned, so narrow the query or raise limit, or an IMO number is reported by more than the 10 vessels returned for it
attributionYescredit line per source kind in the rows, to show with the data
unknown_imoNorequested IMO numbers matching no vessel the network has heard
unknown_mmsiNorequested MMSIs matching no vessel the network has heard

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / truncated / description
      Previous value: -"true when total exceeds the rows returned; narrow the query or raise limit"New value: +"true when rows were left out: total exceeds the rows returned, so narrow the query or raise limit, or an IMO number is reported by more than the 10 vessels returned for it"
  2. Changed1 schema field changed
    • changedOutput schema / properties / vessels / items / properties / sources / additionalProperties / properties / url / description
      Previous value: -"the source's own page for this vessel"New value: +"the source's page for this vessel, or its public search when the source keeps no per-vessel pages"
  3. Changed1 schema field changed
    • addedOutput schema / properties / vessels / items / properties / particulars / properties / callsign
      Added value: +{
      +  "description": "call sign as registered; the callsign in the vessel's own properties is the one AIS reports",
      +  "type": "string"
      +}
  4. Changed5 schema fields changed
    • addedOutput schema / properties / vessels / items / properties / particulars
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "particulars as registered, merged from the enrichment sources into one vocabulary (get_vessels)",
      +  "properties": {
      +    "beam": {
      +      "description": "beam as registered, metres",
      +      "type": "number"
      +    },
      +    "builder": {
      +      "description": "shipyard or builder",
      +      "type": "string"
      +    },
      +    "commons_category": {
      +      "description": "the category of the ship's photos on Wikimedia Commons",
      +      "type": "string"
      +    },
      +    "deadweight": {
      +      "description": "deadweight, tonnes",
      +      "type": "integer"
      +    },
      +    "depth": {
      +      "description": "registered depth, metres",
      +      "type": "number"
      +    },
      +    "draught": {
      +      "description": "design draught, metres; AIS reports the draught on the current voyage",
      +      "type": "number"
      +    },
      +    "former_names": {
      +      "description": "names the vessel has carried before, oldest first",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": [
      +        "null",
      +        "array"
      +      ]
      +    },
      +    "gross_tonnage": {
      +      "type": "integer"
      +    },
      +    "home_port": {
      +      "description": "port of registry",
      +      "type": "string"
      +    },
      +    "identification": {
      +      "description": "the flag state's number for the vessel: a documented vessel's official number, else its state registration",
      +      "type": "string"
      +    },
      +    "image": {
      +      "description": "the Commons page of a photo of the ship, which shows its license and credit",
      +      "type": "string"
      +    },
      +    "length": {
      +      "description": "length as registered, metres; may differ from the AIS length",
      +      "type": "number"
      +    },
      +    "net_tonnage": {
      +      "type": "integer"
      +    },
      +    "operator": {
      +      "type": "string"
      +    },
      +    "owner": {
      +      "type": "string"
      +    },
      +    "registered_name": {
      +      "description": "name as documented with the flag state, when it differs from what AIS reports",
      +      "type": "string"
      +    },
      +    "registry": {
      +      "description": "country of registry, in English",
      +      "type": "string"
      +    },
      +    "service": {
      +      "description": "flag-state service type, e.g. Towing Vessel, Passenger (Inspected), Recreational",
      +      "type": "string"
      +    },
      +    "ship_type": {
      +      "description": "kind of ship, e.g. bulk carrier, container ship, ferry",
      +      "type": "string"
      +    },
      +    "status": {
      +      "description": "flag-state status, e.g. Active, Laid Up",
      +      "type": "string"
      +    },
      +    "tonnage_measure": {
      +      "description": "how a tonnage from the flag state was measured: Convention (the international system), Regulatory (the older US system, in register tons), or Simplified (small vessels)",
      +      "type": "string"
      +    },
      +    "wikipedia": {
      +      "description": "the ship's English Wikipedia article",
      +      "type": "string"
      +    },
      +    "yard_number": {
      +      "description": "the builder's hull number",
      +      "type": "string"
      +    },
      +    "year_built": {
      +      "type": "integer"
      +    }
      +  },
      +  "type": [
      +    "null",
      +    "object"
      +  ]
      +}
    • addedOutput schema / properties / vessels / items / properties / provenance
      Added value: +{
      +  "additionalProperties": {
      +    "type": "string"
      +  },
      +  "description": "the source of each particulars field, by the field's name; values are keys of sources (get_vessels)",
      +  "type": "object"
      +}
    • addedOutput schema / properties / vessels / items / properties / sources
      Added value: +{
      +  "additionalProperties": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "credit": {
      +        "description": "display credit for the source",
      +        "type": "string"
      +      },
      +      "license": {
      +        "type": "string"
      +      },
      +      "url": {
      +        "description": "the source's own page for this vessel",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "credit",
      +      "license"
      +    ],
      +    "type": "object"
      +  },
      +  "description": "each contributing source's credit, license, and its own page for this vessel (get_vessels)",
      +  "type": "object"
      +}
    • removedOutput schema / properties / vessels / items / properties / uscg
      Removed value: -{
      -  "additionalProperties": false,
      -  "description": "particulars as documented with the US Coast Guard, for a US-flag vessel whose call sign and name match a vessel in its PSIX database (get_vessels)",
      -  "properties": {
      -    "beam": {
      -      "description": "registered breadth, metres",
      -      "type": "number"
      -    },
      -    "depth": {
      -      "description": "registered depth, metres",
      -      "type": "number"
      -    },
      -    "gross_tonnage": {
      -      "type": "integer"
      -    },
      -    "id": {
      -      "description": "the vessel's ID in PSIX",
      -      "type": "integer"
      -    },
      -    "identification": {
      -      "description": "the official number of a documented vessel, else its state registration",
      -      "type": "string"
      -    },
      -    "length": {
      -      "description": "registered length, metres",
      -      "type": "number"
      -    },
      -    "license": {
      -      "description": "public domain (U.S. government work), no credit required",
      -      "type": "string"
      -    },
      -    "name": {
      -      "description": "name as documented with the Coast Guard",
      -      "type": "string"
      -    },
      -    "net_tonnage": {
      -      "type": "integer"
      -    },
      -    "service": {
      -      "description": "service type, e.g. Towing Vessel, Passenger (Inspected), Commercial Fishing Vessel, Recreational",
      -      "type": "string"
      -    },
      -    "status": {
      -      "description": "Coast Guard status, e.g. Active, Laid Up",
      -      "type": "string"
      -    },
      -    "tonnage_measure": {
      -      "description": "how the tonnage was measured: Convention (the international system), Regulatory (the older US system, in register tons), or Simplified (small vessels)",
      -      "type": "string"
      -    },
      -    "year_built": {
      -      "type": "integer"
      -    }
      -  },
      -  "required": [
      -    "id",
      -    "license",
      -    "name"
      -  ],
      -  "type": [
      -    "null",
      -    "object"
      -  ]
      -}
    • removedOutput schema / properties / vessels / items / properties / wikidata
      Removed value: -{
      -  "additionalProperties": false,
      -  "description": "particulars as registered, from the vessel's Wikidata item found by its IMO number (get_vessels)",
      -  "properties": {
      -    "beam": {
      -      "description": "beam as registered, metres",
      -      "type": "number"
      -    },
      -    "builder": {
      -      "description": "shipyard or builder",
      -      "type": "string"
      -    },
      -    "commons_category": {
      -      "description": "the category of the ship's photos on Wikimedia Commons",
      -      "type": "string"
      -    },
      -    "deadweight": {
      -      "description": "deadweight, tonnes",
      -      "type": "integer"
      -    },
      -    "draught": {
      -      "description": "design draught, metres; AIS reports the draught on the current voyage",
      -      "type": "number"
      -    },
      -    "former_names": {
      -      "description": "names the vessel has carried before, oldest first",
      -      "items": {
      -        "type": "string"
      -      },
      -      "type": [
      -        "null",
      -        "array"
      -      ]
      -    },
      -    "gross_tonnage": {
      -      "type": "integer"
      -    },
      -    "home_port": {
      -      "description": "port of registry",
      -      "type": "string"
      -    },
      -    "id": {
      -      "description": "Wikidata item ID",
      -      "type": "string"
      -    },
      -    "image": {
      -      "description": "the Commons page of a photo of the ship, which shows its license and credit",
      -      "type": "string"
      -    },
      -    "length": {
      -      "description": "length as registered, metres; may differ from the AIS length",
      -      "type": "number"
      -    },
      -    "license": {
      -      "description": "CC0-1.0: public domain, no credit required; the photos image and commons_category lead to carry their own licenses",
      -      "type": "string"
      -    },
      -    "operator": {
      -      "type": "string"
      -    },
      -    "owner": {
      -      "type": "string"
      -    },
      -    "registry": {
      -      "description": "country of registry, in English",
      -      "type": "string"
      -    },
      -    "ship_type": {
      -      "description": "kind of ship, e.g. bulk carrier, container ship, oil tanker, ferry",
      -      "type": "string"
      -    },
      -    "url": {
      -      "description": "the item's page on Wikidata",
      -      "type": "string"
      -    },
      -    "wikipedia": {
      -      "description": "the ship's English Wikipedia article",
      -      "type": "string"
      -    },
      -    "yard_number": {
      -      "description": "the builder's hull number",
      -      "type": "string"
      -    },
      -    "year_built": {
      -      "description": "year the vessel entered service",
      -      "type": "integer"
      -    }
      -  },
      -  "required": [
      -    "id",
      -    "url",
      -    "license"
      -  ],
      -  "type": [
      -    "null",
      -    "object"
      -  ]
      -}
  5. Changed2 schema fields changed
    • addedOutput schema / properties / vessels / items / properties / uscg
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "particulars as documented with the US Coast Guard, for a US-flag vessel whose call sign and name match a vessel in its PSIX database (get_vessels)",
      +  "properties": {
      +    "beam": {
      +      "description": "registered breadth, metres",
      +      "type": "number"
      +    },
      +    "depth": {
      +      "description": "registered depth, metres",
      +      "type": "number"
      +    },
      +    "gross_tonnage": {
      +      "type": "integer"
      +    },
      +    "id": {
      +      "description": "the vessel's ID in PSIX",
      +      "type": "integer"
      +    },
      +    "identification": {
      +      "description": "the official number of a documented vessel, else its state registration",
      +      "type": "string"
      +    },
      +    "length": {
      +      "description": "registered length, metres",
      +      "type": "number"
      +    },
      +    "license": {
      +      "description": "public domain (U.S. government work), no credit required",
      +      "type": "string"
      +    },
      +    "name": {
      +      "description": "name as documented with the Coast Guard",
      +      "type": "string"
      +    },
      +    "net_tonnage": {
      +      "type": "integer"
      +    },
      +    "service": {
      +      "description": "service type, e.g. Towing Vessel, Passenger (Inspected), Commercial Fishing Vessel, Recreational",
      +      "type": "string"
      +    },
      +    "status": {
      +      "description": "Coast Guard status, e.g. Active, Laid Up",
      +      "type": "string"
      +    },
      +    "tonnage_measure": {
      +      "description": "how the tonnage was measured: Convention (the international system), Regulatory (the older US system, in register tons), or Simplified (small vessels)",
      +      "type": "string"
      +    },
      +    "year_built": {
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "id",
      +    "license",
      +    "name"
      +  ],
      +  "type": [
      +    "null",
      +    "object"
      +  ]
      +}
    • addedOutput schema / properties / vessels / items / properties / wikidata
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "particulars as registered, from the vessel's Wikidata item found by its IMO number (get_vessels)",
      +  "properties": {
      +    "beam": {
      +      "description": "beam as registered, metres",
      +      "type": "number"
      +    },
      +    "builder": {
      +      "description": "shipyard or builder",
      +      "type": "string"
      +    },
      +    "commons_category": {
      +      "description": "the category of the ship's photos on Wikimedia Commons",
      +      "type": "string"
      +    },
      +    "deadweight": {
      +      "description": "deadweight, tonnes",
      +      "type": "integer"
      +    },
      +    "draught": {
      +      "description": "design draught, metres; AIS reports the draught on the current voyage",
      +      "type": "number"
      +    },
      +    "former_names": {
      +      "description": "names the vessel has carried before, oldest first",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": [
      +        "null",
      +        "array"
      +      ]
      +    },
      +    "gross_tonnage": {
      +      "type": "integer"
      +    },
      +    "home_port": {
      +      "description": "port of registry",
      +      "type": "string"
      +    },
      +    "id": {
      +      "description": "Wikidata item ID",
      +      "type": "string"
      +    },
      +    "image": {
      +      "description": "the Commons page of a photo of the ship, which shows its license and credit",
      +      "type": "string"
      +    },
      +    "length": {
      +      "description": "length as registered, metres; may differ from the AIS length",
      +      "type": "number"
      +    },
      +    "license": {
      +      "description": "CC0-1.0: public domain, no credit required; the photos image and commons_category lead to carry their own licenses",
      +      "type": "string"
      +    },
      +    "operator": {
      +      "type": "string"
      +    },
      +    "owner": {
      +      "type": "string"
      +    },
      +    "registry": {
      +      "description": "country of registry, in English",
      +      "type": "string"
      +    },
      +    "ship_type": {
      +      "description": "kind of ship, e.g. bulk carrier, container ship, oil tanker, ferry",
      +      "type": "string"
      +    },
      +    "url": {
      +      "description": "the item's page on Wikidata",
      +      "type": "string"
      +    },
      +    "wikipedia": {
      +      "description": "the ship's English Wikipedia article",
      +      "type": "string"
      +    },
      +    "yard_number": {
      +      "description": "the builder's hull number",
      +      "type": "string"
      +    },
      +    "year_built": {
      +      "description": "year the vessel entered service",
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "id",
      +    "url",
      +    "license"
      +  ],
      +  "type": [
      +    "null",
      +    "object"
      +  ]
      +}
  6. Changed2 schema fields changed
    • changedOutput schema / properties / unknown_imo / description
      Previous value: -"requested IMO numbers matching no vessel heard in the last 30 minutes"New value: +"requested IMO numbers matching no vessel the network has heard"
    • changedOutput schema / properties / unknown_mmsi / description
      Previous value: -"requested MMSIs not heard in the last 30 minutes"New value: +"requested MMSIs matching no vessel the network has heard"
  7. Changed10 schema fields changed
    • addedInput schema / properties / flag
      Added value: +{
      +  "description": "only vessels flying this flag: ISO 3166-1 alpha-2, e.g. NO, FI, MH",
      +  "type": "string"
      +}
    • addedOutput schema / properties / unknown_imo
      Added value: +{
      +  "description": "requested IMO numbers matching no vessel heard in the last 30 minutes",
      +  "items": {
      +    "maximum": 4294967295,
      +    "minimum": 0,
      +    "type": "integer"
      +  },
      +  "type": [
      +    "null",
      +    "array"
      +  ]
      +}
    • addedOutput schema / properties / vessels / items / properties / beam
      Added value: +{
      +  "description": "beam, metres",
      +  "maximum": 65535,
      +  "minimum": 0,
      +  "type": [
      +    "null",
      +    "integer"
      +  ]
      +}
    • addedOutput schema / properties / vessels / items / properties / callsign
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / vessels / items / properties / destination
      Added value: +{
      +  "description": "destination as typed by the crew: a port name, a UN/LOCODE, or nothing useful",
      +  "type": "string"
      +}
    • addedOutput schema / properties / vessels / items / properties / draught
      Added value: +{
      +  "description": "maximum static draught, metres",
      +  "type": [
      +    "null",
      +    "number"
      +  ]
      +}
    • addedOutput schema / properties / vessels / items / properties / eta
      Added value: +{
      +  "description": "estimated arrival as sent, MM-DD HH:MM UTC or MM-DD; AIS carries no year, so read it as the next occurrence",
      +  "type": "string"
      +}
    • addedOutput schema / properties / vessels / items / properties / flag
      Added value: +{
      +  "description": "ISO 3166-1 alpha-2 code of the flag state, from the MMSI's maritime identification digits",
      +  "type": "string"
      +}
    • addedOutput schema / properties / vessels / items / properties / imo
      Added value: +{
      +  "description": "IMO number, once the vessel's static data has been heard",
      +  "maximum": 4294967295,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / vessels / items / properties / length
      Added value: +{
      +  "description": "overall length, metres",
      +  "maximum": 65535,
      +  "minimum": 0,
      +  "type": [
      +    "null",
      +    "integer"
      +  ]
      +}
  8. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations already cover safety (readOnlyHint, idempotentHint) and closed-world scope, so the bar is lower. The description adds genuinely new behavior beyond them: result ordering (newest report first) and a quota constraint ("Anonymous calls may cover 100 square degrees per call"), which is exactly the kind of operational context an agent needs before calling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero filler, with the spatial scope and ordering front-loaded before the filters and the quota caveat. Every clause carries information an agent would otherwise lack.

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?

With an output schema present, return values need no explanation, and the description covers scope, ordering, filters, and the anonymous area quota. It does not mention that result sets are capped by limit or point to get_coverage for areas lacking coverage, which leaves minor gaps for a nested-parameter, 5-param tool.

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 coverage is 80% and the schema itself documents bbox edges, flag codes, kind values, limit default/max, and ITU ship-type code semantics in depth. The description only restates "optional kind and ship-type filters" without adding format or interpretation the schema lacks; baseline 3 applies.

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 resource and spatial scope: "Vessels currently inside a latitude/longitude bounding box", plus result ordering ("newest report first") and the optional filters. The area-bbox framing inherently separates it from find_vessels_near, but no sibling is named explicitly, so it stops short of a 5.

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?

"Use for what is in a port, a strait, or a stretch of coast" gives concrete usage contexts for an area query. It offers no when-not guidance and never names find_vessels_near as the proximity alternative, so the agent must infer the boundary itself.

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.