VesselAPI MCP Server
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
- 16 tools covering vessels, ports, location search, and maritime safety
- Vessel search, positions, ETA, classification, ownership, emissions, inspections, and casualties
- Port search, details, and port events (arrivals/departures)
- Geographic vessel search (bounding box and radius)
- NAVTEX maritime safety messages
- Manual pagination to control API quota usage
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, or callsign |
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 |
Port Tools
| Tool | Description |
|---|---|
search_ports |
Search ports by name, country, type, or region |
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 |
Location Tools
| Tool | Description |
|---|---|
get_vessels_in_area |
Find vessels in a bounding box |
get_vessels_in_radius |
Find vessels within a radius of a point |
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