io.github.vessel-api/vesselapi-mcp
MCP server for the VesselAPI — maritime vessel tracking, port events, emissions, and navigation data
Open source Open in the app JSON README (API)
About
MCP server for the VesselAPI — maritime vessel tracking, port events, emissions, and navigation data
Details
- Kind
- MCP servers
- Topic
- No topic detected
- Publisher
- vessel-api
- Origin
- official
- Category
- ferramentas
- Transport
- local
- Version
- 1.0.1
- Stars
- 1
- Forks
- 2
- Open pull requests
- 7
- Last push
- 2026-08-15T16:53:30Z
- Repository state
- ativo
- Language
- TypeScript
- License
- MIT
- Added
- 2026-08-29 04:01:38
- Updated
- 2026-08-29 04:01:38
- Origin id
io.github.vessel-api/vesselapi-mcp
README
# VesselAPI MCP Server
[](https://github.com/vessel-api/vesselapi-mcp/actions/workflows/ci.yml)
[](https://www.npmjs.com/package/vesselapi-mcp)
[](https://www.npmjs.com/package/vesselapi-mcp)
[](LICENSE)
<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)](https://modelcontextprotocol.io/) server that exposes maritime data from the [VesselAPI](https://vesselapi.com) to AI assistants like Claude Desktop, Cursor, Windsurf, and Claude Code.
## Prerequisites
1. Sign up at [dashboard.vesselapi.com](https://dashboard.vesselapi.com)
2. Create an API token in your dashboard
3. Use the token as `VESSELAPI_API_KEY` in the configuration below
**Resources**: [Documentation](https://vesselapi.com/docs) | [API Explorer](https://vesselapi.com/api-reference) | [Dashboard](https://dashboard.vesselapi.com) | [Contact Support](mailto:support@vesselapi.com)
## Features
- **19 tools** covering vessels, ports, location search, and emissions
- Vessel search, positions (single and batch), ETA, emissions, and casualties
- Port search, details, port events (arrivals/departures), and global port event search
- Geographic vessel search (bounding box and radius)
- Manual pagination to control API quota usage
## Hosted deployment
A hosted deployment is available on [Fronteir AI](https://fronteir.ai/mcp/vessel-api-vesselapi-mcp).
## Quick Start
No installation required. Configure your AI client with `npx`:
```json
{
"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 mcp add`, which writes `.mcp.json` in the project or `~/.claude.json` for user scope |
| Windsurf | `~/.codeium/windsurf/mcp_config.json` |
## Tools
### Vessel Tools
| Tool | Description |
|---|---|
| `search_vessels` | Search vessels by name, IMO, MMSI, flag, type, callsign, or year built |
| `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_emissions` | Get emissions data (CO2, fuel consumption) |
| `get_vessel_casualties` | Get marine casualty records |
| `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_inbound` | Get vessels inbound to a port within an ETA window |
| `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) |
## 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
```bash
git clone https://github.com/vessel-api/vesselapi-mcp.git
cd vesselapi-mcp
npm install
npm run build
```
```bash
npm run build # Build the server
npm run typecheck # Type-check without emitting
npm run clean # Remove build artifacts
```
### Testing with MCP Inspector
```bash
VESSELAPI_API_KEY=your-key npx @modelcontextprotocol/inspector node dist/index.js
```
## Data Sources & Attribution
Emissions and casualty data: © European Union. Source: European Maritime Safety Agency
(EMSA): THETIS-MRV (EU MRV, Regulation (EU) 2015/757) and the European Marine Casualty
Information Platform (EMCIP). Reused under the European Commission reuse notice
(Commission Decision 2011/833/EU), which authorises reuse for commercial and
non-commercial purposes with acknowledgement of the source. Data may be transformed and
combined; EMSA does not endorse this service.
## License
MIT