VesselAPI MCP Server
   
<a href="https://glama.ai/mcp/servers/@vessel-api/vessel-api-mcp-server"> <img width="380" height="200" src="https://glama.ai/mcp/servers/@vessel-api/vessel-api-mcp-server/badge" /> </a>
An MCP (Model Context Protocol) server that exposes maritime data from the VesselAPI to AI assistants like Claude Desktop, Cursor, Windsurf, and Claude Code.
Prerequisites
- Sign up at dashboard.vesselapi.com
- Create an API token in your dashboard
- Use the token as
VESSELAPI_API_KEYin the configuration below
Resources: Documentation | API Explorer | Dashboard | Contact Support
Features
- 23 tools covering vessels, ports, location search, emissions, and maritime safety
- Vessel search, positions (single and batch), ETA, classification, ownership, emissions, inspections, and casualties
- Port search, details, port events (arrivals/departures), and global port event search
- Geographic vessel search (bounding box and radius)
- NAVTEX maritime safety messages
- Manual pagination to control API quota usage
Hosted deployment
A hosted deployment is available on Fronteir AI.
Quick Start
No installation required β just configure your AI client with npx:
{
"mcpServers": {
"vesselapi": {
"command": "npx",
"args": ["-y", "vesselapi-mcp"],
"env": {
"VESSELAPI_API_KEY": "your-api-key"
}
}
}
}
Configuration
Add the JSON above to the config file for your client:
| Client | Config file | |---|---| | Claude Desktop | ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows) | | Cursor | .cursor/mcp.json or ~/.cursor/mcp.json | | Claude Code | .claude/settings.json or ~/.claude/settings.json | | Windsurf | ~/.codeium/windsurf/mcp_config.json |
Tools
Vessel Tools
| Tool | Description | |---|---| | search_vessels | Search vessels by name, IMO, MMSI, flag, type, callsign, year built, class society, or owner | | get_vessel | Get detailed vessel information | | get_vessel_position | Get current vessel position (lat/lon, speed, heading) | | get_vessel_eta | Get vessel estimated time of arrival | | get_vessel_classification | Get classification details (class society, surveys, hull) | | get_vessel_ownership | Get ownership details (owner, manager, operator) | | get_vessel_emissions | Get emissions data (CO2, fuel consumption) | | get_vessel_inspections | Get port state control inspections | | get_vessel_casualties | Get marine casualty records | | get_vessel_inspection_detail | Get detailed information about a specific inspection | | get_vessel_positions_batch | Get positions for multiple vessels at once (with optional time range) |
Port Tools
| Tool | Description | |---|---| | search_ports | Search ports by name, country, type, size, region, harbor size, or harbor use | | get_port | Get port details by UN/LOCODE | | get_port_events | Get arrivals/departures for a port | | get_port_events_by_vessel | Get port events for a vessel | | list_port_events | List port events globally with filters for time, country, port, vessel, or event type | | search_port_events_by_port | Search port events by port name | | search_port_events_by_vessel | Search port events by vessel name | | get_vessel_last_port_event | Get the most recent port event for a vessel |
Emissions Tools
| Tool | Description | |---|---| | list_emissions | List global vessel emissions data with optional year filter |
Location Tools
| Tool | Description | |---|---| | get_vessels_in_area | Find vessels in a bounding box (with optional time range) | | get_vessels_in_radius | Find vessels within a radius of a point (with optional time range) |
Safety Tools
| Tool | Description | |---|---| | get_navtex_messages | Get NAVTEX maritime safety messages |
Pagination
All list endpoints support limit and nextToken parameters for manual pagination. When more results exist, the response includes a nextToken β pass it in the next call to get the next page.
Development
git clone https://github.com/vessel-api/vesselapi-mcp.git
cd vesselapi-mcp
npm install
npm run build
npm run build # Build the server
npm run typecheck # Type-check without emitting
npm run clean # Remove build artifacts
Testing with MCP Inspector
VESSELAPI_API_KEY=your-key npx @modelcontextprotocol/inspector node dist/index.js
License
MIT











