{
  "markdown": "# VesselAPI MCP Server\n\n[![CI](https://github.com/vessel-api/vesselapi-mcp/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/vessel-api/vesselapi-mcp/actions/workflows/ci.yml)\n[![npm](https://img.shields.io/npm/v/vesselapi-mcp.svg)](https://www.npmjs.com/package/vesselapi-mcp)\n[![Node](https://img.shields.io/node/v/vesselapi-mcp.svg)](https://www.npmjs.com/package/vesselapi-mcp)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n\n<a href=\"https://glama.ai/mcp/servers/@vessel-api/vessel-api-mcp-server\">\n  <img width=\"380\" height=\"200\" src=\"https://glama.ai/mcp/servers/@vessel-api/vessel-api-mcp-server/badge\" />\n</a>\n\nAn [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.\n\n## Prerequisites\n\n1. Sign up at [dashboard.vesselapi.com](https://dashboard.vesselapi.com)\n2. Create an API token in your dashboard\n3. Use the token as `VESSELAPI_API_KEY` in the configuration below\n\n**Resources**: [Documentation](https://vesselapi.com/docs) | [API Explorer](https://vesselapi.com/api-reference) | [Dashboard](https://dashboard.vesselapi.com) | [Contact Support](mailto:support@vesselapi.com)\n\n## Features\n\n- **19 tools** covering vessels, ports, location search, and emissions\n- Vessel search, positions (single and batch), ETA, emissions, and casualties\n- Port search, details, port events (arrivals/departures), and global port event search\n- Geographic vessel search (bounding box and radius)\n- Manual pagination to control API quota usage\n\n## Hosted deployment\n\nA hosted deployment is available on [Fronteir AI](https://fronteir.ai/mcp/vessel-api-vesselapi-mcp).\n\n## Quick Start\n\nNo installation required. Configure your AI client with `npx`:\n\n```json\n{\n  \"mcpServers\": {\n    \"vesselapi\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"vesselapi-mcp\"],\n      \"env\": {\n        \"VESSELAPI_API_KEY\": \"your-api-key\"\n      }\n    }\n  }\n}\n```\n\n## Configuration\n\nAdd the JSON above to the config file for your client:\n\n| Client | Config file |\n|---|---|\n| Claude Desktop | `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\\Claude\\claude_desktop_config.json` (Windows) |\n| Cursor | `.cursor/mcp.json` or `~/.cursor/mcp.json` |\n| Claude Code | `claude mcp add`, which writes `.mcp.json` in the project or `~/.claude.json` for user scope |\n| Windsurf | `~/.codeium/windsurf/mcp_config.json` |\n\n## Tools\n\n### Vessel Tools\n\n| Tool | Description |\n|---|---|\n| `search_vessels` | Search vessels by name, IMO, MMSI, flag, type, callsign, or year built |\n| `get_vessel` | Get detailed vessel information |\n| `get_vessel_position` | Get current vessel position (lat/lon, speed, heading) |\n| `get_vessel_eta` | Get vessel estimated time of arrival |\n| `get_vessel_emissions` | Get emissions data (CO2, fuel consumption) |\n| `get_vessel_casualties` | Get marine casualty records |\n| `get_vessel_positions_batch` | Get positions for multiple vessels at once (with optional time range) |\n\n### Port Tools\n\n| Tool | Description |\n|---|---|\n| `search_ports` | Search ports by name, country, type, size, region, harbor size, or harbor use |\n| `get_port` | Get port details by UN/LOCODE |\n| `get_port_inbound` | Get vessels inbound to a port within an ETA window |\n| `get_port_events` | Get arrivals/departures for a port |\n| `get_port_events_by_vessel` | Get port events for a vessel |\n| `list_port_events` | List port events globally with filters for time, country, port, vessel, or event type |\n| `search_port_events_by_port` | Search port events by port name |\n| `search_port_events_by_vessel` | Search port events by vessel name |\n| `get_vessel_last_port_event` | Get the most recent port event for a vessel |\n\n### Emissions Tools\n\n| Tool | Description |\n|---|---|\n| `list_emissions` | List global vessel emissions data with optional year filter |\n\n### Location Tools\n\n| Tool | Description |\n|---|---|\n| `get_vessels_in_area` | Find vessels in a bounding box (with optional time range) |\n| `get_vessels_in_radius` | Find vessels within a radius of a point (with optional time range) |\n\n\n## Pagination\n\nAll 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.\n\n## Development\n\n```bash\ngit clone https://github.com/vessel-api/vesselapi-mcp.git\ncd vesselapi-mcp\nnpm install\nnpm run build\n```\n\n```bash\nnpm run build        # Build the server\nnpm run typecheck    # Type-check without emitting\nnpm run clean        # Remove build artifacts\n```\n\n### Testing with MCP Inspector\n\n```bash\nVESSELAPI_API_KEY=your-key npx @modelcontextprotocol/inspector node dist/index.js\n```\n\n## Data Sources & Attribution\n\nEmissions and casualty data: © European Union. Source: European Maritime Safety Agency\n(EMSA): THETIS-MRV (EU MRV, Regulation (EU) 2015/757) and the European Marine Casualty\nInformation Platform (EMCIP). Reused under the European Commission reuse notice\n(Commission Decision 2011/833/EU), which authorises reuse for commercial and\nnon-commercial purposes with acknowledgement of the source. Data may be transformed and\ncombined; EMSA does not endorse this service.\n\n## License\n\nMIT\n",
  "bytes": 5347,
  "sha": "3c08b92cc90d0a57a1407b1b9561a6b27ba462458dd9f19ac1f8522fe428dcec",
  "repo_slug": "vessel-api/vesselapi-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_vessel_api_vesselapi_mcp_9764c9f5/readme"
}