Skip to main content
Glama
VesselAPI MCP Server

VesselAPI MCP Server

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
VESSELAPI_API_KEYYesVesselAPI API key for authentication

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_vesselsA

Search for vessels. Use q when you have an identifier but do not know which kind it is; use the specific filters to narrow a fleet.

get_vesselC

Get detailed information about a specific vessel

get_vessel_positionA

Get the latest stored position of a vessel (latitude, longitude, speed, heading, timestamp). Check the timestamp: the fix may be hours or days old, especially for a vessel away from the coast. The response also carries the vessel's particulars, the destination and ETA it last reported, and a check against its previous position (minutes and distance between that report and this one, implied speed and course, whether the identifiers match). minutes_since_previous is not the age of this position; read vesselPosition.timestamp for that. A separate get_vessel_eta call is needed only when vesselEta is missing.

get_vessel_etaA

Get the most recent ETA the vessel itself reported in its AIS voyage data. This is the declared ETA, not a prediction.

get_vessel_emissionsB

Get EU MRV annual emissions reports for a vessel (CO2, fuel consumption). Only ships that report under EU MRV have data.

get_vessel_casualtiesC

Get marine casualty records for a vessel

get_vessel_positions_batchB

Get positions for multiple vessels at once by MMSI or IMO numbers

search_portsB

Search for ports by name, country, type, size, region, harbor size, or harbor use

get_portB

Get detailed information about a specific port by UN/LOCODE

get_port_inboundA

Get vessels whose own reported destination is this port, with a declared ETA inside the arrival window. ETAs are reported by the vessels, not predicted.

get_port_eventsA

Get port events (arrivals/departures) for a specific port. Covers only the last 2 hours unless timeFrom is given.

get_port_events_by_vesselA

Get port events (arrivals/departures) for a specific vessel. Covers only the last 2 hours unless timeFrom is given. Events are kept for 31 days.

list_port_eventsA

List port events (arrivals/departures) across all covered ports, with optional filters for time, country, port, vessel, or event type. Covers only the last 2 hours unless timeFrom is given. Events are kept for 31 days.

search_port_events_by_portA

Search port events by port name. Covers only the last 2 hours unless timeFrom is given.

search_port_events_by_vesselA

Search port events by vessel name. Covers only the last 2 hours unless timeFrom is given.

get_vessel_last_port_eventA

Get the most recent port event (arrival or departure) for a vessel

list_emissionsA

List EU MRV annual emissions reports (ships calling at EU and EEA ports), with an optional reporting-year filter

get_vessels_in_areaA

Find vessels with an AIS position inside a rectangular bounding box during the time window (default the last 2 hours, at most 4 hours). The latitude span plus the longitude span may not exceed 4 degrees.

get_vessels_in_radiusA

Find vessels with an AIS position within a radius of a point during the time window (default the last 2 hours, at most 4 hours). The radius is in METRES, not nautical miles or kilometres.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.1/5.0

Scored across 19 tools

Disambiguation2/5

The port-events family is badly overlapping: get_port_events, list_port_events, search_port_events_by_port, search_port_events_by_vessel, and get_port_events_by_vessel all retrieve the same arrivals/departures data, and the distinction between get_*_by_vessel vs search_*_by_vessel is opaque because the by_vessel tool is described identically to its search counterpart. Position tools are more distinct, but an agent could easily misselect among the five port-event tools.

Naming Consistency3/5

Names are all snake_case verb_noun, which is readable, but the verbs (get/search/list) are applied inconsistently to the same resource, so 'search_port_events_by_vessel' and 'get_port_events_by_vessel' look synonymous rather than modeling different operations. This erodes the predictability of the verb pattern.

Tool Count3/5

19 tools is on the heavy side for the domain, and much of that weight comes from the redundant five-tool port-events cluster rather than from genuinely distinct capabilities.

Completeness4/5

The surface covers core workflows well: vessel lookup, port lookup, positions (single/batch/area/radius), declared ETA, emissions, casualties, and port events. A dedicated vessel schedule or route tool would help, but agents can work around the gaps.

Maintenance

ActivityMaintained
ResponsivenessOutdated data